Rollup merge of #136157 - onur-ozkan:override-release-profile, r=Kobzol
override build profile for bootstrap tests Using the release profile for bootstrap self tests puts too much load on the CPU and makes it quite hot on `x test bootstrap` invocation for no good reason. It also makes the compilation take longer than usual (see https://github.com/rust-lang/rust/pull/136048#issuecomment-2616908484). This change turns off the release flag for bootstrap self tests.
This commit is contained in:
commit
6c9c69813d
2 changed files with 23 additions and 8 deletions
|
@ -86,6 +86,7 @@ impl Step for CrateBootstrap {
|
|||
SourceType::InTree,
|
||||
&[],
|
||||
);
|
||||
|
||||
let crate_name = path.rsplit_once('/').unwrap().1;
|
||||
run_cargo_test(cargo, &[], &[], crate_name, crate_name, bootstrap_host, builder);
|
||||
}
|
||||
|
@ -3106,6 +3107,8 @@ impl Step for Bootstrap {
|
|||
&[],
|
||||
);
|
||||
|
||||
cargo.release_build(false);
|
||||
|
||||
cargo
|
||||
.rustflag("-Cdebuginfo=2")
|
||||
.env("CARGO_TARGET_DIR", builder.out.join("bootstrap"))
|
||||
|
|
|
@ -88,12 +88,14 @@ impl HostFlags {
|
|||
#[derive(Debug)]
|
||||
pub struct Cargo {
|
||||
command: BootstrapCommand,
|
||||
args: Vec<OsString>,
|
||||
compiler: Compiler,
|
||||
target: TargetSelection,
|
||||
rustflags: Rustflags,
|
||||
rustdocflags: Rustflags,
|
||||
hostflags: HostFlags,
|
||||
allow_features: String,
|
||||
release_build: bool,
|
||||
}
|
||||
|
||||
impl Cargo {
|
||||
|
@ -121,6 +123,10 @@ impl Cargo {
|
|||
cargo
|
||||
}
|
||||
|
||||
pub fn release_build(&mut self, release_build: bool) {
|
||||
self.release_build = release_build;
|
||||
}
|
||||
|
||||
pub fn compiler(&self) -> Compiler {
|
||||
self.compiler
|
||||
}
|
||||
|
@ -153,7 +159,7 @@ impl Cargo {
|
|||
}
|
||||
|
||||
pub fn arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Cargo {
|
||||
self.command.arg(arg.as_ref());
|
||||
self.args.push(arg.as_ref().into());
|
||||
self
|
||||
}
|
||||
|
||||
|
@ -342,6 +348,12 @@ impl Cargo {
|
|||
|
||||
impl From<Cargo> for BootstrapCommand {
|
||||
fn from(mut cargo: Cargo) -> BootstrapCommand {
|
||||
if cargo.release_build {
|
||||
cargo.args.insert(0, "--release".into());
|
||||
}
|
||||
|
||||
cargo.command.args(cargo.args);
|
||||
|
||||
let rustflags = &cargo.rustflags.0;
|
||||
if !rustflags.is_empty() {
|
||||
cargo.command.env("RUSTFLAGS", rustflags);
|
||||
|
@ -360,6 +372,7 @@ impl From<Cargo> for BootstrapCommand {
|
|||
if !cargo.allow_features.is_empty() {
|
||||
cargo.command.env("RUSTC_ALLOW_FEATURES", cargo.allow_features);
|
||||
}
|
||||
|
||||
cargo.command
|
||||
}
|
||||
}
|
||||
|
@ -429,13 +442,6 @@ impl Builder<'_> {
|
|||
assert_eq!(target, compiler.host);
|
||||
}
|
||||
|
||||
if self.config.rust_optimize.is_release() &&
|
||||
// cargo bench/install do not accept `--release` and miri doesn't want it
|
||||
!matches!(cmd_kind, Kind::Bench | Kind::Install | Kind::Miri | Kind::MiriSetup | Kind::MiriTest)
|
||||
{
|
||||
cargo.arg("--release");
|
||||
}
|
||||
|
||||
// Remove make-related flags to ensure Cargo can correctly set things up
|
||||
cargo.env_remove("MAKEFLAGS");
|
||||
cargo.env_remove("MFLAGS");
|
||||
|
@ -1218,14 +1224,20 @@ impl Builder<'_> {
|
|||
rustflags.arg("-Zmir_strip_debuginfo=locals-in-tiny-functions");
|
||||
}
|
||||
|
||||
let release_build = self.config.rust_optimize.is_release() &&
|
||||
// cargo bench/install do not accept `--release` and miri doesn't want it
|
||||
!matches!(cmd_kind, Kind::Bench | Kind::Install | Kind::Miri | Kind::MiriSetup | Kind::MiriTest);
|
||||
|
||||
Cargo {
|
||||
command: cargo,
|
||||
args: vec![],
|
||||
compiler,
|
||||
target,
|
||||
rustflags,
|
||||
rustdocflags,
|
||||
hostflags,
|
||||
allow_features,
|
||||
release_build,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue