From 4b92ce43788769e93d6c9d638346f91875d0c3ef Mon Sep 17 00:00:00 2001 From: onur-ozkan Date: Fri, 23 Aug 2024 12:08:41 +0300 Subject: [PATCH] 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. Signed-off-by: onur-ozkan --- src/bootstrap/bootstrap.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index 4e8e0fd2532f1..f9510a7249562 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -533,7 +533,7 @@ def download_toolchain(self): bin_root = self.bin_root() key = self.stage0_compiler.date - if self.rustc().startswith(bin_root) and \ + if (self.rustc().startswith(bin_root) or self.cargo().startswith(bin_root)) and \ (not os.path.exists(self.rustc()) or self.program_out_of_date(self.rustc_stamp(), key)): if os.path.exists(bin_root): @@ -568,11 +568,14 @@ def download_toolchain(self): 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 self.rustc().startswith(bin_root): + tarballs_to_download.append(("rust-std-{}".format(toolchain_suffix), "rust-std-{}".format(self.build))) + tarballs_to_download.append(("rustc-{}".format(toolchain_suffix), "rustc")) + + if self.cargo().startswith(bin_root): + tarballs_to_download.append(("cargo-{}".format(toolchain_suffix), "cargo")) tarballs_download_info = [ DownloadInfo(