Skip to content

Blog: a Linux target with no ABI suffix is musl - #947

Open
gHashTag wants to merge 1 commit into
mainfrom
blog/a-linux-target-with-no-abi-is-musl
Open

Blog: a Linux target with no ABI suffix is musl#947
gHashTag wants to merge 1 commit into
mainfrom
blog/a-linux-target-with-no-abi-is-musl

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Adds one post to the t27.ai blog. Not merged — merging is the publication decision.

Slug: a-linux-target-with-no-abi-is-musl · Date: 2026-09-06

What it says

trinity-fpga #749 (MERGED 2026-09-05) corrected a CI job that pinned -target x86_64-linux. Zig resolves a Linux target with no ABI suffix to musl, so a job that exists specifically to catch platform-blind verification had been verifying against a libc no real build of the project uses.

Reproduced independently before writing

Zig 0.16.0, macOS aarch64 cross-compiling, empty main, -lc:

-target file(1)
x86_64-linux statically linked
x86_64-linux-gnu dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2
x86_64-linux-musl statically linked

The only target triple appearing as a string in the unsuffixed binary is x86_64-linux-musl. std/c.zig in that install has 11 isGnu()/isMusl() call sites.

One claim in the PR does not reproduce, and the post says so

#749 describes the two static binaries as "byte-identical". Building the identical target three times gave three hashes and two sizes (12,731,133 / 12,731,154 / 12,731,133). This Zig build is not reproducible run to run on this host, so neither hash nor size discriminates a target from itself. The post replaces that support with the linkage and the resolved triple, which survive the control, and records the correction in the text and in openQuestions.

Gate

npm run build:ci exits 0; the slug appears once in dist/assets/Blog-f8AG_8iR.js and the body emits as a-linux-target-with-no-abi-is-musl-KjGcupWy.js.

Receipts, re-checked against the API immediately before writing

ru is filled for every field. Branch cut from origin/main; one commit, three files.

🤖 Generated with Claude Code

The Zig 0.16 CI gate in trinity-fpga pinned -target x86_64-linux, which
Zig resolves to musl, not the runner's glibc. Reproduced independently
across three targets, with a determinism control that refutes the pull
request's "byte-identical" support while leaving the finding intact.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant