From 485697bf42cc6a03712e82e69c8f2357a2576454 Mon Sep 17 00:00:00 2001 From: Ximin Luo Date: Thu, 5 Sep 2019 00:14:09 -0700 Subject: [PATCH] Better way of conditioning the sanitizer builds Previously the build would take the presence of the LLVM_CONFIG envvar to mean that the sanitizers should be built, but this is a common envvar that could be set for reasons unrelated to the rustc sanitizers. This commit adds a new envvar RUSTC_BUILD_SANITIZERS and uses it instead. --- src/bootstrap/compile.rs | 1 + src/librustc_asan/build.rs | 3 +++ src/librustc_lsan/build.rs | 3 +++ src/librustc_msan/build.rs | 3 +++ src/librustc_tsan/build.rs | 3 +++ 5 files changed, 13 insertions(+) diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index 9d57a4f00d78..9a964457ef28 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs @@ -212,6 +212,7 @@ pub fn std_cargo(builder: &Builder<'_>, emscripten: false, }); cargo.env("LLVM_CONFIG", llvm_config); + cargo.env("RUSTC_BUILD_SANITIZERS", "1"); } cargo.arg("--features").arg(features) diff --git a/src/librustc_asan/build.rs b/src/librustc_asan/build.rs index a2b4b090efb4..cc856ba68fbb 100644 --- a/src/librustc_asan/build.rs +++ b/src/librustc_asan/build.rs @@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate; use cmake::Config; fn main() { + if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) { + return; + } if let Some(llvm_config) = env::var_os("LLVM_CONFIG") { build_helper::restore_library_path(); diff --git a/src/librustc_lsan/build.rs b/src/librustc_lsan/build.rs index b8c7b7c2d553..d5f3e37dea51 100644 --- a/src/librustc_lsan/build.rs +++ b/src/librustc_lsan/build.rs @@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate; use cmake::Config; fn main() { + if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) { + return; + } if let Some(llvm_config) = env::var_os("LLVM_CONFIG") { build_helper::restore_library_path(); diff --git a/src/librustc_msan/build.rs b/src/librustc_msan/build.rs index 1c66b0a9cd3c..de1676f489a4 100644 --- a/src/librustc_msan/build.rs +++ b/src/librustc_msan/build.rs @@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate; use cmake::Config; fn main() { + if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) { + return; + } if let Some(llvm_config) = env::var_os("LLVM_CONFIG") { build_helper::restore_library_path(); diff --git a/src/librustc_tsan/build.rs b/src/librustc_tsan/build.rs index ed9c37087c7e..6df969125745 100644 --- a/src/librustc_tsan/build.rs +++ b/src/librustc_tsan/build.rs @@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate; use cmake::Config; fn main() { + if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) { + return; + } if let Some(llvm_config) = env::var_os("LLVM_CONFIG") { build_helper::restore_library_path();