During trying to build Node.js v5.6.0 in an Alpine Linux 3.3 Docker container, I get various errors. As the whole build log would be too extensive, I only paste the erroring parts here. There are non-erroring parts in front of it to make identification of the steps easier.
Node.js: 5.6.0
Alpine Linux 3.3
OS X 10.11.3
Docker-Machine Host VM 0.5.1, build 7e8e38e
Docker 1.9.1, build a34a1d5
Docker-Compose 1.6.0, build d99cad6
The tarball of origin:
https://nodejs.org/dist/v5.6.0/node-v5.6.0.tar.gz
The tests failed partly – appended after the build errors.
Build log
../deps/v8/src/runtime/runtime-atomics.cc: In instantiation of 'T v8::internal::{anonymous}::LoadSeqCst(T*) [with T = unsigned char]':
../deps/v8/src/runtime/runtime-atomics.cc:350:34: required from 'v8::internal::Object* v8::internal::{anonymous}::DoLoad(v8::internal::Isolate*, void*, size_t) [with T = unsigned char; size_t = long unsigned int]'
../deps/v8/src/runtime/runtime-atomics.cc:577:5: required from here
../deps/v8/src/runtime/runtime-atomics.cc:32:24: warning: parameter 'p' set but not used [-Wunused-but-set-parameter]
inline T LoadSeqCst(T* p) {
^
../deps/v8/src/runtime/runtime-atomics.cc: In instantiation of 'T v8::internal::{anonymous}::LoadSeqCst(T*) [with T = signed char]':
../deps/v8/src/runtime/runtime-atomics.cc:350:34: required from 'v8::internal::Object* v8::internal::{anonymous}::DoLoad(v8::internal::Isolate*, void*, size_t) [with T = signed char; size_t = long unsigned int]'
../deps/v8/src/runtime/runtime-atomics.cc:577:5: required from here
../deps/v8/src/runtime/runtime-atomics.cc:32:24: warning: parameter 'p' set but not used [-Wunused-but-set-parameter]
../deps/v8/src/runtime/runtime-atomics.cc: In instantiation of 'T v8::internal::{anonymous}::LoadSeqCst(T*) [with T = short unsigned int]':
../deps/v8/src/runtime/runtime-atomics.cc:350:34: required from 'v8::internal::Object* v8::internal::{anonymous}::DoLoad(v8::internal::Isolate*, void*, size_t) [with T = short unsigned int; size_t = long unsigned int]'
../deps/v8/src/runtime/runtime-atomics.cc:577:5: required from here
../deps/v8/src/runtime/runtime-atomics.cc:32:24: warning: parameter 'p' set but not used [-Wunused-but-set-parameter]
../deps/v8/src/runtime/runtime-atomics.cc: In instantiation of 'T v8::internal::{anonymous}::LoadSeqCst(T*) [with T = short int]':
../deps/v8/src/runtime/runtime-atomics.cc:350:34: required from 'v8::internal::Object* v8::internal::{anonymous}::DoLoad(v8::internal::Isolate*, void*, size_t) [with T = short int; size_t = long unsigned int]'
../deps/v8/src/runtime/runtime-atomics.cc:577:5: required from here
../deps/v8/src/runtime/runtime-atomics.cc:32:24: warning: parameter 'p' set but not used [-Wunused-but-set-parameter]
../deps/v8/src/runtime/runtime-atomics.cc: In instantiation of 'T v8::internal::{anonymous}::LoadSeqCst(T*) [with T = unsigned int]':
../deps/v8/src/runtime/runtime-atomics.cc:350:34: required from 'v8::internal::Object* v8::internal::{anonymous}::DoLoad(v8::internal::Isolate*, void*, size_t) [with T = unsigned int; size_t = long unsigned int]'
../deps/v8/src/runtime/runtime-atomics.cc:577:5: required from here
../deps/v8/src/runtime/runtime-atomics.cc:32:24: warning: parameter 'p' set but not used [-Wunused-but-set-parameter]
../deps/v8/src/runtime/runtime-atomics.cc: In instantiation of 'T v8::internal::{anonymous}::LoadSeqCst(T*) [with T = int]':
../deps/v8/src/runtime/runtime-atomics.cc:350:34: required from 'v8::internal::Object* v8::internal::{anonymous}::DoLoad(v8::internal::Isolate*, void*, size_t) [with T = int; size_t = long unsigned int]'
../deps/v8/src/runtime/runtime-atomics.cc:577:5: required from here
../deps/v8/src/runtime/runtime-atomics.cc:32:24: warning: parameter 'p' set but not used [-Wunused-but-set-parameter]
../deps/v8/src/runtime/runtime-atomics.cc: In instantiation of 'T v8::internal::{anonymous}::LoadSeqCst(T*) [with T = long unsigned int]':
../deps/v8/src/runtime/runtime-atomics.cc:350:34: required from 'v8::internal::Object* v8::internal::{anonymous}::DoLoad(v8::internal::Isolate*, void*, size_t) [with T = double; size_t = long unsigned int]'
../deps/v8/src/runtime/runtime-atomics.cc:577:5: required from here
../deps/v8/src/runtime/runtime-atomics.cc:32:24: warning: parameter 'p' set but not used [-Wunused-but-set-parameter]
ln -f "/node-v5.6.0/out/Release/obj.target/deps/http_parser/libhttp_parser.a" "/node-v5.6.0/out/Release/libhttp_parser.a" 2>/dev/null || (rm -rf "/node-v5.6.0/out/Release/libhttp_parser.a" && cp -af "/node-v5.6.0/out/Release/obj.target/deps/http_parser/libhttp_parser.a" "/node-v5.6.0/out/Release/libhttp_parser.a")
cc '-DPURIFY' '-D_REENTRANT' '-DOPENSSL_NO_SSL2' '-DOPENSSL_NO_SSL3' '-DOPENSSL_NO_HEARTBEATS' '-DENGINESDIR="/dev/null"' '-DTERMIOS' '-DOPENSSLDIR="/etc/ssl"' '-DL_ENDIAN' '-DAES_ASM' '-DCPUID_ASM' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_CPUID_OBJ' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DGHASH_ASM' '-DVPAES_ASM' '-DBN_ASM' '-DBF_ASM' '-DBNCO_ASM' '-DDES_ASM' '-DLIB_BN_ASM' '-DMD5_ASM' '-DOPENSSL_BN_ASM' '-DRIP_ASM' '-DRMD160_ASM' '-DWHIRLPOOL_ASM' '-DWP_ASM' '-DOPENSSL_BN_ASM_MONT5' '-DOPENSSL_BN_ASM_GF2m' '-DOPENSSL_IA32_SSE2' '-DBSAES_ASM' '-DDSO_DLFCN' '-DHAVE_DLFCN_H' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -Wno-missing-field-initializers -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -MMD -MF /node-v5.6.0/out/Release/.deps//node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/ssl/bio_ssl.o.d.raw -c -o /node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/ssl/bio_ssl.o ../deps/openssl/openssl/ssl/bio_ssl.c
cc '-DPURIFY' '-D_REENTRANT' '-DOPENSSL_NO_SSL2' '-DOPENSSL_NO_SSL3' '-DOPENSSL_NO_HEARTBEATS' '-DENGINESDIR="/dev/null"' '-DTERMIOS' '-DOPENSSLDIR="/etc/ssl"' '-DL_ENDIAN' '-DAES_ASM' '-DCPUID_ASM' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_CPUID_OBJ' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DGHASH_ASM' '-DVPAES_ASM' '-DBN_ASM' '-DBF_ASM' '-DBNCO_ASM' '-DDES_ASM' '-DLIB_BN_ASM' '-DMD5_ASM' '-DOPENSSL_BN_ASM' '-DRIP_ASM' '-DRMD160_ASM' '-DWHIRLPOOL_ASM' '-DWP_ASM' '-DOPENSSL_BN_ASM_MONT5' '-DOPENSSL_BN_ASM_GF2m' '-DOPENSSL_IA32_SSE2' '-DBSAES_ASM' '-DDSO_DLFCN' '-DHAVE_DLFCN_H' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -Wno-missing-field-initializers -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -MMD -MF /node-v5.6.0/out/Release/.deps//node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/ssl/d1_both.o.d.raw -c -o /node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/ssl/d1_both.o ../deps/openssl/openssl/ssl/d1_both.c
../deps/openssl/openssl/ssl/d1_both.c: In function 'dtls1_retransmit_buffered_messages':
../deps/openssl/openssl/ssl/d1_both.c:1289:9: warning: 'save_write_sequence' may be used uninitialized in this function [-Wmaybe-uninitialized]
memcpy(s->s3->write_sequence, save_write_sequence,
^
../deps/openssl/openssl/ssl/d1_both.c:1214:19: note: 'save_write_sequence' was declared here
unsigned char save_write_sequence[8];
^
../deps/openssl/openssl/ssl/d1_both.c: In function 'dtls1_retransmit_message':
../deps/openssl/openssl/ssl/d1_both.c:1289:9: warning: 'save_write_sequence' may be used uninitialized in this function [-Wmaybe-uninitialized]
memcpy(s->s3->write_sequence, save_write_sequence,
^
cc '-DPURIFY' '-D_REENTRANT' '-DOPENSSL_NO_SSL2' '-DOPENSSL_NO_SSL3' '-DOPENSSL_NO_HEARTBEATS' '-DENGINESDIR="/dev/null"' '-DTERMIOS' '-DOPENSSLDIR="/etc/ssl"' '-DL_ENDIAN' '-DAES_ASM' '-DCPUID_ASM' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_CPUID_OBJ' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DGHASH_ASM' '-DVPAES_ASM' '-DBN_ASM' '-DBF_ASM' '-DBNCO_ASM' '-DDES_ASM' '-DLIB_BN_ASM' '-DMD5_ASM' '-DOPENSSL_BN_ASM' '-DRIP_ASM' '-DRMD160_ASM' '-DWHIRLPOOL_ASM' '-DWP_ASM' '-DOPENSSL_BN_ASM_MONT5' '-DOPENSSL_BN_ASM_GF2m' '-DOPENSSL_IA32_SSE2' '-DBSAES_ASM' '-DDSO_DLFCN' '-DHAVE_DLFCN_H' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -Wno-missing-field-initializers -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -MMD -MF /node-v5.6.0/out/Release/.deps//node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/x509v3/v3_utl.o.d.raw -c -o /node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/x509v3/v3_utl.o ../deps/openssl/openssl/crypto/x509v3/v3_utl.c
../deps/openssl/openssl/crypto/x509v3/v3_utl.c: In function 'hex_to_string':
../deps/openssl/openssl/crypto/x509v3/v3_utl.c:412:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
const static char hexdig[] = "0123456789ABCDEF";
^
cc '-DPURIFY' '-D_REENTRANT' '-DOPENSSL_NO_SSL2' '-DOPENSSL_NO_SSL3' '-DOPENSSL_NO_HEARTBEATS' '-DENGINESDIR="/dev/null"' '-DTERMIOS' '-DOPENSSLDIR="/etc/ssl"' '-DL_ENDIAN' '-DAES_ASM' '-DCPUID_ASM' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_CPUID_OBJ' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DGHASH_ASM' '-DVPAES_ASM' '-DBN_ASM' '-DBF_ASM' '-DBNCO_ASM' '-DDES_ASM' '-DLIB_BN_ASM' '-DMD5_ASM' '-DOPENSSL_BN_ASM' '-DRIP_ASM' '-DRMD160_ASM' '-DWHIRLPOOL_ASM' '-DWP_ASM' '-DOPENSSL_BN_ASM_MONT5' '-DOPENSSL_BN_ASM_GF2m' '-DOPENSSL_IA32_SSE2' '-DBSAES_ASM' '-DDSO_DLFCN' '-DHAVE_DLFCN_H' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -Wno-missing-field-initializers -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -MMD -MF /node-v5.6.0/out/Release/.deps//node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/cast/c_enc.o.d.raw -c -o /node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/cast/c_enc.o ../deps/openssl/openssl/crypto/cast/c_enc.c
../deps/openssl/openssl/crypto/cast/c_enc.c: In function 'CAST_encrypt':
../deps/openssl/openssl/crypto/cast/c_enc.c:65:5: warning: 'register' is not at beginning of declaration [-Wold-style-declaration]
const register CAST_LONG *k;
^
../deps/openssl/openssl/crypto/cast/c_enc.c: In function 'CAST_decrypt':
../deps/openssl/openssl/crypto/cast/c_enc.c:97:5: warning: 'register' is not at beginning of declaration [-Wold-style-declaration]
const register CAST_LONG *k;
^
cc '-DPURIFY' '-D_REENTRANT' '-DOPENSSL_NO_SSL2' '-DOPENSSL_NO_SSL3' '-DOPENSSL_NO_HEARTBEATS' '-DENGINESDIR="/dev/null"' '-DTERMIOS' '-DOPENSSLDIR="/etc/ssl"' '-DL_ENDIAN' '-DAES_ASM' '-DCPUID_ASM' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_CPUID_OBJ' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DGHASH_ASM' '-DVPAES_ASM' '-DBN_ASM' '-DBF_ASM' '-DBNCO_ASM' '-DDES_ASM' '-DLIB_BN_ASM' '-DMD5_ASM' '-DOPENSSL_BN_ASM' '-DRIP_ASM' '-DRMD160_ASM' '-DWHIRLPOOL_ASM' '-DWP_ASM' '-DOPENSSL_BN_ASM_MONT5' '-DOPENSSL_BN_ASM_GF2m' '-DOPENSSL_IA32_SSE2' '-DBSAES_ASM' '-DDSO_DLFCN' '-DHAVE_DLFCN_H' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -Wno-missing-field-initializers -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -ffunction-sections -fdata-sections -fno-omit-frame-pointer -MMD -MF /node-v5.6.0/out/Release/.deps//node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/ec/ecp_nistz256.o.d.raw -c -o /node-v5.6.0/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/ec/ecp_nistz256.o ../deps/openssl/openssl/crypto/ec/ecp_nistz256.c
../deps/openssl/openssl/crypto/ec/ecp_nistz256.c:726:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
const static BN_ULONG def_xG[P256_LIMBS] = {
^
../deps/openssl/openssl/crypto/ec/ecp_nistz256.c:731:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
const static BN_ULONG def_yG[P256_LIMBS] = {
^
Tests
Tests were run with a simple make test.
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory '/node-v5.6.0/out'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/node-v5.6.0/out'
ln -fs out/Release/node node
Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from UtilTest
[ RUN ] UtilTest.ListHead
[ OK ] UtilTest.ListHead (0 ms)
[----------] 1 test from UtilTest (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[ PASSED ] 1 test.
/usr/bin/python tools/test.py --mode=release message parallel sequential -J
=== release test-net-better-error-messages-port-hostname ===
Path: parallel/test-net-better-error-messages-port-hostname
assert.js:89
throw new assert.AssertionError({
^
AssertionError: 'EAI_AGAIN' == 'ENOTFOUND'
at Socket.<anonymous> (/node-v5.6.0/test/parallel/test-net-better-error-messages-port-hostname.js:11:10)
at Socket.<anonymous> (/node-v5.6.0/test/common.js:395:15)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at connectErrorNT (net.js:988:8)
at nextTickCallbackWith2Args (node.js:475:9)
at process._tickCallback (node.js:389:17)
Command: out/Release/node /node-v5.6.0/test/parallel/test-net-better-error-messages-port-hostname.js
=== release test-net-connect-immediate-finish ===
Path: parallel/test-net-connect-immediate-finish
assert.js:89
throw new assert.AssertionError({
^
AssertionError: 'EAI_AGAIN' === 'ENOTFOUND'
at Socket.<anonymous> (/node-v5.6.0/test/parallel/test-net-connect-immediate-finish.js:11:10)
at Socket.<anonymous> (/node-v5.6.0/test/common.js:395:15)
at Socket.g (events.js:273:16)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at connectErrorNT (net.js:988:8)
at nextTickCallbackWith2Args (node.js:475:9)
at process._tickCallback (node.js:389:17)
Command: out/Release/node /node-v5.6.0/test/parallel/test-net-connect-immediate-finish.js
=== release test-stdout-close-unref ===
Path: parallel/test-stdout-close-unref
/node-v5.6.0/test/parallel/test-stdout-close-unref.js:8
process.stdin._handle.close();
^
TypeError: Cannot read property 'close' of undefined
at Object.<anonymous> (/node-v5.6.0/test/parallel/test-stdout-close-unref.js:8:22)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:140:18)
at node.js:1001:3
Command: out/Release/node /node-v5.6.0/test/parallel/test-stdout-close-unref.js
=== release test-setproctitle ===
Path: sequential/test-setproctitle
assert.js:89
throw new assert.AssertionError({
^
AssertionError: { [Error: Command failed: /bin/sh -c ps -p 1644 -o args=
ps: unrecognized option: p
BusyBox v1.24.1 (2015-12-16 08:00:02 GMT) mu == null
at /node-v5.6.0/test/sequential/test-setproctitle.js:25:10
at ChildProcess.exithandler (child_process.js:220:5)
at emitTwo (events.js:100:13)
at ChildProcess.emit (events.js:185:7)
at maybeClose (internal/child_process.js:827:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
Command: out/Release/node /node-v5.6.0/test/sequential/test-setproctitle.js
[03:09|% 100|+ 1013|- 4]: Done
Makefile:91: recipe for target 'test' failed
make: *** [test] Error 1
During trying to build Node.js v5.6.0 in an Alpine Linux 3.3 Docker container, I get various errors. As the whole build log would be too extensive, I only paste the erroring parts here. There are non-erroring parts in front of it to make identification of the steps easier.
The tarball of origin:
The tests failed partly – appended after the build errors.
Build log
Tests
Tests were run with a simple
make test.