Rollup merge of #98798 - jyn514:download-rustc-cached, r=Mark-Simulacrum
Fix caching bug in `download-rustc = true` When moving this to rustbuild, I introduced a bug: if you had the file already downloaded, but deleted the sysroot for whatever reason, rustbuil would fail to unpack the cached tarball. This only affects people if they have a cached tarball, which is probably why we haven't seen an issue yet - wiping `build/cache` would work around the issue, or just not deleting `build/$TARGET/stage2`. Fixes the following error: ``` thread 'main' panicked at 'fs::read_dir(&lib_dir) failed with No such file or directory (os error 2) ("/home/jnelson/rust-lang/rust2/build/x86_64-unknown-linux-gnu/ci-rustc/lib")', config.rs:1563:20 ``` r? ``@Mark-Simulacrum``
This commit is contained in:
commit
6c6791a458
src/bootstrap
@ -949,6 +949,7 @@ impl<'a> Builder<'a> {
|
||||
}
|
||||
|
||||
pub(crate) fn download_component(&self, url: &str, dest_path: &Path, help_on_error: &str) {
|
||||
self.verbose(&format!("download {url}"));
|
||||
// Use a temporary file in case we crash while downloading, to avoid a corrupt download in cache/.
|
||||
let tempfile = self.tempdir().join(dest_path.file_name().unwrap());
|
||||
// While bootstrap itself only supports http and https downloads, downstream forks might
|
||||
|
@ -1558,7 +1558,7 @@ fn download_ci_rustc(builder: &Builder<'_>, commit: &str) {
|
||||
builder.fix_bin_or_dylib(&bin_root.join("bin").join("rustc"));
|
||||
builder.fix_bin_or_dylib(&bin_root.join("bin").join("rustdoc"));
|
||||
let lib_dir = bin_root.join("lib");
|
||||
for lib in t!(fs::read_dir(lib_dir)) {
|
||||
for lib in t!(fs::read_dir(&lib_dir), lib_dir.display().to_string()) {
|
||||
let lib = t!(lib);
|
||||
if lib.path().extension() == Some(OsStr::new("so")) {
|
||||
builder.fix_bin_or_dylib(&lib.path());
|
||||
@ -1634,6 +1634,7 @@ fn download_component(
|
||||
}
|
||||
Some(sha256)
|
||||
} else if tarball.exists() {
|
||||
builder.unpack(&tarball, &bin_root, prefix);
|
||||
return;
|
||||
} else {
|
||||
None
|
||||
|
Loading…
x
Reference in New Issue
Block a user