Cargo and dependencies
The build changes with features, MSRV, cached inputs, or workspace position.
This page lists all 33 records in this family. 28 of them have a failing and a repaired fixture, and 9 are keyed to a compiler error code. Use the Atlas search to filter by mechanism, first check, or evidence.
Below the application layer
These cases in this family depend on the linker, a native toolchain, the target, a Cargo profile, the test harness, or the runtime. They are also featured on the Atlas front page.
- RFA-040 · Link resource-matrix evidenceWhy the Linker Is Killed Only During a Rust Release BuildLinks the same Rust objects with ld.lld under a normal and a capped memory limit, then with ld.bfd under the same cap.
- RFA-042 · Native discovery evidenceWhy a Rust sys Crate Found the Wrong Native LibraryBuilds two installations of one native library and runs the build script with header and library discovery pointing at different installations.
- RFA-043 · Native ownership evidenceTwo Rust Dependencies Linked Incompatible Copies of One Native LibraryBuilds two versions of a native library, links a Rust consumer, and reads the final link map to see which versions were linked.
- RFA-104 · Cargo workspace evidenceHow Cargo's links Conflict Reveals Two Owners of One Native LibraryCargo's links key is the one place where the build graph records ownership of a native library.
- RFA-694 · Cargo workspace evidenceCargo DEP_* Metadata Stops at the Immediate DependentDEP_* metadata from a links package reaches only immediate dependents, not the whole graph.
- RFA-032 · Cargo package-boundary evidenceA Cargo Workspace Builds Locally but the Packaged Crate Misses FilesChecks the package inside the workspace, then runs cargo package to build it the way a registry consumer would.
- RFA-697 · Cargo rebuild evidenceA build.rs Environment Input Needs rerun-if-env-changedRuns the package twice with a different environment value and compares the generated output.
- RFA-705 · Cargo runtime-boundary evidencecargo::rustc-env Is Not a Portable Runtime Environment VariableRuns the binary through cargo run and then directly, and compares what it reads from its environment.
- RFA-693 · Cargo workspace evidenceCargo Gives TARGET to build.rs at Run Time, Not Compile TimeTARGET is set when Cargo runs the compiled build script, not while rustc compiles build.rs.
- RFA-102 · Cargo workspace evidenceWhen Cargo Feature Unification Enables Mutually Exclusive FeaturesCargo merges feature requests from every path into one package instance, so exclusive features collide.
Complete symptom directory
Case identifiers and anchors are stable. Records whose page is not published yet are listed without a link. Records marked “no fixture yet” link to an article and have no executable fixture.
- RFA-004 — A build script reruns even though the source code did not change.No fixture yet
- RFA-005 — The same lockfile selects or rejects a dependency after changing the Rust version or resolver.No fixture yet
- RFA-006 — A feature exists for the application build but disappears in a build script, proc macro, or cross target.No fixture yet
- RFA-007 — Changing warnings to errors causes much more recompilation than expected.No fixture yet
- RFA-008 — A small edit invalidates a surprisingly large part of incremental compilation.No fixture yet
- RFA-032 — A Rust crate builds in its workspace but `cargo package` fails because files or dependencies are absent from the distributable crate.
- RFA-040 — The linker is killed for a release build while debug builds of the same Rust workspace complete successfully.
- RFA-042 — A Rust sys crate discovers the wrong native library installation or links headers and binaries from different versions.
- RFA-043 — A Rust binary fails to link or crashes because two dependencies bring incompatible copies of one native library.
- RFA-098 — A function exists in the source but calls fail E0425 because `#[cfg(feature = "fast")]` removed it from the compiled crate.
- RFA-099 — `env!("RFA_BUILD_SHA")` aborts compilation when the build environment does not define the variable.
- RFA-100 — `include_str!` cannot find a file that exists relative to the repository root because the macro resolves its path from the Rust source file.
- RFA-101 — Rust reports that one crate type differs from an identically named type because two versions of its defining package are present.
- RFA-102 — A mutually exclusive feature guard fires even though no single dependency declaration explicitly enables both features.
- RFA-103 — Rust cannot resolve a crate that appears in Cargo.toml because the dependency is optional and inactive for this build.
- RFA-104 — Cargo rejects the dependency graph because more than one package claims the same value in its links manifest key.
- RFA-105 — Cargo reports that package A depends on itself through package B and stops before compiling either crate.
- RFA-106 — Cargo refuses to build a package because its declared rust-version is newer than the selected rustc toolchain.
- RFA-109 — Cargo cannot parse a feature containing dep:helper because helper is declared as an unconditional dependency.
- RFA-110 — A workspace member cannot inherit edition.workspace because the root has no workspace.package.edition value.
- RFA-141 — An integration test cannot import a public helper behind cfg(test), even though unit tests in the same library can see and call that helper.
- RFA-151 — cargo test fails while compiling a stale example even though every library unit test passes and the example is never executed as a test.
- RFA-473 — Declaring extern crate core and extern crate std as core fails with E0259 because two external crates receive the same local crate-root name.
- RFA-576 — Compiling a source file as a binary fails with E0601 when it defines worker logic but no crate-level main function.
- RFA-597 — Adding a where clause to main fails with E0646 because the runtime entrypoint is not a caller-instantiated generic function.
- RFA-631 — Declaring mod transport fails with E0761 when both transport.rs and transport/mod.rs are present as candidate module sources.
- RFA-692 — A custom cfg emitted by build.rs fails under deny(unexpected_cfgs) even though Cargo passes the cfg to rustc.
- RFA-693 — Using env!(TARGET) in build.rs fails while Cargo says TARGET will be available to the build script.
- RFA-694 — An application build script cannot read DEP_RFA_NATIVE_INCLUDE although a transitive sys crate emitted that metadata.
- RFA-697 — Changing an environment variable used by build.rs leaves the generated Rust constant at its previous value.
- RFA-698 — include! cannot find generated.rs under OUT_DIR even though build.rs successfully wrote a file with that name.
- RFA-705 — A variable emitted with cargo::rustc-env exists under cargo run but is missing when the built executable is started directly.
- RFA-714 — cargo check fails on an ordinary dead_code warning after build.warnings is set to deny in Cargo configuration.