aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArchana Polampalli <archana.polampalli@windriver.com>2023-09-28 09:13:04 +0000
committerArmin Kuster <akuster808@gmail.com>2023-10-04 07:52:48 -0700
commit470af9d6bb76c7d9d15fdb3ed462611f2768be67 (patch)
tree05f7152ae82ceb97e5bfd5f22ddd7df267dbe5dd
parent6cbcfb97a2e3e14c3965fbbfec9823f611943361 (diff)
downloadmeta-openembedded-contrib-470af9d6bb76c7d9d15fdb3ed462611f2768be67.tar.gz
nodejs: upgrade 18.17.1 -> 20.5.1
Update to latest release of latest LTS 20 release * node v20 introduces several new features and fixes many bugs and CVEs as shown in [1] * Refresh 0001-liftoff-Correct-function-signatures.patch against 20.5.1 * License-Update: - Change zlib version 1.2.13, October 13th, 2022 to version 1.2.13.1, October xxth, 2022 [2] - Change Copyright 2023 from Ada authors to Yagiz Nizipli and Daniel Lemire [4] * Remove big-endian.patch as it is merged in v20.x [5] [6] * Remove below list of patches since mips32 is deleted from v8 as part of update V8 to 10.7.193.13 [7] [8] - mips-less-memory.patch - 0001-mips-Use-32bit-cast-for-operand-on-mips32.patch * Update Using-native-binaries.patch for node_js2c, it resolved below do_compile error [9] Error: /bin/sh: line 1: build/tmp/work/core2-64-poky-linux/nodejs/20.5.1/node-v20.5.1/out/Release/node_js2c: No such file or directory * Remove obsolete dtrace & etw configure options (we had: --without-<feature>) from the recipe [10] https://github.com/nodejs/node/releases/tag/v20.5.1 [1] https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md [2] https://github.com/nodejs/node/commit/f1007325753e62b13083f6e9e499fdc33f753d7d [3] https://github.com/nodejs/node/commit/900ae1bda76caaa7213431a5268560b578ed2d55 [4] https://github.com/nodejs/node/commit/d2465369243bc4313d9840b62c2393c4f179ffbb [5] https://github.com/v8/v8/commit/3cea5d5425c3a0d7d1768b3758269ac98875de77 [6] https://github.com/nodejs/node/commit/f226350fcbebd4449fb0034fdaffa147e4de28ea [7] https://github.com/v8/v8/commit/a26ca5ed147dde47f02d70c5b38d8befc1c93cb3 [8] https://github.com/nodejs/node/commit/6bd756d7c6dfb7dc25daee329ad70df68c14223e [9] https://github.com/nodejs/node/commit/4da7bc915c714989eba7eab753db9eb9ebd8451a [10] https://github.com/nodejs/node/commit/aa3a572e6bee116cde69508dc29478b40f40551a Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> (cherry picked from commit 13e83bd009200f42741083c5a6f1fbc653205c49) Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rwxr-xr-xmeta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.5/oe-npm-cache (renamed from meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache)0
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.5.bb (renamed from meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb)0
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch19
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch42
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch34
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch18
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch37
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_20.5.1.bb (renamed from meta-oe/recipes-devtools/nodejs/nodejs_18.17.1.bb)9
8 files changed, 34 insertions, 125 deletions
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.5/oe-npm-cache
index f596207648..f596207648 100755
--- a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.5/oe-npm-cache
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.5.bb
index a61dd5018f..a61dd5018f 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.5.bb
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
index 66e10a0d00..0178cec777 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
@@ -12,7 +12,7 @@ https://git.openembedded.org/meta-openembedded/commit/?id=feeb172d1a8bf010490d22
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
- node.gyp | 1 +
+ node.gyp | 3 +
tools/v8_gypfiles/v8.gyp | 5 +++++
2 files changed, 6 insertions(+)
@@ -28,6 +28,23 @@ index e8e1d9f9..e60ccc10 100644
'<(node_mksnapshot_exec)',
'<(node_snapshot_main)',
],
+@@ -935,6 +935,7 @@
+ 'action_name': 'node_js2c',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(node_js2c_exec)',
+ '<@(library_files)',
+ '<@(deps_files)',
+@@ -944,6 +945,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc',
+ ],
+ 'action': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(node_js2c_exec)',
+ '<@(_outputs)',
+ 'lib',
+
diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
index 42e26cd9..bc721991 100644
--- a/tools/v8_gypfiles/v8.gyp
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
index c9a522d2e2..5af87d866e 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
@@ -1,6 +1,6 @@
From dc3652c0abcdf8573fd044907b19d8eda7ca1124 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 20 Oct 2021 12:49:58 -0700
+Date: Mon, 3 Jul 2023 12:33:16 +0000
Subject: [PATCH] [liftoff] Correct function signatures
Fixes builds on mips where clang reports an error
@@ -13,16 +13,15 @@ Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/v8/v8/+/3
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
deps/v8/src/wasm/baseline/liftoff-assembler.h | 6 +++---
- deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h | 2 +-
deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h | 2 +-
- .../src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h | 2 +-
- 4 files changed, 6 insertions(+), 6 deletions(-)
+ deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/deps/v8/src/wasm/baseline/liftoff-assembler.h b/deps/v8/src/wasm/baseline/liftoff-assembler.h
-index 22c7f73a..db4cb168 100644
+index aef63c64..f2a11b01 100644
--- a/deps/v8/src/wasm/baseline/liftoff-assembler.h
+++ b/deps/v8/src/wasm/baseline/liftoff-assembler.h
-@@ -646,7 +646,7 @@ class LiftoffAssembler : public TurboAssembler {
+@@ -717,7 +717,7 @@ class LiftoffAssembler : public MacroAssembler {
void FinishCall(const ValueKindSig*, compiler::CallDescriptor*);
// Move {src} into {dst}. {src} and {dst} must be different.
@@ -31,7 +30,7 @@ index 22c7f73a..db4cb168 100644
// Parallel register move: For a list of tuples <dst, src, kind>, move the
// {src} register of kind {kind} into {dst}. If {src} equals {dst}, ignore
-@@ -795,8 +795,8 @@ class LiftoffAssembler : public TurboAssembler {
+@@ -884,8 +884,8 @@ class LiftoffAssembler : public MacroAssembler {
inline void MoveStackValue(uint32_t dst_offset, uint32_t src_offset,
ValueKind);
@@ -42,24 +41,11 @@ index 22c7f73a..db4cb168 100644
inline void Spill(int offset, LiftoffRegister, ValueKind);
inline void Spill(int offset, WasmValue);
-diff --git a/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h b/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-index c76fd2f4..0fffe231 100644
---- a/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-+++ b/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-@@ -661,7 +661,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
- pinned = pinned | LiftoffRegList{dst_op.rm(), src};
- LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
- // Save original value.
-- Move(tmp, src, type.value_type());
-+ Move(tmp, src, type.value_type().kind());
-
- src = tmp;
- pinned.set(tmp);
diff --git a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
-index 36413545..48207337 100644
+index 96cba24c..53e1842d 100644
--- a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
+++ b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
-@@ -593,7 +593,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
+@@ -592,7 +592,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
pinned.set(dst_op.rm());
LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value.
@@ -68,11 +54,11 @@ index 36413545..48207337 100644
src = tmp;
pinned.set(tmp);
-diff --git a/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h b/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-index 642a7d2a..56ffcc2a 100644
---- a/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-+++ b/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-@@ -589,7 +589,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
+diff --git a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
+index 1d6ae09e..397e82b2 100644
+--- a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
++++ b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
+@@ -286,7 +286,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
pinned.set(dst_op.rm());
LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value.
@@ -82,4 +68,4 @@ index 642a7d2a..56ffcc2a 100644
src = tmp;
pinned.set(tmp);
--
-2.34.1
+2.40.0
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch
deleted file mode 100644
index a0242d8e18..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e65dde8db17da5acddeef7eb9316199c4e5e0811 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Apr 2022 12:40:25 -0700
-Subject: [PATCH] mips: Use 32bit cast for operand on mips32
-
-Fixes
-deps/v8/src/compiler/backend/mips/code-generator-mips.cc: In member function 'void v8::internal::compiler::CodeGenerator::AssembleReturn(v8::internal::compiler::InstructionOperand*)':
-../deps/v8/src/compiler/backend/mips/code-generator-mips.cc:4233:48: error: call of overloaded 'Operand(int64_t)' is ambiguous
- 4233 | Operand(static_cast<int64_t>(0)));
- | ^
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- deps/v8/src/compiler/backend/mips/code-generator-mips.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/deps/v8/src/compiler/backend/mips/code-generator-mips.cc b/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-index 2b8197e..b226140 100644
---- a/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-+++ b/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-@@ -4230,7 +4230,7 @@ void CodeGenerator::AssembleReturn(InstructionOperand* additional_pop_count) {
- } else if (FLAG_debug_code) {
- __ Assert(eq, AbortReason::kUnexpectedAdditionalPopValue,
- g.ToRegister(additional_pop_count),
-- Operand(static_cast<int64_t>(0)));
-+ Operand(static_cast<int32_t>(0)));
- }
- }
- // Functions with JS linkage have at least one parameter (the receiver).
---
-2.36.0
-
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch b/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
deleted file mode 100644
index 529381842f..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-https://github.com/v8/v8/commit/878ccb33bd3cf0e6dc018ff8d15843f585ac07be
-
-did some automated cleanups but it missed big-endian code.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/deps/v8/src/runtime/runtime-utils.h
-+++ b/deps/v8/src/runtime/runtime-utils.h
-@@ -126,7 +126,7 @@ static inline ObjectPair MakePair(Object
- #if defined(V8_TARGET_LITTLE_ENDIAN)
- return x.ptr() | (static_cast<ObjectPair>(y.ptr()) << 32);
- #elif defined(V8_TARGET_BIG_ENDIAN)
-- return y->ptr() | (static_cast<ObjectPair>(x->ptr()) << 32);
-+ return y.ptr() | (static_cast<ObjectPair>(x.ptr()) << 32);
- #else
- #error Unknown endianness
- #endif
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch b/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
deleted file mode 100644
index 16776cb762..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Description: mksnapshot uses too much memory on 32-bit mipsel
-Author: Jérémy Lal <kapouer@melix.org>
-Last-Update: 2020-06-03
-Forwarded: https://bugs.chromium.org/p/v8/issues/detail?id=10586
-
-This ensures that we reserve 500M instead of 2G range for codegen
-ensures that qemu-mips can allocate such large ranges
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Imported from debian https://salsa.debian.org/js-team/nodejs/-/blob/master-12.x/debian/patches/mips-less-memory.patch
-https://buildd.debian.org/status/fetch.php?pkg=nodejs&arch=mipsel&ver=12.17.0~dfsg-2&stamp=1591050388&raw=0
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/deps/v8/src/common/globals.h
-+++ b/deps/v8/src/common/globals.h
-@@ -224,7 +224,7 @@ constexpr size_t kMinimumCodeRangeSize =
- constexpr size_t kMinExpectedOSPageSize = 64 * KB; // OS page on PPC Linux
- #elif V8_TARGET_ARCH_MIPS
- constexpr bool kPlatformRequiresCodeRange = false;
--constexpr size_t kMaximalCodeRangeSize = 2048LL * MB;
-+constexpr size_t kMaximalCodeRangeSize = 512 * MB;
- constexpr size_t kMinimumCodeRangeSize = 0 * MB;
- constexpr size_t kMinExpectedOSPageSize = 4 * KB; // OS page.
- #else
---- a/deps/v8/src/codegen/mips/constants-mips.h
-+++ b/deps/v8/src/codegen/mips/constants-mips.h
-@@ -140,7 +140,7 @@ const uint32_t kLeastSignificantByteInIn
- namespace v8 {
- namespace internal {
-
--constexpr size_t kMaxPCRelativeCodeRangeInMB = 4096;
-+constexpr size_t kMaxPCRelativeCodeRangeInMB = 1024;
-
- // -----------------------------------------------------------------------------
- // Registers and FPURegisters.
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_18.17.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_20.5.1.bb
index ee5e848bf8..6bb0f7fabd 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_18.17.1.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_20.5.1.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
HOMEPAGE = "http://nodejs.org"
LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bc1f9ebe76be76f163e3b675303ad9cd"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=059ecf3a6f87111685e51b611b9563e5"
CVE_PRODUCT = "nodejs node.js"
@@ -22,11 +22,8 @@ COMPATIBLE_HOST:powerpc = "null"
SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
file://0004-v8-don-t-override-ARM-CFLAGS.patch \
- file://big-endian.patch \
- file://mips-less-memory.patch \
file://system-c-ares.patch \
file://0001-liftoff-Correct-function-signatures.patch \
- file://0001-mips-Use-32bit-cast-for-operand-on-mips32.patch \
file://run-ptest \
"
@@ -39,7 +36,7 @@ SRC_URI:append:toolchain-clang:x86 = " \
SRC_URI:append:toolchain-clang:powerpc64le = " \
file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
"
-SRC_URI[sha256sum] = "f215cf03d0f00f07ac0b674c6819f804c1542e16f152da04980022aeccf5e65a"
+SRC_URI[sha256sum] = "439c71aa2f38c2861657bfa538e99191a571258066cbfd4548586049c8134190"
S = "${WORKDIR}/node-v${PV}"
@@ -148,8 +145,6 @@ do_configure () {
# $TARGET_ARCH settings don't match --dest-cpu settings
python3 configure.py --verbose --prefix=${prefix} \
--shared-openssl \
- --without-dtrace \
- --without-etw \
--dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
--dest-os=linux \
--libdir=${baselib} \