Rollup merge of #64446 - ehuss:fix-sanitizer-build, r=alexcrichton
Fix build script sanitizer check. #64166 changed the way the sanitizer build scripts work. However, they were changed so that they switch between new-style to old-style cargo fingerprints. This trips up on https://github.com/rust-lang/cargo/issues/6779. It also causes rustbuild to panic. If you build stage1 std (with sanitizers off), and then enable sanitizers, it panics. (This is because the build scripts don't declare that they need to re-run.) This PR will trip https://github.com/rust-lang/cargo/issues/6779 again, unfortunately. I've been having way too many unexplained rebuilds in rust-lang/rust recently, but at least I'll know why this time. This doesn't fix all problems with the build scripts, but arguably they should be fixed in cargo. For example, the build scripts change which rerun-if statements they declare between runs which triggers https://github.com/rust-lang/cargo/issues/7362. The test for this is: 1. Turn off sanitizers (which is the default) 2. `./x.py build --stage=1 src/libstd` 3. `./x.py build --stage=1 src/libstd` again should be a null build. 4. Enable sanitizers. 5. `./x.py build --stage=1 src/libstd` should rebuild with sanitizers enabled. 6. `./x.py build --stage=1 src/libstd` again should be a null build. This actually rebuilds due to https://github.com/rust-lang/cargo/issues/7362 because the rerun-if directives changed between step 3 and 5. A 3rd attempt should be a null build.
This commit is contained in:
commit
f0320e54c7
@ -4,6 +4,7 @@ use build_helper::sanitizer_lib_boilerplate;
|
||||
use cmake::Config;
|
||||
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-env-changed=RUSTC_BUILD_SANITIZERS");
|
||||
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
|
||||
return;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ use build_helper::sanitizer_lib_boilerplate;
|
||||
use cmake::Config;
|
||||
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-env-changed=RUSTC_BUILD_SANITIZERS");
|
||||
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
|
||||
return;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ use build_helper::sanitizer_lib_boilerplate;
|
||||
use cmake::Config;
|
||||
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-env-changed=RUSTC_BUILD_SANITIZERS");
|
||||
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
|
||||
return;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ use build_helper::sanitizer_lib_boilerplate;
|
||||
use cmake::Config;
|
||||
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-env-changed=RUSTC_BUILD_SANITIZERS");
|
||||
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user