Skip to content

Illegal instruction on ARM v5tel + impossible to compile from source #5810

Description

@tYYGH
  • Version: as far as I can tell, any version above legacy v0.10.
  • Platform: Linux server 3.16.0-4-kirkwood #1 Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) armv5tel GNU/Linux
  • Subsystem: CPU detection?
root@nspawn-sid:~# dpkg -l nodejs | grep ^i
ii  nodejs         4.4.0~dfsg-1 armel        evented I/O for V8 javascript
root@nspawn-sid:~# nodejs
Illegal instruction

[root@nspawn-arch ~]# pacman -Ss nodejs
community/nodejs 5.9.0-1 [installed]
    Evented I/O for V8 javascript
[root@nspawn-arch ~]# node
Illegal instruction

I even tried to compile nodejs-0.12 from AUR as well as nodejs-git from AUR on my Archlinux chroot. Both fail to compile. Here’s the failure for the GIT compile:

[git@nspawn-arch nodejs-git]$ makepkg -A -e
==> Making package: nodejs-git 5.9.0.r1.g0cac777-1 (Sun Mar 20 15:01:10 CET 2016)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...

creating  ./icu_config.gypi
{ 'target_defaults': { 'cflags': [],
                       'default_configuration': 'Release',
                       'defines': [],
                       'include_dirs': [],
                       'libraries': [ '-lz',
                                      '-lhttp_parser',
                                      '-luv',
                                      '-lrt',
                                      '-lpthread',
                                      '-lnsl',
                                      '-ldl',
                                      '-lssl',
                                      '-lcrypto',
                                      '-licui18n',
                                      '-licuuc',  'variables': { 'arm_float_abi': 'default',
                 'arm_fpu': 'vfp',
                 'arm_thumb': 0,
                 'arm_version': 'default',
                 'asan': 0,
                 'host_arch': 'arm',
                 'icu_gyp_path': 'tools/icu/icu-system.gyp',
                 'icu_small': 'false',
                 'node_byteorder': 'little',
                 'node_enable_v8_vtunejit': 'false',
                 'node_install_npm': 'false',
                 'node_prefix': '/usr',
                 'node_release_urlbase': '',
                 'node_shared_http_parser': 'true',
                 'node_shared_libuv': 'true',
                 'node_shared_openssl': 'true',
                 'node_shared_zlib': 'true',
                 'node_tag': '',
                 'node_use_dtrace': 'false',
                 'node_use_etw': 'false',
                 'node_use_lttng': 'false',
                 'node_use_openssl': 'true',
                 'node_use_perfctr': 'false',
                 'openssl_fips': '',
                 'openssl_no_asm': 0,
                 'target_arch': 'arm',
                 'uv_parent_path': '/deps/uv/',
                 'uv_use_dtrace': 'false',
                 'v8_enable_gdbjit': 0,
                 'v8_enable_i18n_support': 1,
                 'v8_no_strict_aliasing': 1,
                 'v8_optimized_debug': 0,
                 'v8_random_seed': 0,
                 'v8_use_snapshot': 'true',
                 'want_separate_host_toolset': 0}}
creating  ./config.gypi
creating  ./config.mk
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory '/opt/fsync/node-git/nodejs-git/src/nodejs-git/out'
  LD_LIBRARY_PATH=/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/lib.host:/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/tools/gyp; mkdir -p /opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/obj.target/v8_snapshot/geni; "/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/mksnapshot" --log-snapshot-positions --logfile "/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/obj.target/v8_snapshot/geni/snapshot.log" "/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/obj.target/v8_snapshot/geni/snapshot.cc" ""
/bin/sh: line 1:   593 Segmentation fault      "/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/mksnapshot" --log-snapshot-positions --logfile "/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/obj.target/v8_snapshot/geni/snapshot.log" "/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/obj.target/v8_snapshot/geni/snapshot.cc" ""
deps/v8/tools/gyp/v8_snapshot.target.mk:13: recipe for target '/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/obj.target/v8_snapshot/geni/snapshot.cc' failed
make[1]: *** [/opt/fsync/node-git/nodejs-git/src/nodejs-git/out/Release/obj.target/v8_snapshot/geni/snapshot.cc] Error 139
make[1]: Leaving directory '/opt/fsync/node-git/nodejs-git/src/nodejs-git/out'
Makefile:63: recipe for target 'node' failed
make: *** [node] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

For the record, here’s my full CPU info:

server:~# cat /proc/cpuinfo
processor       : 0
model name      : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS        : 1185.79
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant     : 0x2
CPU part        : 0x131
CPU revision    : 1

Hardware        : Marvell Kirkwood (Flattened Device Tree)
Revision        : 0000
Serial          : 0000000000000000

server:~# lscpu
Architecture:          armv5tel
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
Model name:            Feroceon 88FR131 rev 1 (v5l)
CPU max MHz:           1200.0000
CPU min MHz:           400.0000

Metadata

Metadata

Assignees

No one assigned

    Labels

    armIssues and PRs related to the ARM architecture.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions