stance to cross-compile v18.x for armv7 (what is the trick) ? #43020
-
Hi There, may I ask you guys to kindly provide the ./configure stance in order to build v18.x with a armv7 (linux-gnueabi) toolchain ? So, what is the trick? Many thanks, I tried with ./configure --without-snapshot --without-ssl --dest-cpu=arm --dest-os=linux --with-arm-float-abi=hard --without-intl --prefix="${PREFIX_DIR}" --cross-compiling build env is set using a yocto SDK toolchain (sets CC, CXX -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 sysroot etc...) and this fails eventually with : $ g++ -o /home/marc/node/out/Release/obj.host/v8_base_without_compiler/deps/v8/src/heap/cppgc/gc-info-table.o ../deps/v8/src/heap/cppgc/gc-info-table.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_ARM' '-DCAN_USE_ARMV7_INSTRUCTIONS' '-DCAN_USE_VFP3_INSTRUCTIONS' '-DCAN_USE_VFP32DREGS' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_LINUX' '-DV8_EMBEDDER_STRING="-node.13"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DOBJECT_PRINT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_SCRIPTORMODULE_LEGACY_LIFETIME' '-DV8_ADVANCED_BIGINT_ALGORITHMS' '-DUSE_EABI_HARDFLOAT=1' -I../deps/v8 -I../deps/v8/include -I/home/marc/node/out/Release/obj/gen/inspector-generated-output-root -I../deps/v8/third_party/inspector_protocol -I/home/marc/node/out/Release/obj/gen -I/home/marc/node/out/Release/obj/gen/generate-bytecode-output-root -I../deps/v8/third_party/zlib -I../deps/v8/third_party/zlib/google -pthread -Wno-unused-parameter -Wno-return-type -fno-strict-aliasing -m32 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++17 -MMD -MF /home/marc/node/out/Release/.deps//home/marc/node/out/Release/obj.host/v8_base_without_compiler/deps/v8/src/heap/cppgc/gc-info-table.o.d.raw -c
/tmp/ccvlqciY.s: Assembler messages:
/tmp/ccvlqciY.s:8: Error: bad register name `%rbp'
/tmp/ccvlqciY.s:9: Error: bad register name `%rsp'
/tmp/ccvlqciY.s:11: Error: bad register name `%rbx'
/tmp/ccvlqciY.s:12: Error: bad register name `%r12 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
In the Node.js CI we use https://github.com/nodejs/build/blob/master/ansible/roles/docker/files/cc-selector.sh to set CC and CXX to include |
Beta Was this translation helpful? Give feedback.
In the Node.js CI we use https://github.com/nodejs/build/blob/master/ansible/roles/docker/files/cc-selector.sh to set CC and CXX to include
-march
, e.g.-march=armv7-a
. (We use that script because different versions of Node.js are compiled with different gcc cross compiling toolchains.)