Skip to content

Commit f254075

Browse files
committed
Disable rustc uplifting during cross-compilation
1 parent 0079da4 commit f254075

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

src/bootstrap/src/core/build_steps/compile.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,22 +1047,18 @@ impl Step for Rustc {
10471047

10481048
// If we are building a stage3+ compiler, and full bootstrap is disabled, and we have a
10491049
// previous rustc available, we will uplift a compiler from a previous stage.
1050+
// We do not allow cross-compilation uplifting here, because there it can be quite tricky
1051+
// to figure out which stage actually built the rustc that should be uplifted.
10501052
if build_compiler.stage >= 2
10511053
&& !builder.config.full_bootstrap
1052-
&& (target == builder.host_target || builder.hosts.contains(&target))
1054+
&& target == builder.host_target
10531055
{
10541056
// Here we need to determine the **build compiler** that built the stage that we will
10551057
// be uplifting. We cannot uplift stage 1, as it has a different ABI than stage 2+,
10561058
// so we always uplift the stage2 compiler (compiled with stage 1).
10571059
let uplift_build_compiler = builder.compiler(1, build_compiler.host);
1058-
let msg = if uplift_build_compiler.host == target {
1059-
format!("Uplifting rustc (stage2 -> stage{stage})")
1060-
} else {
1061-
format!(
1062-
"Uplifting rustc (stage2:{} -> stage{stage}:{target})",
1063-
uplift_build_compiler.host
1064-
)
1065-
};
1060+
1061+
let msg = format!("Uplifting rustc from stage2 to stage{stage})");
10661062
builder.info(&msg);
10671063

10681064
// Here the compiler that built the rlibs (`uplift_build_compiler`) can be different

src/bootstrap/src/core/builder/tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -705,6 +705,7 @@ mod snapshot {
705705
[build] rustc 1 <host> -> rustc 2 <host>
706706
[build] rustc 1 <host> -> std 1 <target1>
707707
[build] rustc 2 <host> -> std 2 <target1>
708+
[build] rustc 2 <host> -> std 2 <host>
708709
[build] rustc 2 <host> -> rustc 3 <target1>
709710
");
710711
}

0 commit comments

Comments
 (0)