Skip to content

ci: pin Tiny Dancer build toolchain to 1.97.0 to fix aarch64-musl zig link drift (#900) - #934

Draft
ruvnet wants to merge 1 commit into
mainfrom
fix/tiny-dancer-zig-rust-pin-900
Draft

ci: pin Tiny Dancer build toolchain to 1.97.0 to fix aarch64-musl zig link drift (#900)#934
ruvnet wants to merge 1 commit into
mainfrom
fix/tiny-dancer-zig-rust-pin-900

Conversation

@ruvnet

@ruvnet ruvnet commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Summary

The separate CI PR that #900 asked for. Build Tiny Dancer linux-arm64-musl fails on every PR touching tiny-dancer paths with:

error: unsupported linker arg: --fix-cortex-a53-843419
error: could not compile `redb` (lib) due to 1 previous error

Fixes #900.

Root cause, pinned down empirically

#900 diagnosed rust-toolchain/zig drift and offered two candidate fixes (pin rustc, or bump zig). Both were tested locally before choosing:

  • Bumping zig does not work. A minimal aarch64-musl shared-object link with -Wl,--fix-cortex-a53-843419 was run against zig 0.13.0, 0.14.1, 0.15.2, and 0.16.0 — every version rejects the flag with the same unsupported linker arg error, so no available zig release fixes this.
  • The flag arrived in stable 1.98.0 (2026-08-18). The exact CI failure reproduces locally with a minimal cdylib (rustc 1.98.0 + zig cc -target aarch64-linux-musl as linker, -C target-feature=-crt-static), and the same link stops emitting the flag on 1.97.0 with the same zig. That timeline matches the workflow's last green run on 2026-08-03 (1.97-era stable) and the failures starting 2026-08-22.

So the fix is the other half of #900's recommendation: pin toolchain: "1.97.0" next to the existing zig 0.13.0 pin, so both sides of the cross-compile move together deliberately instead of drifting apart silently while the path-filtered workflow doesn't run. The pin carries a comment explaining exactly why and what to re-check when bumping it.

Change

One file: .github/workflows/build-tiny-dancer.yml, toolchain: stabletoolchain: "1.97.0" plus the explanatory comment. No other workflow combines zig with an aarch64-musl target, so this is the whole blast radius.

Validation

  • Failure reproduced locally on 1.98.0 + zig 0.13.0 (identical unsupported linker arg: --fix-cortex-a53-843419, failing in a third-party dep before first-party code).
  • Same link succeeds on 1.97.0 + zig 0.13.0.
  • Flag rejection confirmed on zig 0.13.0 → 0.16.0, ruling out the zig-bump alternative.

Note: the pull_request path filter for this workflow doesn't include the workflow file itself, so this PR won't show the Tiny Dancer matrix in its own checks; the fix takes effect on tiny-dancer-touching PRs (e.g. #933) once merged.

🤖 Generated with claude-flow

https://claude.ai/code/session_01L5ffi8NiKAQNabK3D5t2gK


Generated by Claude Code

… link (#900)

Stable 1.98.0 (2026-08-18) began emitting --fix-cortex-a53-843419 (the
Cortex-A53 erratum workaround) for aarch64-unknown-linux-musl. Zig's
linker rejects the flag as an unsupported linker arg — verified locally
against zig 0.13.0, 0.14.1, 0.15.2, and 0.16.0, so bumping zig cannot fix
this today. The failure reproduces with a minimal cdylib link
(rustc 1.98.0 + zig cc -target aarch64-linux-musl) and disappears on
1.97.0 with the same zig, so 1.97.0 is the newest stable whose
aarch64-musl target spec predates the flag.

Pinning the toolchain (zig was already pinned at 0.13.0) is what #900
prescribed: both sides of the cross-compile move together instead of
drifting apart silently, as they did for the three weeks this
path-filtered workflow did not run.

Fixes #900.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01L5ffi8NiKAQNabK3D5t2gK
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.

CI: Tiny Dancer aarch64-unknown-linux-musl build broken by rust-toolchain/zig version drift

2 participants