diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-08-25 16:51:05 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-25 16:51:05 +0200 | 
| commit | a44e5a94ababe626281ab5187b389cd73ae1fdb3 (patch) | |
| tree | b9daead16d0ffb3d4ad4098bc318e372c603c3b9 /src/bootstrap/bootstrap.py | |
| parent | 0e2523eaf8a29d6b8394cb43abfed3dfd4ddbc5a (diff) | |
| parent | 5f2cedc5dc4ed5653069a83f1ed98b46f0c33c7c (diff) | |
| download | rust-a44e5a94ababe626281ab5187b389cd73ae1fdb3.tar.gz rust-a44e5a94ababe626281ab5187b389cd73ae1fdb3.zip | |
Rollup merge of #129459 - onur-ozkan:separate-stage0-bins, r=Kobzol
handle stage0 `cargo` and `rustc` separately This change allows setting either `build.cargo` or `build.rustc` without requiring both to be set simultaneously, which was not possible previously. To try it, set `build.rustc` without setting `build.cargo`, and try to bootstrap on clean build. Blocker for https://github.com/rust-lang/rust/pull/129152
Diffstat (limited to 'src/bootstrap/bootstrap.py')
| -rw-r--r-- | src/bootstrap/bootstrap.py | 26 | 
1 files changed, 17 insertions, 9 deletions
| diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index c19134b4594..71f69e03a9f 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -542,9 +542,13 @@ class RustBuild(object): bin_root = self.bin_root() key = self.stage0_compiler.date - if self.rustc().startswith(bin_root) and \ - (not os.path.exists(self.rustc()) or - self.program_out_of_date(self.rustc_stamp(), key)): + is_outdated = self.program_out_of_date(self.rustc_stamp(), key) + need_rustc = self.rustc().startswith(bin_root) and (not os.path.exists(self.rustc()) \ + or is_outdated) + need_cargo = self.cargo().startswith(bin_root) and (not os.path.exists(self.cargo()) \ + or is_outdated) + + if need_rustc or need_cargo: if os.path.exists(bin_root): # HACK: On Windows, we can't delete rust-analyzer-proc-macro-server while it's # running. Kill it. @@ -565,7 +569,6 @@ class RustBuild(object): run_powershell([script]) shutil.rmtree(bin_root) - key = self.stage0_compiler.date cache_dst = (self.get_toml('bootstrap-cache-path', 'build') or os.path.join(self.build_dir, "cache")) @@ -577,11 +580,16 @@ class RustBuild(object): toolchain_suffix = "{}-{}{}".format(rustc_channel, self.build, tarball_suffix) - tarballs_to_download = [ - ("rust-std-{}".format(toolchain_suffix), "rust-std-{}".format(self.build)), - ("rustc-{}".format(toolchain_suffix), "rustc"), - ("cargo-{}".format(toolchain_suffix), "cargo"), - ] + tarballs_to_download = [] + + if need_rustc: + tarballs_to_download.append( + ("rust-std-{}".format(toolchain_suffix), "rust-std-{}".format(self.build)) + ) + tarballs_to_download.append(("rustc-{}".format(toolchain_suffix), "rustc")) + + if need_cargo: + tarballs_to_download.append(("cargo-{}".format(toolchain_suffix), "cargo")) tarballs_download_info = [ DownloadInfo( | 
