You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
V8 has an open bug when cross-compiling for 32-bit ARM targets from an x64 host. The symptom is incorrect source-file selection for the push_registers_asm helper — the x64 host variant gets selected instead of the ARM target variant.
2. Host toolchain -m32 / -m64 conflict
common.gypi unconditionally adds -m64 to host cflags/ldflags when host_arch=="x64", which conflicts with the -m32 required for building 32-bit host tools (torque, mksnapshot). Both flags end up on the same command line.
3. Static assertion failures
Several static_assert checks in V8 fail under 32-bit:
deps/v8/src/wasm/wasm-objects.h — alignment checks against kTaggedSize
The gyp build selects the x64 variant of push_registers_asm.cc instead of the arm variant when the host is x64 and target is arm. This causes undefined symbols at link time for SavePushRegistersAll and related functions.
Status: Experimental / Best-effort
32-bit ARM (armeabi-v7a) support is marked as
continue-on-errorin CI — it will never block the arm64-v8a build.Known issues
1. Upstream V8 cross-build bug (nodejs/node#58975)
V8 has an open bug when cross-compiling for 32-bit ARM targets from an x64 host. The symptom is incorrect source-file selection for the
push_registers_asmhelper — the x64 host variant gets selected instead of the ARM target variant.2. Host toolchain -m32 / -m64 conflict
common.gypiunconditionally adds-m64to host cflags/ldflags whenhost_arch=="x64", which conflicts with the-m32required for building 32-bit host tools (torque, mksnapshot). Both flags end up on the same command line.3. Static assertion failures
Several
static_assertchecks in V8 fail under 32-bit:deps/v8/src/wasm/wasm-objects.h— alignment checks againstkTaggedSizedeps/v8/src/objects/number-string-cache.h— size checksdeps/v8/src/sandbox/js-dispatch-table.h— entry size checksCurrent mitigation: wrap these in
/* */block comments in the patch step.4. Wrong push_registers_asm.cc selected (nodejs/node#58975)
The gyp build selects the x64 variant of
push_registers_asm.ccinstead of the arm variant when the host is x64 and target is arm. This causes undefined symbols at link time forSavePushRegistersAlland related functions.What needs to be done
-m32/-m64conflict in common.gypi or override in the workflowstatic_assertworkarounds with proper upstream-compatible patches