-
Notifications
You must be signed in to change notification settings - Fork 30.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FTBFS, version 22.11, gcc 11.2 #55596
Comments
Not really sure this helps, but we do compile Node.js 22.x against a variety of Linux distros (Slackware isn't one of them), with differing compiler versions, all the way down to gcc 10.
The nearest we have to that is Ubuntu 22.04 which is |
I'm going to try a trick I use to compile If this succeeds with NodeJS 22.11, then I guess we can chock it up to a compiler error; this is assuming that the CI environment succeeds with gcc 11.4. It's an old Athlon-II machine, will take awhile... |
Compile finished, new So, it would appear that this bug is something specific to I have no feel for how many stable Linux distros are out there that also use I reported a similar issue affecting |
Writing it out in full probably fixes it: wasm::WrapperCompilationInfo ci;
ci.code_kind = CodeKind::WASM_TO_JS_FUNCTION;
ci.import_info.import_kind = import_kind;
ci.import_info.expected_arity = expected_arity;
ci.import_info.suspend = suspend; |
Thank you, @bnoordhuis - your hunch was correct. I applied your fix to the two places it occurs (fixing the import_kind = FWIW, here is the simple patch I made and applied: 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<turboshaft::TurboshaftCompilationJob> 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 As CI works just fine with Not sure proper etiquette here for issue closing; I'll let one of the maintainers close this if/when it doesn't need any further attention. |
I think we'd be okay with floating a small patch like that if you want to open a pull request. We normally have an "upstream first" policy but IMO it's reasonable to make an exception here because it's for a compiler upstream doesn't support. |
FYI, Node 22.11.0 isn't building on Almalinux 8 either. I'm building with: /usr/bin/scl enable gcc-toolset-11 -- ./configure --prefix=/usr/local/cpanel/3rdparty/node/22 --verbose --with-intl=small-icu --without-corepack
scl enable gcc-toolset-11 -- make |
I'd like to report that the patch worked for me (CentOS7, devtoolset11). BTW, the BUILDING.md (current main) already requires gcc >= 12.2 ... |
On a Slackware64-15.0 machine, attempting to compile NodeJS 22.11 gets a ways into the compile and then fails. Compiling previous stable releases, e.g. 20.18 and below, works just fine.
On Slackware 15 (the most recent "stable" release, albeit dated), we have
gcc
version 11.2.0, andglibc
version 2.33.(On a Slackware64-current machine, with
gcc
version 14.2.0 andglibc
version 2.40, the compile of NodeJS 22.11 works just fine. Alas, we can't use the binary compiled here on the older system due to missing glibc symbols.)I am not a c++/g++ expert, and am unsure how to interpret these specific compiler errors:
The text was updated successfully, but these errors were encountered: