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 {
|
} else {
|
||||||
// We need to properly build cargo using the suitable stage compiler.
|
// We need to properly build cargo using the suitable stage compiler.
|
||||||
|
|
||||||
|
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
|
// 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
|
// 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
|
// 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`
|
// 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
|
// behavior, i.e. we need to pass `N - 1` compiler stage to cargo. See also Miri
|
||||||
// which does a similar hack.
|
// which does a similar hack.
|
||||||
let compiler = builder.compiler(builder.top_stage - 1, compiler.host);
|
builder.compiler(builder.top_stage - 1, compiler.host));
|
||||||
|
|
||||||
builder.ensure(tool::Cargo { compiler, target: compiler.host })
|
builder.ensure(tool::Cargo { compiler, target: compiler.host })
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user