mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Copy stage0 rustc
binaries to stage0-sysroot
This commit is contained in:
parent
1623634aa5
commit
bb8c497566
@ -508,6 +508,49 @@ impl Step for StdLink {
|
|||||||
};
|
};
|
||||||
|
|
||||||
add_to_sysroot(builder, &libdir, &hostdir, &libstd_stamp(builder, compiler, target));
|
add_to_sysroot(builder, &libdir, &hostdir, &libstd_stamp(builder, compiler, target));
|
||||||
|
|
||||||
|
// Special case for stage0, to make `rustup toolchain link` and `x dist --stage 0`
|
||||||
|
// work for stage0-sysroot. We only do this if the stage0 compiler comes from beta,
|
||||||
|
// and is not set to a custom path.
|
||||||
|
if compiler.stage == 0
|
||||||
|
&& builder
|
||||||
|
.build
|
||||||
|
.config
|
||||||
|
.initial_rustc
|
||||||
|
.starts_with(builder.out.join(&compiler.host.triple).join("stage0/bin"))
|
||||||
|
{
|
||||||
|
// Copy bin files from stage0/bin to stage0-sysroot/bin
|
||||||
|
let sysroot = builder.out.join(&compiler.host.triple).join("stage0-sysroot");
|
||||||
|
|
||||||
|
let host = compiler.host.triple;
|
||||||
|
let stage0_bin_dir = builder.out.join(&host).join("stage0/bin");
|
||||||
|
let sysroot_bin_dir = sysroot.join("bin");
|
||||||
|
t!(fs::create_dir_all(&sysroot_bin_dir));
|
||||||
|
builder.cp_r(&stage0_bin_dir, &sysroot_bin_dir);
|
||||||
|
|
||||||
|
// Copy all *.so files from stage0/lib to stage0-sysroot/lib
|
||||||
|
let stage0_lib_dir = builder.out.join(&host).join("stage0/lib");
|
||||||
|
if let Ok(files) = fs::read_dir(&stage0_lib_dir) {
|
||||||
|
for file in files {
|
||||||
|
let file = t!(file);
|
||||||
|
let path = file.path();
|
||||||
|
if path.is_file() && is_dylib(&file.file_name().into_string().unwrap()) {
|
||||||
|
builder.copy(&path, &sysroot.join("lib").join(path.file_name().unwrap()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy codegen-backends from stage0
|
||||||
|
let sysroot_codegen_backends = builder.sysroot_codegen_backends(compiler);
|
||||||
|
t!(fs::create_dir_all(&sysroot_codegen_backends));
|
||||||
|
let stage0_codegen_backends = builder
|
||||||
|
.out
|
||||||
|
.join(&host)
|
||||||
|
.join("stage0/lib/rustlib")
|
||||||
|
.join(&host)
|
||||||
|
.join("codegen-backends");
|
||||||
|
builder.cp_r(&stage0_codegen_backends, &sysroot_codegen_backends);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user