Cross compiling NodeJS for Windows CE on ARMv11

I am trying to cross compile NodeJS for Windows CE, and I cannot figure it out. We would like to launch Node on devices using Freescale ARM1136-MX35 processors.

I tried using cegcc, but to no avail, and I also tried to configure with: ./configure --without-npm --without-ssl --without-snapshot --dest-cpu=arm --dest-os=winbut there were too many errors. Has anyone managed to compile Node for Windows CE?

Here's the error I get with regular gcc:

root@kevin-vm:~/node-v0.10.26# make
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/root/node-v0.10.26/out'
  g++ '-DNODE_WANT_INTERNALS=1' '-DARCH="arm"' '-DPLATFORM="linux"' '-DNODE_TAG=""' '-DHAVE_OPENSSL=0' '-DHAVE_ETW=1' '-DHAVE_PERFCTR=1' '-D__POSIX__' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D_POSIX_C_SOURCE=200112' -I../src -I../tools/msvs/genfiles -I../deps/uv/src/ares -I/root/node-v0.10.26/out/Release/obj/gen -I../deps/v8/include -I../deps/zlib -I../deps/http_parser -I../deps/cares/include -I../deps/uv/include  -Wall -Wextra -Wno-unused-parameter -pthread -O2 -fno-strict-aliasing -fno-tree-vrp -fno-omit-frame-pointer -fno-rtti -fno-exceptions -MMD -MF /root/node-v0.10.26/out/Release/.deps//root/node-v0.10.26/out/Release/obj.target/node/src/node.o.d.raw  -c -o /root/node-v0.10.26/out/Release/obj.target/node/src/node.o ../src/node.cc
In file included from ../src/node_counters.h:36:0,
                 from ../src/node.cc:35:
../src/node_win32_perfctr_provider.h:33:8: error: ‘HANDLE’ does not name a type
../src/node_win32_perfctr_provider.h: In function ‘bool node::NODE_COUNTER_ENABLED()’:
../src/node_win32_perfctr_provider.h:35:45: error: ‘NodeCounterProvider’ was not declared in this scope
make[1]: *** [/root/node-v0.10.26/out/Release/obj.target/node/src/node.o] Error 1
make[1]: Leaving directory `/root/node-v0.10.26/out'
make: *** [node] Error 2

Using cegcc:

root@kevin-vm:~/node-v0.10.26# make
/usr/bin/python tools/gyp_node.py -f make
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/root/node-v0.10.26/out'
  arm-cegcc-gcc '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D_GNU_SOURCE' '-DHAVE_CONFIG_H' '-DCARES_STATICLIB' -I../deps/cares/include -I../deps/cares/src -I../deps/cares/config/linux  -Wall -Wextra -Wno-unused-parameter -pthread -g --std=gnu89 -pedantic -Wall -Wextra -Wno-unused-parameter -O2 -fno-strict-aliasing -fno-tree-vrp -fno-tree-sink -fno-omit-frame-pointer  -MMD -MF /root/node-v0.10.26/out/Release/.deps//root/node-v0.10.26/out/Release/obj.target/cares/deps/cares/src/ares_cancel.o.d.raw  -c -o /root/node-v0.10.26/out/Release/obj.target/cares/deps/cares/src/ares_cancel.o ../deps/cares/src/ares_cancel.c
arm-cegcc-gcc: unrecognized option '-pthread'
/bin/../libexec/gcc/arm-cegcc/4.4.0/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
make[1]: *** [/root/node-v0.10.26/out/Release/obj.target/cares/deps/cares/src/ares_cancel.o] Error 1
make[1]: Leaving directory `/root/node-v0.10.26/out'
make: *** [node] Error 2

Edit: Our company decided to stop using Windows CE products and switch to embedded Linux systems (ARMv6), and it works great 0.12.2.

+4
source share

Source: https://habr.com/ru/post/1534331/


All Articles