bootstrap: revert rust.download-rustc global default to false

And only default library and tools profile to `rust.download-rustc =
"if-unchanged"`.
This commit is contained in:
Jieyou Xu 2024-11-23 23:26:56 +08:00
parent 5d3c6ee9b3
commit aafd56b87a
6 changed files with 26 additions and 10 deletions

View File

@ -496,15 +496,18 @@
#
#debug = false
# Whether to download the stage 1 and 2 compilers from CI.
# This is useful if you are working on tools, doc-comments, or library (you will be able to build
# the standard library without needing to build the compiler).
# Whether to download the stage 1 and 2 compilers from CI. This is useful if you
# are working on tools, doc-comments, or library (you will be able to build the
# standard library without needing to build the compiler).
#
# Set this to "if-unchanged" if you are working on `src/tools`, `tests` or `library` (on CI, `library`
# changes triggers in-tree compiler build) to speed up the build process.
# Set this to "if-unchanged" if you are working on `src/tools`, `tests` or
# `library` (on CI, `library` changes triggers in-tree compiler build) to speed
# up the build process if you don't need to build a compiler from the latest
# commit from `master`.
#
# Set this to `true` to always download or `false` to always use the in-tree compiler.
#download-rustc = "if-unchanged"
# Set this to `true` to always download or `false` to always use the in-tree
# compiler.
#download-rustc = false
# Number of codegen units to use for each compiler invocation. A value of 0
# means "the number of cores on this machine", and 1+ is passed through to the

View File

@ -19,6 +19,9 @@ lto = "off"
# Forces frame pointers to be used with `-Cforce-frame-pointers`.
# This can be helpful for profiling at a small performance cost.
frame-pointers = true
# Compiler contributors often want to build rustc even without any changes to
# e.g. check that it builds locally and check the baseline behavior of a
# compiler built from latest `master` commit.
download-rustc = false
[llvm]

View File

@ -16,6 +16,7 @@ download-ci-llvm = false
# We have several defaults in bootstrap that depend on whether the channel is `dev` (e.g. `omit-git-hash` and `download-ci-llvm`).
# Make sure they don't get set when installing from source.
channel = "nightly"
# Never download a rustc, distributions must build a fresh compiler.
download-rustc = false
lld = true
# Build the llvm-bitcode-linker

View File

@ -10,7 +10,9 @@ bench-stage = 0
incremental = true
# Make the compiler and standard library faster to build, at the expense of a ~20% runtime slowdown.
lto = "off"
download-rustc = false
# Download rustc by default for library profile if compiler-affecting
# directories are not modified. For CI this is disabled.
download-rustc = "if-unchanged"
[llvm]
# Will download LLVM from CI if available on your platform.

View File

@ -3,6 +3,9 @@
[rust]
# This greatly increases the speed of rebuilds, especially when there are only minor changes. However, it makes the initial build slightly slower.
incremental = true
# Most commonly, tools contributors do not need to modify the compiler, so
# downloading a CI rustc is a good default for tools profile.
download-rustc = "if-unchanged"
[build]
# Document with the in-tree rustdoc by default, since `download-rustc` makes it quick to compile.

View File

@ -2786,8 +2786,12 @@ impl Config {
// If `download-rustc` is not set, default to rebuilding.
let if_unchanged = match download_rustc {
None => self.rust_info.is_managed_git_subrepository(),
Some(StringOrBool::Bool(false)) => return None,
// Globally default for `download-rustc` to `false`, because some contributors don't use
// profiles for reasons such as:
// - They need to seemlessly switch between compiler/library work.
// - They don't want to use compiler profile because they need to override too many
// things and it's easier to not use a profile.
None | Some(StringOrBool::Bool(false)) => return None,
Some(StringOrBool::Bool(true)) => false,
Some(StringOrBool::String(s)) if s == "if-unchanged" => {
if !self.rust_info.is_managed_git_subrepository() {