Version
v21.7.3
Platform
Linux raymond 6.8.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 05 Apr 2024 00:14:23 +0000 x86_64 GNU/Linux
What steps will reproduce the bug?
Cross-compiling for Linux ARM64 on a Linux x86_64 machine.
What is the expected behavior? Why is that the expected behavior?
Should compile.
What do you see instead?
Here's the log:
--snip--
aarch64-linux-gnu-g++ -o /__w/github-node/github-node/github-node/node/out/Release/obj.target/icuucx/deps/icu-small/source/common/ucnv_set.o ../deps/icu-small/source/common/ucnv_set.cpp '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_THREADS' '-DU_COMMON_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/common -pthread -Wall -Wextra -Wno-unused-parameter -fPIC -Wno-deprecated-declarations -Wno-strict-aliasing -O3 -fno-omit-frame-pointer -fno-exceptions -std=gnu++17 -frtti -MMD -MF /__w/github-node/github-node/github-node/node/out/Release/.deps//__w/github-node/github-node/github-node/node/out/Release/obj.target/icuucx/deps/icu-small/source/common/ucnv_set.o.d.raw -c
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_libplatform.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_libplatform.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_zlib.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_zlib.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_libplatform.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_libplatform.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/llhttp/libllhttp.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/llhttp/libllhttp.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/llhttp/libllhttp.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/llhttp/libllhttp.a.ar-file-list
ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_libplatform.a @/__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_libplatform.a.ar-file-list
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_libplatform.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_libplatform.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/cares/libcares.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/cares/libcares.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/uv/libuv.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/uv/libuv.a`
ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_zlib.a @/__w/github-node/github-node/github-node/node/out/Release/obj.host/tools/v8_gypfiles/libv8_zlib.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/nghttp2/libnghttp2.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/nghttp2/libnghttp2.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/brotli/libbrotli.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/brotli/libbrotli.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/nghttp2/libnghttp2.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/nghttp2/libnghttp2.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/openssl/libopenssl.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/openssl/libopenssl.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libngtcp2.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libngtcp2.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/brotli/libbrotli.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/brotli/libbrotli.a.ar-file-list
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/uv/libuv.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/uv/libuv.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libnghttp3.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libnghttp3.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libnghttp3.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libnghttp3.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/base64/libbase64_neon64.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/base64/libbase64_neon64.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libngtcp2.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/ngtcp2/libngtcp2.a.ar-file-list
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/base64/libbase64_neon64.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/base64/libbase64_neon64.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/cares/libcares.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/cares/libcares.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_inflate_chunk_simd.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_inflate_chunk_simd.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_adler32_simd.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_adler32_simd.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_inflate_chunk_simd.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_inflate_chunk_simd.a.ar-file-list
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_adler32_simd.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_adler32_simd.a.ar-file-list
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_arm_crc32.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_arm_crc32.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest.a`
rm -f /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest_main.a ar-file-list; mkdir -p `dirname /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest_main.a`
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_arm_crc32.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/zlib/libzlib_arm_crc32.a.ar-file-list
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest_main.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest_main.a.ar-file-list
aarch64-linux-gnu-g++ -o /__w/github-node/github-node/github-node/node/out/Release/overlapped-checker -pthread -rdynamic -Wl,--start-group /__w/github-node/github-node/github-node/node/out/Release/obj.target/overlapped-checker/test/overlapped-checker/main_unix.o -Wl,--end-group
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a.ar-file-list
g++ -o /__w/github-node/github-node/github-node/node/out/Release/obj.host/node_js2c/tools/js2c.o ../tools/js2c.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_THREADS' '-DNODE_JS2C_USE_STRING_LITERALS' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D_POSIX_C_SOURCE=200112' -I../tools -I../src -I../deps/simdutf -I../deps/uv/include -Wall -Wextra -Wno-unused-parameter -mbranch-protection=standard -pthread -Wall -Wextra -Wno-unused-parameter -fPIC -m64 -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++17 -MMD -MF /__w/github-node/github-node/github-node/node/out/Release/.deps//__w/github-node/github-node/github-node/node/out/Release/obj.host/node_js2c/tools/js2c.o.d.raw -c
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/googletest/libgtest.a.ar-file-list
g++ -o /__w/github-node/github-node/github-node/node/out/Release/obj.host/node_js2c/src/embedded_data.o ../src/embedded_data.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_THREADS' '-DNODE_JS2C_USE_STRING_LITERALS' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D_POSIX_C_SOURCE=200112' -I../tools -I../src -I../deps/simdutf -I../deps/uv/include -Wall -Wextra -Wno-unused-parameter -mbranch-protection=standard -pthread -Wall -Wextra -Wno-unused-parameter -fPIC -m64 -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++17 -MMD -MF /__w/github-node/github-node/github-node/node/out/Release/.deps//__w/github-node/github-node/github-node/node/out/Release/obj.host/node_js2c/src/embedded_data.o.d.raw -c
g++ -o /__w/github-node/github-node/github-node/node/out/Release/obj.host/v8_libbase/deps/v8/src/base/bits.o ../deps/v8/src/base/bits.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_ARM64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_LINUX' '-DV8_EMBEDDER_STRING="-node.20"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-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_USE_ZLIB' '-DV8_ENABLE_TURBOFAN' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_ADVANCED_BIGINT_ALGORITHMS' '-DBUILDING_V8_BASE_SHARED' -I../deps/v8 -I../deps/v8/include -pthread -Wno-unused-parameter -fPIC -Wno-return-type -flax-vector-conversions -Wno-invalid-offsetof -fno-strict-aliasing -m64 -m64 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++17 -MMD -MF /__w/github-node/github-node/github-node/node/out/Release/.deps//__w/github-node/github-node/github-node/node/out/Release/obj.host/v8_libbase/deps/v8/src/base/bits.o.d.raw -c
g++ -o /__w/github-node/github-node/github-node/node/out/Release/obj.host/v8_libbase/deps/v8/src/base/bounded-page-allocator.o ../deps/v8/src/base/bounded-page-allocator.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_ARM64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_LINUX' '-DV8_EMBEDDER_STRING="-node.20"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-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_USE_ZLIB' '-DV8_ENABLE_TURBOFAN' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_ADVANCED_BIGINT_ALGORITHMS' '-DBUILDING_V8_BASE_SHARED' -I../deps/v8 -I../deps/v8/include -pthread -Wno-unused-parameter -fPIC -Wno-return-type -flax-vector-conversions -Wno-invalid-offsetof -fno-strict-aliasing -m64 -m64 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++17 -MMD -MF /__w/github-node/github-node/github-node/node/out/Release/.deps//__w/github-node/github-node/github-node/node/out/Release/obj.host/v8_libbase/deps/v8/src/base/bounded-page-allocator.o.d.raw -c
g++ -o /__w/github-node/github-node/github-node/node/out/Release/obj.host/v8_libbase/deps/v8/src/base/cpu.o ../deps/v8/src/base/cpu.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_ARM64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_LINUX' '-DV8_EMBEDDER_STRING="-node.20"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-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_USE_ZLIB' '-DV8_ENABLE_TURBOFAN' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_ADVANCED_BIGINT_ALGORITHMS' '-DBUILDING_V8_BASE_SHARED' -I../deps/v8 -I../deps/v8/include -pthread -Wno-unused-parameter -fPIC -Wno-return-type -flax-vector-conversions -Wno-invalid-offsetof -fno-strict-aliasing -m64 -m64 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++17 -MMD -MF /__w/github-node/github-node/github-node/node/out/Release/.deps//__w/github-node/github-node/github-node/node/out/Release/obj.host/v8_libbase/deps/v8/src/base/cpu.o.d.raw -c
g++: error: unrecognized command-line option '-mbranch-protection=standard'
make[1]: *** [node_js2c.host.mk:110: /__w/github-node/github-node/github-node/node/out/Release/obj.host/node_js2c/tools/js2c.o] Error 1
make[1]: *** Waiting for unfinished jobs....
g++: error: unrecognized command-line option '-mbranch-protection=standard'
make[1]: *** [node_js2c.host.mk:110: /__w/github-node/github-node/github-node/node/out/Release/obj.host/node_js2c/src/embedded_data.o] Error 1
aarch64-linux-gnu-ar crsT /__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/openssl/libopenssl.a @/__w/github-node/github-node/github-node/node/out/Release/obj.target/deps/openssl/libopenssl.a.ar-file-list
rm d8f608b69cdc2f0bb9d43b231e630e7950e25263.intermediate 34f66c0bec964870ba9e5b2230b46b04e12c9734.intermediate
make: *** [Makefile:134: node] Error 2
Additional information
The -mbranch-protection=standard compiler flag only exists on ARM64 versions of GCC/G++.
This bug happens because as declared in node.gyp the build system passes the -mbranch-protection=standard flag to the compiler when targeting an ARM64 machine which was introduced by this issue and particularly this PR. This is not a problem when the host machine is an ARM64 device and compiles for ARM64, but it is problematic when the host is not an ARM64 device but is trying to compile for an ARM64 device. The solution to this would be to not pass this compiler flag for targets that are meant to be compiled with the host toolchain which is js2c (reference) in this case considering the host not being an ARM64 device.
Version
v21.7.3
Platform
Linux raymond 6.8.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 05 Apr 2024 00:14:23 +0000 x86_64 GNU/Linux
What steps will reproduce the bug?
Cross-compiling for Linux ARM64 on a Linux x86_64 machine.
What is the expected behavior? Why is that the expected behavior?
Should compile.
What do you see instead?
Here's the log:
Additional information
The
-mbranch-protection=standardcompiler flag only exists on ARM64 versions of GCC/G++.This bug happens because as declared in node.gyp the build system passes the
-mbranch-protection=standardflag to the compiler when targeting an ARM64 machine which was introduced by this issue and particularly this PR. This is not a problem when the host machine is an ARM64 device and compiles for ARM64, but it is problematic when the host is not an ARM64 device but is trying to compile for an ARM64 device. The solution to this would be to not pass this compiler flag for targets that are meant to be compiled with the host toolchain which is js2c (reference) in this case considering the host not being an ARM64 device.