Skip to content

fix: filter unsupported AArch64 Cortex-A53 linker arg - #452

Merged
messense merged 1 commit into
rust-cross:mainfrom
arpankapoor:main
Jun 10, 2026
Merged

fix: filter unsupported AArch64 Cortex-A53 linker arg#452
messense merged 1 commit into
rust-cross:mainfrom
arpankapoor:main

Conversation

@arpankapoor

Copy link
Copy Markdown
Contributor

Fixes #451.

@messense
messense merged commit 7e791b4 into rust-cross:main Jun 10, 2026
18 of 43 checks passed
badboy added a commit to mozilla/glean that referenced this pull request Aug 21, 2026
We're using an older maturin,
which pulls in an older Zig build,
which doesn't filter a certain parameter (rust-cross/cargo-zigbuild#452),
which breaks the build.
Rust 1.97 however is fine, for now.
@badboy badboy mentioned this pull request Aug 21, 2026
younsl added a commit to younsl/o that referenced this pull request Aug 21, 2026
…uilds

rustc 1.98 passes --fix-cortex-a53-843419 to the linker for
aarch64-linux targets, which zig rejects. cargo-zigbuild 0.23.0
filters the flag (rust-cross/cargo-zigbuild#452).

Signed-off-by: younsl <cysl@kakao.com>
zanieb added a commit to astral-sh/uv that referenced this pull request Aug 21, 2026
ARM64-musl Docker builds fail with Rust 1.98 because the target now
[passes
`--fix-cortex-a53-843419`](rust-lang/rust#155453),
which [`zig cc`
rejects](rust-cross/cargo-zigbuild#451).

Require and lock `cargo-zigbuild` 0.23.0, which includes the [upstream
change to filter this
flag](rust-cross/cargo-zigbuild#452). Keep the
existing Zig linker, libc, startup objects, and stack defaults. This
restores build compatibility without enabling the new Cortex-A53 erratum
mitigation.

---------

Co-authored-by: zaniebot <242828183+zaniebot@users.noreply.github.com>
Co-authored-by: Zanie Blue <contact@zanie.dev>
Co-authored-by: Zanie Blue <zanie@openai.com>
progamesigner added a commit to progamesigner/muninn that referenced this pull request Aug 23, 2026
Bump the cargo-zigbuild builder image from 0.20.0 to 0.23.0. Rust 1.98.0
(stable since 2026-08-20, picked up automatically by the floating
channel in rust-toolchain.toml) passes --fix-cortex-a53-843419 to the
linker for aarch64 targets, which the zig linker in 0.20.0 rejects:
"unsupported linker arg: --fix-cortex-a53-843419". This broke only the
arm64 leg of the multi-arch image; amd64 and every release binary built
fine. cargo-zigbuild filters the argument as of rust-cross/cargo-zigbuild#452,
released in 0.23.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpZ1EphkgW3sY2fnZJP2t2
henry40408 added a commit to henry40408/noadd that referenced this pull request Aug 23, 2026
…in (#245)

The 1.98 toolchain bump (#241) is green on every CI check and still breaks
the image: `docker.yml` fires on tags and pushes to `main`, not on pull
requests, so the first build to run it was v0.30.1's — and only the arm64
leg failed.

Rust 1.98 passes `--fix-cortex-a53-843419` to the linker for aarch64 targets
(rust-lang/rust#155453). Zig's linker rejects unknown arguments outright, so
the wrapper cargo-zigbuild 0.22.3 generates fails with `unsupported linker
arg: --fix-cortex-a53-843419` and `noadd` never links for
aarch64-unknown-linux-musl. amd64 is unaffected — the argument is only
emitted for aarch64.

cargo-zigbuild 0.23.0 filters the argument in `filter_linker_arg`
(rust-cross/cargo-zigbuild#452), alongside the two other arguments it already
dropped for the same reason. The rest of the 0.22.3..0.23.0 range is a
cargo-dist config update, a cargo-options bump, and dependabot commits.

Zig stays on 0.14.1: the fix is in the wrapper, not the linker, and 0.15+
still brings the libc++-19 bindgen requirement this pin exists to avoid.


Claude-Session: https://claude.ai/code/session_01RLF7TP74kER7Wcx8Th33qc

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
brycedrennan added a commit to blackthorn-interstellar/pypiron that referenced this pull request Aug 23, 2026
Rust 1.98 (stable since 2026-08-18) started passing
`-Wl,--fix-cortex-a53-843419` on every aarch64-linux target
(rust-lang/rust#155453). zig 0.16's cc driver rejects it outright
("error: unsupported linker arg"), so the arm64 Docker cross-build died
linking crc-fast. cargo-zigbuild filters the flag as of 0.23.0
(rust-cross/cargo-zigbuild#452), so pin that — and move
taiki-e/install-action to v2.86.6, the first release whose manifest carries
0.23.0 (v2.82.0 tops out at 0.22.3 and would silently fall back to
cargo-binstall).

Reproduced locally with rustc 1.98.0 + zig 0.16.0: 0.22.3 fails on crc-fast
with the exact CI error, 0.23.0 links a valid aarch64 ELF.

- h2 0.4.15 -> 0.4.18 clears RUSTSEC-2026-0258; `cargo audit` is green again.
clalancette added a commit to foxglove/mcap that referenced this pull request Aug 24, 2026
Rust 1.98 started passing --fix-cortex-a53-843419 to the linker for
aarch64 targets, and zig's cc wrapper rejects linker args it does not
recognize, so the pinned cargo-zigbuild 0.22.3 now fails to link the
CLI for aarch64-unknown-linux-musl with "unsupported linker arg".
cargo-zigbuild 0.23.0 filters the flag in its zig wrapper
(rust-cross/cargo-zigbuild#452). 0.23.0 is also the newest release in
the pinned taiki-e/install-action's manifest, so newer releases are
not installable without also bumping that action. The zig pin itself
is unaffected.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
clalancette added a commit to foxglove/mcap that referenced this pull request Aug 24, 2026
### Changelog

None.

### Docs

None.

### Description

Rust 1.98 started passing --fix-cortex-a53-843419 to the linker for
aarch64 targets, and zig's cc wrapper rejects linker args it does not
recognize, so the pinned cargo-zigbuild 0.22.3 now fails to link the CLI
for aarch64-unknown-linux-musl with "unsupported linker arg".
cargo-zigbuild 0.23.0 filters the flag in its zig wrapper
(rust-cross/cargo-zigbuild#452); bump to the latest release. The zig pin
itself is unaffected.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
XuQianJin-Stars added a commit to XuQianJin-Stars/tencent-goosefs-rust-sdk that referenced this pull request Aug 25, 2026
The manylinux aarch64 wheel stopped linking in CI:

    error: unsupported linker arg: --fix-cortex-a53-843419
    error: could not compile `goosefs-python` (lib)

Rust 1.98 added `-Wl,--fix-cortex-a53-843419` to the aarch64 target
spec as a `pre_link_arg`. `zig cc` does not recognise it and refuses to
link. cargo-zigbuild 0.23.0 filters the flag out (rust-cross/cargo-zigbuild#452);
maturin picked that up by pinning cargo-zigbuild 0.23.1.

The lockfile held maturin 1.13.3, which bundles cargo-zigbuild 0.22.2 —
visible in the failing log as the wrapper path
`~/.cache/cargo-zigbuild/0.22.2/wrappers/...`. Note that cargo-zigbuild
is a *library* inside maturin here, not the standalone binary, so
`cargo install cargo-zigbuild` would have had no effect on this build;
maturin itself is what needs to move.

Raise the floor to `maturin>=1.15` in both `[build-system].requires` and
the dev group, and relock (maturin 1.13.3 -> 1.15.0). The floor matters
more than the relock: `>=1.5` would happily resolve back to a 0.22.x
bundle on a fresh lock.

Nothing in this repo triggered the break — it landed purely from the
toolchain moving under an unpinned dependency.

Verified by reproducing the CI step locally:

    maturin build --release --target aarch64-unknown-linux-gnu \
        --manylinux 2_28 --zig

which now produces
`goosefs-0.1.9-cp39-abi3-manylinux_2_28_aarch64.whl`.

Also drops a stray `pub` on `URING_THREADS`, which was warning on every
build (`private_interfaces`: the static was reachable at `pub` while its
`UringThreadHandle` type is private). Both users live in the same
module, so the visibility was never needed.
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.

aarch64-unknown-linux-musl target fails with the new --fix-cortex-a53-843419 linker arg

2 participants