-Clink-dead-code and -Cinstrument-coverage causes symbol already defined compiler error in nightly
Code
With just the following cargo.toml
[package] name = "debug-tarp-issue" version = "0.1.0" edition = "2018" [dependencies] reqwest = { version = "0.12", features = ["blocking"] }
and a main.rs with the default contents. Running
RUSTFLAGS="-Clink-dead-code -Cinstrument-coverage" cargo test
Results in:
error: symbol `_RNCNvNtNtNtNtCs6KohR1qTMkp_10hyper_util6client6legacy7connect4http7connect0Bb_` is already defined
--> /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-util-0.1.10/src/client/legacy/connect/http.rs:795:8
|
795 | Ok(async move {
| ^^^^^^^^^^
error: could not compile `hyper-util` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
Error: Process completed with exit code 101.
I've done a bit of work to narrow this down. So either of the flags on their own is fine, it's just the combination that causes the issue.,
I also have a MRE reproduction repo here: https://github.com/xd009642/debug-tarp-issue
Version with regression
So because this happened in a CI job for tarpaulin and we have some flaky tests and I don't use a mac myself I don't have an exact version. But this first occurred in our CI January 13th 2025. This is evident because the mac nightly builds have failed from that date until now. Mac stable and beta still work fine.