Skip to content

arm64 cross-compile fails on amd64 #42643

Description

@jgowdy

Version

16.14.2

Platform

Linux bx.ee 5.4.0-89-generic #100-Ubuntu SMP Fri Sep 24 14:50:10 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Subsystem

No response

What steps will reproduce the bug?

./configure --cross-compiling --dest-cpu arm64 --dest-os linux && make -j8

How often does it reproduce? Is there a required condition?

Every time

What is the expected behavior?

If cross-compiling is supported, I would expect that supplying the --cross-compiling flag would avoid attempting to run cross-compiled executables like icupkg on the host architecture which wouldn't rationally be expected to succeed.

What do you see instead?

  LD_LIBRARY_PATH=/home/jgowdy/projects/build-node-pac/node/out/Release/lib.host:/home/jgowdy/projects/build-node-pac/node/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/icu; mkdir -p /home/jgowdy/projects/build-node-pac/node/out/Release/obj/gen; "/home/jgowdy/projects/build-node-pac/node/out/Release/icupkg" -tl ../../deps/icu-tmp/icudt70l.dat "/home/jgowdy/projects/build-node-pac/node/out/Release/obj/gen/icudt70l.dat"
/bin/sh: 1: /home/jgowdy/projects/build-node-pac/node/out/Release/icupkg: Exec format error

Additional information

I did see #11931 however this isn't related to Android, just being able to cross-compile arm64 Linux binaries on amd64.

Activity

  1. jgowdy commented on Apr 7, 2022

    @jgowdy
    Author
    file /home/jgowdy/projects/build-node-pac/node/out/Release/icupkg
    /home/jgowdy/projects/build-node-pac/node/out/Release/icupkg: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=22c61f6274ea8f86832526cdd4a88a782da323e9, for GNU/Linux 3.7.0, not stripped
    
  2. added
    buildIssues and PRs related to Node.js builds or CI infrastructure.
    armIssues and PRs related to the ARM architecture.
    on Apr 7, 2022
  3. bnoordhuis commented on Apr 9, 2022

    @bnoordhuis
    Member

    icupkg's build rules say it should be built for the host arch, not the target arch.

    The rules are in tools/icu/icu-generic.gyp. Note how icpupkg itself declares 'toolsets': ['host'] and its dependents list it as icupkg#host.

    My guess is this is related to your local toolchains, it's not picking up the right one. Run make AR_host=.. CC_host=.. CXX_host=.. to point it to the host toolchain and AR_target=.. etc. for the target toolchain.

  4. github-actions commented on Jun 25, 2026

    @github-actions
    Contributor

    This issue has been marked as stale due to 210 days of inactivity.
    It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.

  5. added
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Jun 25, 2026
  6. github-actions commented on Jul 26, 2026

    @github-actions
    Contributor

    This issue has been automatically closed after 30 days of inactivity following its stale status (no activity for a total of 120 days).
    If this is still relevant, feel free to reopen it or leave a comment with additional details so we can continue the discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    armIssues and PRs related to the ARM architecture.buildIssues and PRs related to Node.js builds or CI infrastructure.staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions