Parent: #459 Depends on: #483, #484
Goal
Ship native baseline/optimizer execution on Linux AArch64 and x86-64 with the same W^X, correctness, GC, concurrency, and performance contract as macOS.
Scope
- Implement Linux executable-memory transitions, page accounting, instruction-cache synchronization, patching/linking, unwind/debug visibility, and retirement through #483.
- Enable the AArch64 emitter on Linux only after ABI/system-call differences are modeled and gated.
- Enable #484 x86-64 codegen on Linux with SysV ABI parity.
- Test static-library embedding, PIE/ASLR, hardened W^X policy, signals/traps, threads, fork policy if supported, and teardown across distributions/kernels in the declared matrix.
- Collect evidence on real supported hardware; cross-compilation proves only buildability.
No-workaround rules
- No RWX,
/tmpexecutable file trampoline, JIT library, external assembler, qemu-only performance claim, or platform marked supported while native publication remains zero.
Acceptance
- Linux AArch64/x86-64 publish real baseline and optimizer artifacts through the same inventories and counters.
- Full forced-tier, moving-GC, no-GIL, TSan, termination/debugger, OOM/fault, artifact-retirement, unit, test262, PR-249, ABI, and embedding gates pass.
- #460/#461 publish clean real-hardware evidence with code bytes, compile cost, RSS, and tier attribution.
- Unsupported kernels/architectures fail closed with an explicit reason and exact lower-tier behavior.
- CI and local builds use only owned Zig code plus standard Linux OS interfaces.
Foundation
Linux x86-64 already gates portable correctness/TSan; this issue changes only the native publication boundary, not the existing exact fallback.