Skip to content

v0.2.0 — Linux aarch64 (arm64) port

Latest

Choose a tag to compare

@thooams thooams released this 17 Jul 18:37
· 1 commit to main since this release

Linux aarch64 (arm64) port

The full UOLT suite — 35 core tools + the column extra — now builds fully static for Linux aarch64 and passes the entire test suite under qemu-user, alongside the existing Linux x86_64 and Intel macOS targets.

  • Same tools, second architecture. Every libuolt primitive, syscall wrapper, and tool body is re-authored in AArch64 assembly. The aarch64 Linux syscall set (the *at family) is absorbed in sys/linux/arm64/ so the internal API signatures stay identical (Principle V).
  • Size discipline held. aarch64 suite ≈ 51 KB (avg ~1.5 KB/tool; true/false 368 B). Byte counts differ from x86_64 by instruction encoding.
  • Guarded by CI. A linux-arm64 job cross-builds on the x86_64 runner and runs the full make test under binfmt/qemu-user, failing independently of x86_64 (the trace layer is skipped under qemu; the no-heap guarantee stays structural).
  • Packaging. AUR (arch=(x86_64 aarch64)) and Nix (x86_64-linux, aarch64-linux) now cover Linux arm64; Homebrew builds on Linux arm too. macOS on Apple Silicon stays out of scope (its direct-syscall model is incompatible).

Build it with make ARCH=arm64 (auto-selected from uname -m on a native arm64 host).

🤖 Generated with Claude Code