The system is produced by cross-compilation, not emulation
docs/evidence/cross-build.txt. The full system closure was cross-compiled on an x86_64 host with no riscv64 hardware โ 353 derivations built locally, ~970 substituted, producing 1.2 GiB across 474 store paths in 4413s. The resulting kernel booted under QEMU to a shell prompt (docs/evidence/qemu-boot.txt).
Building the system SHALL NOT require a riscv64 machine. The build SHALL declare an x86_64-linux build platform and a riscv64-linux host platform, so that derivations cross-compile by default.
Emulation SHALL remain available as a fallback for derivations that cannot cross-compile, and any derivation built under emulation SHALL be named in the repository rather than silently emulated. The distinction matters because emulated builds are slow enough to change what is worth attempting.
A closure is built on an x86_64 host
- WHEN someone with no riscv64 hardware builds the system
- THEN it completes, and produces riscv64 artifacts
A package will not cross-compile
- WHEN a derivation fails to cross-compile and is built under emulation instead
- THEN it is listed in the repository as one that needs emulation, with what it cost