Skip to content
zit Check-in [31c4850b95]
Login

Check-in [31c4850b95]

Overview
Comment:build: compile for CI's Linux targets in the gate

This project links no libc and macOS links libc always, so a call that demands it compiles on a mac, passes every local lane, and refuses on both Linux runners -- the discovery order the fmt check already exists to prevent, and what zit#188 spent a red main on.

`zig build cross` compiles the CLI for x86_64-linux and aarch64-linux and runs nothing; gate depends on it. Verified to discriminate: reintroducing std.c.getenv fails cross while a plain macOS build still passes.

Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 31c4850b9536971a19cbbbd16ef910ecd8ea7c6f5e669d4592eb1449fdfc8883
User & Date: dmestas on 2026-09-14 12:14:29.873
Other Links: manifest | tags
Context
2026-09-14
12:48
build: register the cross step with the CI pin

The negative-space pin requires every build.zig step to be either invoked by CI or listed with the reason it is not. The cross step was neither, so it failed all three runners -- the pin doing exactly its job on the commit that added an unregistered step.

CI compiles the real thing on all three shipped targets, so cross-compiling them again proves nothing new; the step is for the developer, before the push. Recorded as such. check-in: 770e641725 user: dmestas tags: trunk

12:14
build: compile for CI's Linux targets in the gate

This project links no libc and macOS links libc always, so a call that demands it compiles on a mac, passes every local lane, and refuses on both Linux runners -- the discovery order the fmt check already exists to prevent, and what zit#188 spent a red main on.

`zig build cross` compiles the CLI for x86_64-linux and aarch64-linux and runs nothing; gate depends on it. Verified to discriminate: reintroducing std.c.getenv fails cross while a plain macOS build still passes. check-in: 31c4850b95 user: dmestas tags: trunk

11:48
log: read the file-index kill switch at main's environ seam, not through libc

std.c.getenv demands libc linkage, which this project does not take, so both Linux runners refused to compile while macOS -- which always links libc -- built it and the local gate passed. cli.Ambient.environ documents exactly this rule; the seam existed and was bypassed.

Read $ZIT_NO_FILE_INDEX in main from init.environ_map like every other seam and hand the runner a flag. Cross-compiles clean to x86_64-linux and aarch64-linux. check-in: 1317aa9864 user: dmestas tags: trunk

Changes