-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cargo doesn't rerun build scripts when RUSTC is changed #10367
Comments
This is currently intentional behavior. There are situations where RUSTC changes, but we don't want that to trigger a full recompile. If one rustc emits the same version output as another, then cargo assumes they essentially behave the same, even if they are from different paths. I'm not sure this is something that can be changed without causing unwanted recompiles in some situations. |
Ok. Is it possible to document this somewhere? Maybe around https://doc.rust-lang.org/cargo/reference/build-scripts.html#rerun-if-env-changed ? |
To be clear, the original bug in x.py was that it cached the path from the build script and would try to run that compiler on all subsequent builds, which broke because the target directory was deleted. |
Problem
The RUSTC env variable is provided to build scripts by cargo. According to the docs: https://doc.rust-lang.org/cargo/reference/build-scripts.html#rerun-if-env-changed
Cargo should rerun build scripts when rustc changes. I suspect this code needs to account for the path of the compiler, not just the version:
cargo/src/cargo/core/compiler/context/compilation_files.rs
Line 569 in 3bc0e6d
See rust-lang/rust#93723 for a reproduction, but it's not anywhere close to minimal.
Steps
No response
Possible Solution(s)
No response
Notes
No response
Version
The text was updated successfully, but these errors were encountered: