From ab683901531a61a19a459b981d262372124756b2 Mon Sep 17 00:00:00 2001 From: Zachary Whiteley Date: Sat, 10 Jun 2023 09:06:51 +0100 Subject: [PATCH] Improve documentation for `tools` profile Make the build process more beginner friendly: - Include information explaining that the stage2 toolchain should be used (and not the stage1 toolchain) due to the `download-rustc` setting. - Display a message when the user runs `x setup tools` explaining that they should use the stage2 toolchain. --- src/bootstrap/defaults/config.tools.toml | 2 ++ src/bootstrap/setup.rs | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/bootstrap/defaults/config.tools.toml b/src/bootstrap/defaults/config.tools.toml index 6b6625342a6..79424f28d27 100644 --- a/src/bootstrap/defaults/config.tools.toml +++ b/src/bootstrap/defaults/config.tools.toml @@ -9,6 +9,8 @@ debug-logging = true incremental = true # Download rustc from CI instead of building it from source. # This cuts compile times by almost 60x, but means you can't modify the compiler. +# Using these defaults will download the stage2 compiler (see `download-rustc` +# setting) and the stage2 toolchain should therefore be used for these defaults. download-rustc = "if-unchanged" [build] diff --git a/src/bootstrap/setup.rs b/src/bootstrap/setup.rs index c604c63a4dd..e13f3f0bd5e 100644 --- a/src/bootstrap/setup.rs +++ b/src/bootstrap/setup.rs @@ -176,6 +176,14 @@ pub fn setup(config: &Config, profile: Profile) { ); } + if profile == Profile::Tools { + eprintln!(); + eprintln!( + "note: the `tools` profile sets up the `stage2` toolchain (use \ + `rustup toolchain link 'name' host/build/stage2` to use rustc)" + ) + } + let path = &config.config.clone().unwrap_or(PathBuf::from("config.toml")); setup_config_toml(path, profile, config); }