diff options
| author | onur-ozkan <work@onurozkan.dev> | 2025-06-03 19:12:51 +0300 |
|---|---|---|
| committer | onur-ozkan <work@onurozkan.dev> | 2025-06-03 19:12:51 +0300 |
| commit | 143d81362b42dcb70bcfef09f8da1427dfb3ef12 (patch) | |
| tree | d329655b1b89726ef8a3e51c8dde77ffc0a31131 | |
| parent | 99426c570eebec8dcba2eaa8f5057265346aaedc (diff) | |
| download | rust-143d81362b42dcb70bcfef09f8da1427dfb3ef12.tar.gz rust-143d81362b42dcb70bcfef09f8da1427dfb3ef12.zip | |
implement new `x` flag: `--skip-std-check-if-no-download-rustc`
Signed-off-by: onur-ozkan <work@onurozkan.dev>
| -rw-r--r-- | src/bootstrap/src/core/build_steps/check.rs | 7 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/config.rs | 4 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/flags.rs | 3 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/bootstrap/src/core/build_steps/check.rs b/src/bootstrap/src/core/build_steps/check.rs index 922578f309a..1647df54411 100644 --- a/src/bootstrap/src/core/build_steps/check.rs +++ b/src/bootstrap/src/core/build_steps/check.rs @@ -60,6 +60,13 @@ impl Step for Std { } fn run(self, builder: &Builder<'_>) { + if !builder.download_rustc() && builder.config.skip_std_check_if_no_download_rustc { + eprintln!( + "WARNING: `--skip-std-check-if-no-download-rustc` flag was passed and `rust.download-rustc` is not available. Skipping." + ); + return; + } + builder.require_submodule("library/stdarch", None); let target = self.target; diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs index 899ffde8adf..fa683a48fae 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs @@ -423,6 +423,9 @@ pub struct Config { /// Cache for determining path modifications pub path_modification_cache: Arc<Mutex<HashMap<Vec<&'static str>, PathFreshness>>>, + + /// Skip checking std if `rust.download-rustc` isn't available. + pub skip_std_check_if_no_download_rustc: bool, } #[derive(Debug, Default, Clone, Copy, PartialEq, Eq)] @@ -1507,6 +1510,7 @@ impl Config { config.enable_bolt_settings = flags.enable_bolt_settings; config.bypass_bootstrap_lock = flags.bypass_bootstrap_lock; config.is_running_on_ci = flags.ci.unwrap_or(CiEnv::is_ci()); + config.skip_std_check_if_no_download_rustc = flags.skip_std_check_if_no_download_rustc; // Infer the rest of the configuration. diff --git a/src/bootstrap/src/core/config/flags.rs b/src/bootstrap/src/core/config/flags.rs index 08bd87e03a1..bb851129770 100644 --- a/src/bootstrap/src/core/config/flags.rs +++ b/src/bootstrap/src/core/config/flags.rs @@ -182,6 +182,9 @@ pub struct Flags { /// Make bootstrap to behave as it's running on the CI environment or not. #[arg(global = true, long, value_name = "bool")] pub ci: Option<bool>, + /// Skip checking std if `rust.download-rustc` isn't available. + #[arg(global = true, long)] + pub skip_std_check_if_no_download_rustc: bool, } impl Flags { |
