-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
Node.js 8.3.0 for CentOS 6 has glibc dependency errors #14755
Comments
Can you confirm that this also happens with the binaries made available on https://nodejs.org/? |
It does not appear to. I was able to download and untar: https://nodejs.org/dist/v8.3.0/node-v8.3.0-linux-x64.tar.xz
|
This should probably be reported on the nodesource/distributions issue tracker instead. |
Ok, I'll report it there. |
Note: I know this is closed, but we also had the same problem when building from source on RHEL6. We pinpointed root cause down to a bug in all versions of glibc earlier than glibc-2.17 in how Thread-Local-Offset static storage is handled. Specifically, this bug https://sourceware.org/bugzilla/show_bug.cgi?id=14898. I did download the version from https://nodejs.org/dist/v8.3.0/node-v8.3.0-linux-x64.tar.xz and can confirm that it does work on a RHEL6 machine, even though it also appears that the final node binary has a TLS segment size of just 1 (can be determined by running readelf -l node and looking for the TLS section). The 1 byte TLS storage was introduced in v8 v6.0 here:
|
@evantorrie This seems related nodejs/build#809 (comment). Hopefully when this lands and is gets backported, you could verify. |
Yes, it's the same issue. In our case, I just patched the v8 source with diff --git a/deps/v8/src/trap-handler/handler-shared.cc b/deps/v8/src/trap-handler/handler-shared.cc
index 7b399f5..812e797 100644
--- a/deps/v8/src/trap-handler/handler-shared.cc
+++ b/deps/v8/src/trap-handler/handler-shared.cc
@@ -24,6 +24,9 @@ namespace internal {
namespace trap_handler {
THREAD_LOCAL bool g_thread_in_wasm_code = false;
+#if !__GLIBC_PREREQ(2,17)
+THREAD_LOCAL bool dummy_shared = 0;
+#endif
size_t gNumCodeObjects = 0;
CodeProtectionInfoListEntry* gCodeObjects = nullptr; which solved the issue for us internally. |
So this has landed in an improved form in node/deps/v8/src/trap-handler/handler-shared.cc Lines 26 to 29 in a4e923f
@danlange / @evantorrie you can reopen or comment if you have new information. |
@refack I am getting GLIBC_2.16 not found (required by node) while installing the node js in linux and my GLIBC version is 2.12. |
I installed node on my system:
When I attempted to use it, it reported shared library errors:
I am running CentOS 6, on which the only glibc option is 2.12:
I was able to work around the problem by removing version 8.3.0 and installing version 8.2.1 instead:
The text was updated successfully, but these errors were encountered: