Guides
Cross-compiling versus native arm64
You need arm64 binaries and are unsure whether to cross-compile or build natively.
5 min read
You need arm64 binaries and are unsure whether to cross-compile or build natively.
Why it happens
Cross-compilation avoids emulation but needs a working toolchain per target and breaks on build-time code execution.
How to fix it
- Prefer native builds — no toolchain complexity and no emulation penalty
- Cross-compile when you need many targets and only one runner architecture
- Never use QEMU for anything that compiles
Your next build could be twice as fast, at half the price
Start free. Migrating away is the same one line, and we publish that diff too.
Related
How to move CI to arm64 runnersYou deploy to Graviton or Ampere but build on x64.arm64 migration checklistYou want to move to arm64 without breaking the pipeline.Why QEMU arm64 builds are so slowAdding linux/arm64 to a Docker build makes it twenty times slower.Fixing Node native modules on arm64npm install fails or compiles from source on arm64 runners.