Description
- Version: 8.1.3
- Platform: Linux pc-16l9rd2 3.10.0-514.26.2.el7.x86_64 deps: update openssl to 1.0.1j #1 SMP Fri Jun 30 05:26:04 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
- Subsystem: n/a
In case the specific Linux variant matters, the platform is Red Hat Enterprise Linux 7.3 with a fair bit of newer custom software living in /usr/sup.
The Node.js build instructions say configure, make, make test. In my case, make test fails, and it fails in a way that suggests it's ignoring LD_LIBRARY_PATH. See below for my results. In particular, several tests fail because they are using /lib64/libstdc++.so.6 rather than the newer /usr/sup/lib64/libstdc++.so.6 that Node.js was compiled with. How do I get make test to obey LD_LIBRARY_PATH?
The tests which look like they're ignoring LD_LIBRARY_PATH are:
test-benchmark-crypto
test-benchmark-timers
test-cli-node-options
test-inspector-open
test-process-redirect-warnings-env
test-tls-env-extra-ca
test-inspector-port-cluster
test-benchmark-child-process
test-benchmark-http
test-benchmark-net
Several other tests also fail. With LD_LIBRARY_PATH being obviously ignored in the above tests, I can't tell if the other failures are merely being less obvious about ignoring LD_LIBRARY_PATH or if they're actually failing for another reason.
The tests failing for reasons that aren't obviously getting the wrong version of libstdc++ are:
test-env-var-no-warnings
test-icu-data-dir
test-pending-deprecation
testInstanceOf
Pertinent commands and relevant output:
% gcc --version
gcc (GCC) 5.4.0
...
% which gcc
/usr/sup/bin/gcc
% printenv LD_LIBRARY_PATH
/usr/sup/lib64:/usr/sup/lib
% ./configure --prefix=/usr/sup/node-8.1.3
...output elided...
% make
...make succeeds...
% make test
...lots of test output elided...
[several instances of variations on the following]
=== release test-benchmark-net ===
Path: sequential/test-benchmark-net
/var/tmp/node-v8.1.3/out/Release/node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by /var/tmp/node-v8.1.3/out/Release/node) /var/tmp/node-v8.1.3/out/Release/node: /lib64/libstdc++.so.6: version
GLIBCXX_3.4.21' not found (required by /var/tmp/node-v8.1.3/out/Release/node)
assert.js:60
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 1 === 0
at ChildProcess.child.on (/var/tmp/node-v8.1.3/test/sequential/test-benchmark-net.js:21:10)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12)
Command: out/Release/node /var/tmp/node-v8.1.3/test/sequential/test-benchmark-net.js
...
% strings /lib64/libstdc++.so.6 | grep '^GLIBCXX_3.4.[12].' | sort -u
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
% strings /usr/sup/lib64/libstdc++.so.6 | grep '^GLIBCXX_3.4.[12].' | sort -u
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
%