don't stage-off to previous compiler when CI rustc is available
Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
parent
b596184f3b
commit
774201e3b6
@ -1734,13 +1734,15 @@ fn run(self, builder: &Builder<'_>) {
|
||||
} else {
|
||||
// We need to properly build cargo using the suitable stage compiler.
|
||||
|
||||
// HACK: currently tool stages are off-by-one compared to compiler stages, i.e. if
|
||||
// you give `tool::Cargo` a stage 1 rustc, it will cause stage 2 rustc to be built
|
||||
// and produce a cargo built with stage 2 rustc. To fix this, we need to chop off
|
||||
// the compiler stage by 1 to align with expected `./x test run-make --stage N`
|
||||
// behavior, i.e. we need to pass `N - 1` compiler stage to cargo. See also Miri
|
||||
// which does a similar hack.
|
||||
let compiler = builder.compiler(builder.top_stage - 1, compiler.host);
|
||||
let compiler = builder.download_rustc().then_some(compiler).unwrap_or_else(||
|
||||
// HACK: currently tool stages are off-by-one compared to compiler stages, i.e. if
|
||||
// you give `tool::Cargo` a stage 1 rustc, it will cause stage 2 rustc to be built
|
||||
// and produce a cargo built with stage 2 rustc. To fix this, we need to chop off
|
||||
// the compiler stage by 1 to align with expected `./x test run-make --stage N`
|
||||
// behavior, i.e. we need to pass `N - 1` compiler stage to cargo. See also Miri
|
||||
// which does a similar hack.
|
||||
builder.compiler(builder.top_stage - 1, compiler.host));
|
||||
|
||||
builder.ensure(tool::Cargo { compiler, target: compiler.host })
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user