diff --git a/configure b/configure index 9b34e214214..35b376d5f27 100755 --- a/configure +++ b/configure @@ -437,6 +437,7 @@ opt local-rust 0 "use an installed rustc rather than downloading a snapshot" opt local-rebuild 0 "assume local-rust matches the current version, for rebuilds; implies local-rust, and is implied if local-rust already matches the current version" opt llvm-static-stdcpp 0 "statically link to libstdc++ for LLVM" opt llvm-link-shared 0 "prefer shared linking to LLVM (llvm-config --link-shared)" +opt llvm-clean-rebuild 0 "delete LLVM build directory on rebuild" opt rpath 1 "build rpaths into rustc itself" opt stage0-landing-pads 1 "enable landing pads during bootstrap with stage0" # This is used by the automation to produce single-target nightlies diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 4b79e4beb4b..dcd49c51e3a 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -243,7 +243,6 @@ impl Config { pub fn parse(build: &str, file: Option) -> Config { let mut config = Config::default(); config.llvm_optimize = true; - config.llvm_clean_rebuild = true; config.use_jemalloc = true; config.backtrace = true; config.rust_optimize = true; @@ -443,6 +442,7 @@ impl Config { ("LLVM_VERSION_CHECK", self.llvm_version_check), ("LLVM_STATIC_STDCPP", self.llvm_static_stdcpp), ("LLVM_LINK_SHARED", self.llvm_link_shared), + ("LLVM_CLEAN_REBUILD", self.llvm_clean_rebuild), ("OPTIMIZE", self.rust_optimize), ("DEBUG_ASSERTIONS", self.rust_debug_assertions), ("DEBUGINFO", self.rust_debuginfo), diff --git a/src/bootstrap/config.toml.example b/src/bootstrap/config.toml.example index 4e4b11fdc11..5a00e90f370 100644 --- a/src/bootstrap/config.toml.example +++ b/src/bootstrap/config.toml.example @@ -62,11 +62,9 @@ #link-jobs = 0 # Delete LLVM build directory on LLVM rebuild. -# This option's default (`true`) is optimized for CI needs, and CI wants to -# perform clean full builds only (possibly accelerated by (s)ccache). -# You may want to override this option for local builds to enable partial LLVM -# rebuilds. -#clean-rebuild = true +# This option defaults to `false` for local development, but CI may want to +# always perform clean full builds (possibly accelerated by (s)ccache). +#clean-rebuild = false # ============================================================================= # General build configuration options diff --git a/src/ci/run.sh b/src/ci/run.sh index 4c4836d7ca2..19bea9ced06 100755 --- a/src/ci/run.sh +++ b/src/ci/run.sh @@ -28,6 +28,7 @@ RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-quiet-tests" RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --disable-manage-submodules" RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-locked-deps" RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-cargo-openssl-static" +RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-llvm-clean-rebuild" if [ "$DIST_SRC" = "" ]; then RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --disable-dist-src"