diff --git a/var/spack/repos/builtin/packages/node-js/package.py b/var/spack/repos/builtin/packages/node-js/package.py index 8850255deba572..354d5e6f7977de 100644 --- a/var/spack/repos/builtin/packages/node-js/package.py +++ b/var/spack/repos/builtin/packages/node-js/package.py @@ -103,6 +103,13 @@ class NodeJs(Package): # See https://github.com/nodejs/node/issues/52223 patch("fix-old-glibc-random-headers.patch", when="^glibc@:2.24") + # https://github.com/nodejs/node/issues/55596 + # This patch is not sufficient, however, therefore + # add a conflict with this particular version of gcc + # until https://github.com/spack/spack/issues/48492 is resolved + patch("wasm-compiler-gcc11p2.patch", when="@21: %gcc@11.2") + conflicts("%gcc@11.2", when="@21:") + def setup_build_environment(self, env): # Force use of experimental Python 3 support env.set("PYTHON", self.spec["python"].command.path) diff --git a/var/spack/repos/builtin/packages/node-js/wasm-compiler-gcc11p2.patch b/var/spack/repos/builtin/packages/node-js/wasm-compiler-gcc11p2.patch new file mode 100644 index 00000000000000..7670c935132df8 --- /dev/null +++ b/var/spack/repos/builtin/packages/node-js/wasm-compiler-gcc11p2.patch @@ -0,0 +1,40 @@ +diff --git a/deps/v8/src/compiler/wasm-compiler.cc b/deps/v8/src/compiler/wasm-compiler.cc +--- a/deps/v8/src/compiler/wasm-compiler.cc 2024-10-28 21:25:11.000000000 -0400 ++++ b/deps/v8/src/compiler/wasm-compiler.cc 2024-11-01 02:02:22.554537121 -0400 +@@ -8613,11 +8613,13 @@ + '-'); + + auto compile_with_turboshaft = [&]() { ++ wasm::WrapperCompilationInfo ci; ++ ci.code_kind = CodeKind::WASM_TO_JS_FUNCTION; ++ ci.import_info.import_kind = kind; ++ ci.import_info.expected_arity = expected_arity; ++ ci.import_info.suspend = suspend; + return Pipeline::GenerateCodeForWasmNativeStubFromTurboshaft( +- env->module, sig, +- wasm::WrapperCompilationInfo{ +- .code_kind = CodeKind::WASM_TO_JS_FUNCTION, +- .import_info = {kind, expected_arity, suspend}}, ++ env->module, sig, ci, + func_name, WasmStubAssemblerOptions(), nullptr); + }; + auto compile_with_turbofan = [&]() { +@@ -8774,12 +8776,14 @@ + base::VectorOf(name_buffer.get(), kMaxNameLen) + kNamePrefixLen, sig); + + auto compile_with_turboshaft = [&]() { ++ wasm::WrapperCompilationInfo ci; ++ ci.code_kind = CodeKind::WASM_TO_JS_FUNCTION; ++ ci.import_info.import_kind = kind; ++ ci.import_info.expected_arity = expected_arity; ++ ci.import_info.suspend = suspend; + std::unique_ptr job = + Pipeline::NewWasmTurboshaftWrapperCompilationJob( +- isolate, sig, +- wasm::WrapperCompilationInfo{ +- .code_kind = CodeKind::WASM_TO_JS_FUNCTION, +- .import_info = {kind, expected_arity, suspend}}, ++ isolate, sig, ci, + nullptr, std::move(name_buffer), WasmAssemblerOptions()); + + // Compile the wrapper