deleted file mode 100644
@@ -1,51 +0,0 @@
-From 41ec2d5302b77be27ca972102c29ce12471ed4b0 Mon Sep 17 00:00:00 2001
-From: Gyorgy Sarvari <skandigraun@gmail.com>
-Date: Thu, 12 Feb 2026 11:09:44 +0100
-Subject: [PATCH 2/2] detect aarch64 Neon correctly
-
-The llhttp vendored dependency of nodejs takes advantage of Arm NEON
-instructions when they are available, however they are detected by
-checking for an outdated CPU feature macro: it checks for __ARM_NEON__,
-however it is not defined by new compilers for aarch64, rather they
-set __ARM_NEON. The Arm C extension guide[1] refers to __ARM_NEON macro
-aswell.
-
-This patch changes the detection to check for both macros when detecting
-the availability of NEON instructions.
-
-The code this patch modifies is generated, so the patch itself isn't
-suitable for upstream submission, as the root cause of the error is
-in the generator itself. A PR has been submitted[2] to the generator
-project to rectify this issue.
-
-[1]: https://developer.arm.com/documentation/ihi0053/d/ - pdf, section 6.9
-[2]: https://github.com/nodejs/llparse/pull/84
-
-Upstream-Status: Inappropriate [see above]
-Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
----
- deps/llhttp/src/llhttp.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/deps/llhttp/src/llhttp.c b/deps/llhttp/src/llhttp.c
-index a0e59e50..b069bbbb 100644
---- a/deps/llhttp/src/llhttp.c
-+++ b/deps/llhttp/src/llhttp.c
-@@ -10,7 +10,7 @@
- #endif /* _MSC_VER */
- #endif /* __SSE4_2__ */
-
--#ifdef __ARM_NEON__
-+#if defined(__ARM_NEON__) || defined(__ARM_NEON)
- #include <arm_neon.h>
- #endif /* __ARM_NEON__ */
-
-@@ -2625,7 +2625,7 @@ static llparse_state_t llhttp__internal__run(
- goto s_n_llhttp__internal__n_header_value_otherwise;
- }
- #endif /* __SSE4_2__ */
-- #ifdef __ARM_NEON__
-+ #if defined(__ARM_NEON__) || defined(__ARM_NEON)
- while (endp - p >= 16) {
- uint8x16_t input;
- uint8x16_t single;
deleted file mode 100644
@@ -1,59 +0,0 @@
-From 3f4283dac7d88a89b42f1f2966a862cee5afe486 Mon Sep 17 00:00:00 2001
-From: Gyorgy Sarvari <skandigraun@gmail.com>
-Date: Thu, 12 Feb 2026 11:03:53 +0100
-Subject: [PATCH 1/2] fix arm Neon intrinsics types
-
-The current code calls these intrinsics with incorrect datatypes
-(it uses a vector of uint16 instead of uint8), causing compilation
-to fail with the following error:
-
-| ../deps/llhttp/src/llhttp.c: In function 'llhttp__internal__run':
-| ../deps/llhttp/src/llhttp.c:2645:9: note: use '-flax-vector-conversions' to permit conversions between vectors with differing element types or numbers of subparts
-| 2645 | );
-| | ^
-| ../deps/llhttp/src/llhttp.c:2643:11: error: incompatible type for argument 1 of 'vandq_u16'
-| 2643 | vcgeq_u8(input, vdupq_n_u8(' ')),
-
-To avoid this, set the correct intrinsics call that matches the
-actual arguments.
-
-The code that this patch modifies is generated code, so in itself
-this change isn't appropriate for upstream. The actual problem
-is in the code generator itself, for which a PR is already pending
-for merging[1]. This patch is a port of that PR.
-
-[1]: https://github.com/nodejs/llparse/pull/79
-
-Upstream-Status: Inappropriate [see above]
-Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
----
- deps/llhttp/src/llhttp.c | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/deps/llhttp/src/llhttp.c b/deps/llhttp/src/llhttp.c
-index aa4c4682..887603fd 100644
---- a/deps/llhttp/src/llhttp.c
-+++ b/deps/llhttp/src/llhttp.c
-@@ -2639,17 +2639,17 @@ static llparse_state_t llhttp__internal__run(
- /* Find first character that does not match `ranges` */
- single = vceqq_u8(input, vdupq_n_u8(0x9));
- mask = single;
-- single = vandq_u16(
-+ single = vandq_u8(
- vcgeq_u8(input, vdupq_n_u8(' ')),
- vcleq_u8(input, vdupq_n_u8('~'))
- );
-- mask = vorrq_u16(mask, single);
-- single = vandq_u16(
-+ mask = vorrq_u8(mask, single);
-+ single = vandq_u8(
- vcgeq_u8(input, vdupq_n_u8(0x80)),
- vcleq_u8(input, vdupq_n_u8(0xff))
- );
-- mask = vorrq_u16(mask, single);
-- narrow = vshrn_n_u16(mask, 4);
-+ mask = vorrq_u8(mask, single);
-+ narrow = vshrn_n_u16(vreinterpretq_u16_u8(mask), 4);
- match_mask = ~vget_lane_u64(vreinterpret_u64_u8(narrow), 0);
- match_len = __builtin_ctzll(match_mask) >> 2;
- if (match_len != 16) {
deleted file mode 100644
@@ -1,60 +0,0 @@
-From a63a5faea54055973bf5f0a514444532563cc20d Mon Sep 17 00:00:00 2001
-From: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
-Date: Fri, 27 Feb 2026 20:58:43 +0530
-Subject: [PATCH] llhttp: fix NEON header value __builtin_ctzll undefined
- behavior
-
-When all 16 bytes match the allowed range, match_mask becomes 0 after
-the bitwise NOT. Calling __builtin_ctzll(0) is undefined behavior per
-the C standard.
-
-The code expects match_len == 16 when all bytes match (so the branch
-is skipped and p += 16 continues the loop), but this relied on
-ctzll(0) returning 64, which is not guaranteed.
-
-GCC at -O2 exploits this UB by deducing that __builtin_ctzll() result
-is always in range [0, 63], and after >> 2 always in [0, 15], which
-is never equal to 16. The compiler then optimizes
-"if (match_len != 16)" to always-true, causing every valid 16-byte
-chunk to be falsely rejected as containing an invalid character.
-
-This manifests as HTTP 400 Bad Request (HPE_INVALID_HEADER_TOKEN) for
-any HTTP header value longer than 16 characters on ARM targets with
-NEON enabled.
-
-Fix by explicitly checking for match_mask == 0 and setting
-match_len = 16, avoiding the undefined behavior entirely. This bug
-affects both aarch64 and armv7 NEON targets.
-
-The fix has been merged upstream in llparse 7.3.1 [1] and is included
-in llhttp 9.3.1. This patch can be dropped when nodejs updates its
-bundled llhttp to >= 9.3.1.
-
-[1]: https://github.com/nodejs/llparse/pull/83
-
-Upstream-Status: Inappropriate
-Signed-off-by: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
----
- deps/llhttp/src/llhttp.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/deps/llhttp/src/llhttp.c b/deps/llhttp/src/llhttp.c
-index 14b731e..b0a46c6 100644
---- a/deps/llhttp/src/llhttp.c
-+++ b/deps/llhttp/src/llhttp.c
-@@ -2651,7 +2651,11 @@ static llparse_state_t llhttp__internal__run(
- mask = vorrq_u8(mask, single);
- narrow = vshrn_n_u16(vreinterpretq_u16_u8(mask), 4);
- match_mask = ~vget_lane_u64(vreinterpret_u64_u8(narrow), 0);
-- match_len = __builtin_ctzll(match_mask) >> 2;
-+ if (match_mask == 0) {
-+ match_len = 16;
-+ } else {
-+ match_len = __builtin_ctzll(match_mask) >> 2;
-+ }
- if (match_len != 16) {
- p += match_len;
- goto s_n_llhttp__internal__n_header_value_otherwise;
-2.34.1
-
similarity index 96%
rename from meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb
rename to meta-oe/recipes-devtools/nodejs/nodejs_22.22.3.bb
@@ -31,9 +31,6 @@ SRC_URI = "https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
file://0001-positional-args.patch \
file://0001-custom-env.patch \
file://0001-build-remove-redundant-mXX-flags-for-V8.patch \
- file://0001-fix-arm-Neon-intrinsics-types.patch \
- file://0001-detect-aarch64-Neon-correctly.patch \
- file://0001-llhttp-fix-NEON-header-value-__builtin_ctzll-undefin.patch \
file://run-ptest \
"
SRC_URI:append:class-target = " \
@@ -42,7 +39,7 @@ SRC_URI:append:class-target = " \
SRC_URI:append:toolchain-clang:powerpc64le = " \
file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
"
-SRC_URI[sha256sum] = "b6bedd3a8cacd5df7df015a5088264b12c74a277ba60684cb9642ae8eb743132"
+SRC_URI[sha256sum] = "f3e6a578db1ab335a4a72785c1e87ad18a2cf6d2fc25747a1d741fb34af0bd0f"
S = "${UNPACKDIR}/node-v${PV}"
With this upgrade, nodejs updated the llhttp dependency to version 9.3.1 So some of the patches are nolonger necessary. Changelog: https://github.com/nodejs/node/releases/tag/v22.22.3 Signed-off-by: Jason Schonberg <schonm@gmail.com> --- .../0001-detect-aarch64-Neon-correctly.patch | 51 ---------------- .../0001-fix-arm-Neon-intrinsics-types.patch | 59 ------------------ ...header-value-__builtin_ctzll-undefin.patch | 60 ------------------- .../{nodejs_22.22.2.bb => nodejs_22.22.3.bb} | 5 +- 4 files changed, 1 insertion(+), 174 deletions(-) delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-detect-aarch64-Neon-correctly.patch delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-fix-arm-Neon-intrinsics-types.patch delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-llhttp-fix-NEON-header-value-__builtin_ctzll-undefin.patch rename meta-oe/recipes-devtools/nodejs/{nodejs_22.22.2.bb => nodejs_22.22.3.bb} (96%)