Files
meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-24/0006-deps-disable-io_uring-support-in-libuv.patch
T
Tim Orling 143d18269c nodejs: upgrade 22.22.3 -> 24.16.0 (LTS)
Add Node.js 24.16.0 [1] recipe based on 22.22.3. Patches reviewed against
the 24.15.0 source tree and rebased where needed:

- 0001: rebased for Makefile changes (common_node.gypi removed, line
  offsets shifted); merged with Disable-running-gyp-files patch since
  both modify the same Makefile hunk. Remove deps/simdutf/simdutf.gyp;
  no longer vendored here.
- 0005: rebased for v8.gyp libatomic condition change (clang condition
  folded upstream, ppc removed)

- v24.16.0 bumps bundled llhttp to 9.3.1 (LLHTTP_VERSION_MAJOR/MINOR/PATCH
  = 9/3/1 in deps/llhttp/include/llhttp.h).

Five patches dropped as no longer needed:
- build-remove-redundant-mXX-flags-for-V8: backport already merged
  upstream in Node.js 24
- ppc64-Do-not-use-mminimal-toc-with-clang: Node.js 24 common.gypi
  already gates -mminimal-toc behind clang==0
- fix-arm-Neon-intrinsics-types: the v24.16.0 source already uses
  vandq_u8/vorrq_u8 and vshrn_n_u16(vreinterpretq_u16_u8(mask), 4).
- detect-aarch64-Neon-correctly:  #ifdef __ARM_NEON__ →
  #if defined(__ARM_NEON__) || defined(__ARM_NEON) — already present
  at lines 13 and 2628.
- llhttp-fix-NEON-header-value-__builtin_ctzll-undefin: wanted the
  match_mask == 0 guard around __builtin_ctzll — already present.
  "This patch can be dropped when nodejs updates its bundled llhttp
  to >= 9.3.1.")

Remaining 9 patches renumbered sequentially 0001-0009. All verified to
apply cleanly against the v24.16.0 source tarball.

NOTE: The "current" release is v26.2.0 [1], but this is not yet an LTS
      release. Application stacks frequently lag new releases, so
      it makes sense to have support for the v24 LTS release.

[1] https://nodejs.org/en/blog/release/v24.16.0
[2] https://nodejs.org/en/blog/release/v26.2.0

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-05-21 17:20:20 -07:00

66 lines
2.1 KiB
Diff

From 79af9bd6ac1040f1fe3c6cab26b2d040ad907870 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Fri, 1 Mar 2024 15:46:11 +0800
Subject: [PATCH] deps: disable io_uring support in libuv
Refer [1], Pseudo fails to intercept some of the syscalls when io_uring
enabled. Refer [2], always disable io_uring support in libuv to fix
issue in [1].
[1] https://git.openembedded.org/meta-openembedded/commit/?id=d08453978c31ee41d28206c6ff198d7d9d701d88
[2] https://github.com/nodejs/node/commit/686da19abb
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Updated by Jason Schonberg <schonm@gamil.com> August 1, 2025 for nodejs 22.18.0
which uses libuv 1.51.0
---
deps/uv/src/unix/linux.c | 29 +----------------------------
1 file changed, 1 insertion(+), 28 deletions(-)
diff --git a/deps/uv/src/unix/linux.c b/deps/uv/src/unix/linux.c
--- a/deps/uv/src/unix/linux.c
+++ b/deps/uv/src/unix/linux.c
@@ -465,36 +465,7 @@
/* See https://github.com/libuv/libuv/issues/4283. */
return 0; /* Random SIGSEGV in signal handler. */
#else
- /* Ternary: unknown=0, yes=1, no=-1 */
- static _Atomic int use_io_uring;
- char* val;
- int use;
-
-#if defined(__hppa__)
- /* io_uring first supported on parisc in 6.1, functional in .51
- * https://lore.kernel.org/all/cb912694-b1fe-dbb0-4d8c-d608f3526905@gmx.de/
- */
- if (uv__kernel_version() < /*6.1.51*/0x060133)
- return 0;
-#endif
-
- /* SQPOLL is all kinds of buggy but epoll batching should work fine. */
- if (0 == (flags & UV__IORING_SETUP_SQPOLL))
- return 1;
-
- /* Older kernels have a bug where the sqpoll thread uses 100% CPU. */
- if (uv__kernel_version() < /*5.10.186*/0x050ABA)
- return 0;
-
- use = atomic_load_explicit(&use_io_uring, memory_order_relaxed);
-
- if (use == 0) {
- val = getenv("UV_USE_IO_URING");
- use = val != NULL && atoi(val) > 0 ? 1 : -1;
- atomic_store_explicit(&use_io_uring, use, memory_order_relaxed);
- }
-
- return use > 0;
+return 0; /* pseudo doesn't support io_uring https://bugzilla.yoctoproject.org/show_bug.cgi?id=15244 */
#endif
}