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
This commit is contained in:
commit
a44e5a94ab
1 changed files with 17 additions and 9 deletions
|
@ -542,9 +542,13 @@ class RustBuild(object):
|
||||||
bin_root = self.bin_root()
|
bin_root = self.bin_root()
|
||||||
|
|
||||||
key = self.stage0_compiler.date
|
key = self.stage0_compiler.date
|
||||||
if self.rustc().startswith(bin_root) and \
|
is_outdated = self.program_out_of_date(self.rustc_stamp(), key)
|
||||||
(not os.path.exists(self.rustc()) or
|
need_rustc = self.rustc().startswith(bin_root) and (not os.path.exists(self.rustc()) \
|
||||||
self.program_out_of_date(self.rustc_stamp(), key)):
|
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):
|
if os.path.exists(bin_root):
|
||||||
# HACK: On Windows, we can't delete rust-analyzer-proc-macro-server while it's
|
# HACK: On Windows, we can't delete rust-analyzer-proc-macro-server while it's
|
||||||
# running. Kill it.
|
# running. Kill it.
|
||||||
|
@ -565,7 +569,6 @@ class RustBuild(object):
|
||||||
run_powershell([script])
|
run_powershell([script])
|
||||||
shutil.rmtree(bin_root)
|
shutil.rmtree(bin_root)
|
||||||
|
|
||||||
key = self.stage0_compiler.date
|
|
||||||
cache_dst = (self.get_toml('bootstrap-cache-path', 'build') or
|
cache_dst = (self.get_toml('bootstrap-cache-path', 'build') or
|
||||||
os.path.join(self.build_dir, "cache"))
|
os.path.join(self.build_dir, "cache"))
|
||||||
|
|
||||||
|
@ -577,11 +580,16 @@ class RustBuild(object):
|
||||||
|
|
||||||
toolchain_suffix = "{}-{}{}".format(rustc_channel, self.build, tarball_suffix)
|
toolchain_suffix = "{}-{}{}".format(rustc_channel, self.build, tarball_suffix)
|
||||||
|
|
||||||
tarballs_to_download = [
|
tarballs_to_download = []
|
||||||
("rust-std-{}".format(toolchain_suffix), "rust-std-{}".format(self.build)),
|
|
||||||
("rustc-{}".format(toolchain_suffix), "rustc"),
|
if need_rustc:
|
||||||
("cargo-{}".format(toolchain_suffix), "cargo"),
|
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 = [
|
tarballs_download_info = [
|
||||||
DownloadInfo(
|
DownloadInfo(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue