0

I forked Nodejs-ARM-builder repository and update Vagrant box to Ubuntu 18.04 (here's my repo: https://github.com/lbrutti/Nodejs-ARM-builder ).

When trying to cross compile NodeJS for ARM Cortex (I want to put NodeJS on a Parrot AR 2.0 drone but I'd like to use LTS version instead of the old one proposerd here: https://github.com/felixge/node-cross-compiler/downloads) I get an error I can't understand how to fix:

arm-unknown-linux-gnueabihf-g++ -pthread -rdynamic  -o /home/vagrant/node- 
v8.11.1/out/Release/icupkg -Wl,--start-group /home/vagrant/node-v8.11.1/out/Release/obj.host/icupkg/deps/icu-small/source/tools/icupkg/icupkg.o /home/vagrant/node-v8.11.1/out/Release/obj.host/icupkg/tools/icu/no-op.o /home/vagrant/node-v8.11.1/out/Release/obj.host/tools/icu/libicutools.a  -Wl,--end-group
arm-unknown-linux-gnueabihf-g++ -pthread -rdynamic  -o /home/vagrant/node-v8.11.1/out/Release/genrb -Wl,--start-group /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/read.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/errmsg.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/prscmnts.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/parse.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/genrb.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/wrtjava.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/ustr.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/rbutil.o         /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/wrtxml.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/rle.o /home/vagrant/node-v8.11.1/out/Release/obj.host/genrb/deps/icu-small/source/tools/genrb/reslist.o /home/vagrant/node-v8.11.1/out/Release/obj.host/tools/icu/libicutools.a  -Wl,--end-group
arm-unknown-linux-gnueabihf-g++ -pthread -rdynamic  -o /home/vagrant/node-v8.11.1/out/Release/iculslocs -Wl,--start-group /home/vagrant/node-v8.11.1/out/Release/obj.host/iculslocs/tools/icu/iculslocs.o /home/vagrant/node-v8.11.1/out/Release/obj.host/iculslocs/tools/icu/no-op.o /home/vagrant/node-v8.11.1/out/Release/obj.host/tools/icu/libicutools.a  -Wl,--end-group
LD_LIBRARY_PATH=/home/vagrant/node-v8.11.1/out/Release/lib.host:/home/vagrant/node-v8.11.1/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/icu; mkdir -p /home/vagrant/node-v8.11.1/out/Release/obj/gen/icutmp; python icutrim.py -P "/home/vagrant/node-v8.11.1/out/Release" -D ../../deps/icu-small/source/data/in/icudt60l.dat --delete-tmp -T "/home/vagrant/node-v8.11.1/out/Release/obj/gen/icutmp" -F icu_small.json -O icudt60l.dat -v -L en,root
Options: {'verbose': 1, 'filterfile': 'icu_small.json', 'toolpath': '/home/vagrant/node-v8.11.1/out/Release', 'deltmpdir': 1, 'outfile': 'icudt60l.dat', 'datfile': '../../deps/icu-small/source/data/in/icudt60l.dat', 'locales': 'en,root', 'endian': 'little', 'tmpdir': '/home/vagrant/node-v8.11.1/out/Release/obj/gen/icutmp'}
icu_small.json: icutrim.py config: Trim down ICU to just a certain locale set, needed for node.js use.
sh: 1: /home/vagrant/node-v8.11.1/out/Release/icupkg: Exec format error
FAILED: /home/vagrant/node-v8.11.1/out/Release/icupkg -tl ../../deps/icu-small/source/data/in/icudt60l.dat /home/vagrant/node-v8.11.1/out/Release/obj/gen/icutmp/icudt60l.dat
tools/icu/icudata.target.mk:13: recipe for target '/home/vagrant/node-v8.11.1/out/Release/obj/gen/icutmp/icudt60l.dat' failed
make[1]: *** [/home/vagrant/node-v8.11.1/out/Release/obj/gen/icutmp/icudt60l.dat] Error 1
rm 1a1b88980118d836843b09666155f5b83fe8fb29.intermediate
Makefile:88: recipe for target 'node' failed

I am using xtools as toolchain: http://archlinuxarm.org/builder/xtools/x-tools7h.tar.xz

Thanks

0

Seems like the issue gets solved by adding --without-intl flag to configure line as in https://github.com/nodejs/node/issues/7173:

./configure --cross-compiling --without-snapshot --without-npm --without-ssl --without-intl --dest-cpu=arm --dest-os=linux --prefix="${PREFIX_DIR}"

Now I don't get any error and the compilation moves forward.

Seems like there's an error during the packaging steps:

Invalid package configuration: Cannot package the path '/tmp/installARMv7/usr/lib', does it exist? {:level=>:error}

but node executable seems to be created. tomorrow i'll try to deploy it on Parrot Drone and see if it works.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.