Auto merge of #102025 - chenyukang:fix-102002, r=jyn514

Delete the stage1 and stage0-sysroot directories when using download-rustc

Fixes #102002
This commit is contained in:
bors 2022-10-07 10:46:04 +00:00
commit e42c4d7218

View File

@ -1104,10 +1104,13 @@ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
/// 1-3.
fn run(self, builder: &Builder<'_>) -> Interned<PathBuf> {
let compiler = self.compiler;
let host_dir = builder.out.join(&compiler.host.triple);
let sysroot = if compiler.stage == 0 {
builder.out.join(&compiler.host.triple).join("stage0-sysroot")
host_dir.join("stage0-sysroot")
} else if builder.download_rustc() {
host_dir.join("ci-rustc-sysroot")
} else {
builder.out.join(&compiler.host.triple).join(format!("stage{}", compiler.stage))
host_dir.join(format!("stage{}", compiler.stage))
};
let _ = fs::remove_dir_all(&sysroot);
t!(fs::create_dir_all(&sysroot));
@ -1118,6 +1121,11 @@ fn run(self, builder: &Builder<'_>) -> Interned<PathBuf> {
builder.config.build, compiler.host,
"Cross-compiling is not yet supported with `download-rustc`",
);
// #102002, cleanup stage1 and stage0-sysroot folders when using download-rustc so people don't use old versions of the toolchain by accident.
let _ = fs::remove_dir_all(host_dir.join("stage1"));
let _ = fs::remove_dir_all(host_dir.join("stage0-sysroot"));
// Copy the compiler into the correct sysroot.
let ci_rustc_dir =
builder.config.out.join(&*builder.config.build.triple).join("ci-rustc");