mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-29 00:46:32 +00:00
Skip LTO in stage0 (again)
This commit is contained in:
parent
fbe0450251
commit
cc4e434854
@ -691,23 +691,27 @@ impl Step for Rustc {
|
||||
));
|
||||
}
|
||||
|
||||
match builder.config.rust_lto {
|
||||
RustcLto::Thin | RustcLto::Fat => {
|
||||
// Since using LTO for optimizing dylibs is currently experimental,
|
||||
// we need to pass -Zdylib-lto.
|
||||
cargo.rustflag("-Zdylib-lto");
|
||||
// Cargo by default passes `-Cembed-bitcode=no` and doesn't pass `-Clto` when
|
||||
// compiling dylibs (and their dependencies), even when LTO is enabled for the
|
||||
// crate. Therefore, we need to override `-Clto` and `-Cembed-bitcode` here.
|
||||
let lto_type = match builder.config.rust_lto {
|
||||
RustcLto::Thin => "thin",
|
||||
RustcLto::Fat => "fat",
|
||||
_ => unreachable!(),
|
||||
};
|
||||
cargo.rustflag(&format!("-Clto={}", lto_type));
|
||||
cargo.rustflag("-Cembed-bitcode=yes");
|
||||
// We currently don't support cross-crate LTO in stage0. This also isn't hugely necessary
|
||||
// and may just be a time sink.
|
||||
if compiler.stage != 0 {
|
||||
match builder.config.rust_lto {
|
||||
RustcLto::Thin | RustcLto::Fat => {
|
||||
// Since using LTO for optimizing dylibs is currently experimental,
|
||||
// we need to pass -Zdylib-lto.
|
||||
cargo.rustflag("-Zdylib-lto");
|
||||
// Cargo by default passes `-Cembed-bitcode=no` and doesn't pass `-Clto` when
|
||||
// compiling dylibs (and their dependencies), even when LTO is enabled for the
|
||||
// crate. Therefore, we need to override `-Clto` and `-Cembed-bitcode` here.
|
||||
let lto_type = match builder.config.rust_lto {
|
||||
RustcLto::Thin => "thin",
|
||||
RustcLto::Fat => "fat",
|
||||
_ => unreachable!(),
|
||||
};
|
||||
cargo.rustflag(&format!("-Clto={}", lto_type));
|
||||
cargo.rustflag("-Cembed-bitcode=yes");
|
||||
}
|
||||
RustcLto::ThinLocal => { /* Do nothing, this is the default */ }
|
||||
}
|
||||
RustcLto::ThinLocal => { /* Do nothing, this is the default */ }
|
||||
}
|
||||
|
||||
builder.info(&format!(
|
||||
|
Loading…
Reference in New Issue
Block a user