From da9249446c22f1fdf2620294945696ab7be141ea Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Mon, 13 Apr 2026 14:07:20 -0600 Subject: [PATCH] ci: pin fuzz jobs to x86_64-unknown-linux-gnu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cargo-fuzz defaults to x86_64-unknown-linux-musl on Linux so ASAN can statically link, but dtolnay/rust-toolchain@nightly doesn't ship a musl std and GH runners don't have it preinstalled — build failed with 'can't find crate for core' on byteorder. Pinning both fuzz build and fuzz run to the gnu target uses the std that comes with the toolchain and works out of the box. --- .github/workflows/ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d78baac..33b6d61 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,13 +120,16 @@ jobs: tool: cargo-fuzz - name: Build fuzz targets working-directory: fuzz - run: cargo +nightly fuzz build + # Pin to the gnu target — cargo-fuzz defaults to musl for ASAN + # static linking, but the nightly toolchain we install doesn't + # ship a musl std. + run: cargo +nightly fuzz build --target x86_64-unknown-linux-gnu - name: Smoke-run every target working-directory: fuzz run: | for target in parse_command parse_radio_config cobs_decoder_feed cobs_roundtrip command_roundtrip cobs_decoder_multi_frame cobs_chunk_invariant; do echo "── $target ──" - cargo +nightly fuzz run "$target" -- -max_total_time=60 + cargo +nightly fuzz run "$target" --target x86_64-unknown-linux-gnu -- -max_total_time=60 done mutants: