Disable rustc uplifting during cross-compilation
This commit is contained in:
parent
0079da4862
commit
f254075e95
2 changed files with 6 additions and 9 deletions
|
|
@ -1047,22 +1047,18 @@ impl Step for Rustc {
|
|||
|
||||
// If we are building a stage3+ compiler, and full bootstrap is disabled, and we have a
|
||||
// previous rustc available, we will uplift a compiler from a previous stage.
|
||||
// We do not allow cross-compilation uplifting here, because there it can be quite tricky
|
||||
// to figure out which stage actually built the rustc that should be uplifted.
|
||||
if build_compiler.stage >= 2
|
||||
&& !builder.config.full_bootstrap
|
||||
&& (target == builder.host_target || builder.hosts.contains(&target))
|
||||
&& target == builder.host_target
|
||||
{
|
||||
// Here we need to determine the **build compiler** that built the stage that we will
|
||||
// be uplifting. We cannot uplift stage 1, as it has a different ABI than stage 2+,
|
||||
// so we always uplift the stage2 compiler (compiled with stage 1).
|
||||
let uplift_build_compiler = builder.compiler(1, build_compiler.host);
|
||||
let msg = if uplift_build_compiler.host == target {
|
||||
format!("Uplifting rustc (stage2 -> stage{stage})")
|
||||
} else {
|
||||
format!(
|
||||
"Uplifting rustc (stage2:{} -> stage{stage}:{target})",
|
||||
uplift_build_compiler.host
|
||||
)
|
||||
};
|
||||
|
||||
let msg = format!("Uplifting rustc from stage2 to stage{stage})");
|
||||
builder.info(&msg);
|
||||
|
||||
// Here the compiler that built the rlibs (`uplift_build_compiler`) can be different
|
||||
|
|
|
|||
|
|
@ -705,6 +705,7 @@ mod snapshot {
|
|||
[build] rustc 1 <host> -> rustc 2 <host>
|
||||
[build] rustc 1 <host> -> std 1 <target1>
|
||||
[build] rustc 2 <host> -> std 2 <target1>
|
||||
[build] rustc 2 <host> -> std 2 <host>
|
||||
[build] rustc 2 <host> -> rustc 3 <target1>
|
||||
");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue