By: Tom Sydney Kerckhove <syd@cs-syd.eu>
build: force gnu ABI for vendored zig build under Nix sandbox `nix flake check` failed compiling the vendored Zig `simdutf` library with `'bits/alltypes.h' file not found`, preceded by Zig's `Encountered error: FileNotFound, falling back to default ABI and dynamic linker.` `build.rs` only passes `-Dtarget` to `zig build` when cross-compiling; for native builds it relies on Zig's host detection. That detection probes the host dynamic linker, which the Nix sandbox hides, so Zig falls back to a libc whose headers are not on the include path and the C++ compile fails. The build works on a developer machine (no sandbox) but never inside a sandboxed Nix builder, which is what NixCI runs. Add an optional `LIBGHOSTTY_VT_SYS_ZIG_TARGET` override that, when set, is passed straight through as `-Dtarget`, bypassing native detection. Outside Nix the variable is unset and native auto-detection is unchanged. The flake sets it to `native-native-gnu` for Linux builds (keeping native arch/os/cpu while forcing the gnu ABI).
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 15s | 1s | 1s | 16s | 15s |
| Eval | 16s | 31s | 31s | 48s | 0s |
| Build | 2h47m58s | 8s | 8s | 2h48m07s | 2h47m10s |
| Suite | 15s | 41s | 2h47m52s | 2h48m07s | 2h47m25s |