delete more cfg(bootstrap)
This commit is contained in:
parent
11191279b7
commit
fdf6cc34b2
4 changed files with 22 additions and 38 deletions
|
@ -2164,18 +2164,11 @@ pub fn id() -> u32 {
|
|||
/// to provide similar functionality.
|
||||
#[cfg_attr(not(test), lang = "termination")]
|
||||
#[stable(feature = "termination_trait_lib", since = "1.61.0")]
|
||||
#[rustc_on_unimplemented(
|
||||
on(
|
||||
all(not(bootstrap), cause = "MainFunctionType"),
|
||||
message = "`main` has invalid return type `{Self}`",
|
||||
label = "`main` can only return types that implement `{Termination}`"
|
||||
),
|
||||
on(
|
||||
bootstrap,
|
||||
message = "`main` has invalid return type `{Self}`",
|
||||
label = "`main` can only return types that implement `{Termination}`"
|
||||
)
|
||||
)]
|
||||
#[rustc_on_unimplemented(on(
|
||||
cause = "MainFunctionType",
|
||||
message = "`main` has invalid return type `{Self}`",
|
||||
label = "`main` can only return types that implement `{Termination}`"
|
||||
))]
|
||||
pub trait Termination {
|
||||
/// Is called to get the representation of the value as status code.
|
||||
/// This status code is returned to the operating system.
|
||||
|
|
|
@ -184,12 +184,7 @@ pub unsafe fn init(argc: isize, argv: *const *const u8, sigpipe: u8) {
|
|||
sigpipe::SIG_DFL => (true, Some(libc::SIG_DFL)),
|
||||
_ => unreachable!(),
|
||||
};
|
||||
// The bootstrap compiler doesn't know about sigpipe::DEFAULT, and always passes in
|
||||
// SIG_IGN. This causes some tests to fail because they expect SIGPIPE to be reset to
|
||||
// default on process spawning (which doesn't happen if #[unix_sigpipe] is specified).
|
||||
// Since we can't differentiate between the cases here, treat SIG_IGN as DEFAULT
|
||||
// unconditionally.
|
||||
if sigpipe_attr_specified && !(cfg!(bootstrap) && sigpipe == sigpipe::SIG_IGN) {
|
||||
if sigpipe_attr_specified {
|
||||
UNIX_SIGPIPE_ATTR_SPECIFIED.store(true, crate::sync::atomic::Ordering::Relaxed);
|
||||
}
|
||||
if let Some(handler) = handler {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#![cfg_attr(
|
||||
any(
|
||||
all(target_arch = "arm", any(target_os = "linux", target_os = "android")),
|
||||
all(bootstrap, target_arch = "aarch64", any(target_os = "linux", target_os = "android")),
|
||||
all(target_arch = "powerpc", target_os = "linux"),
|
||||
all(target_arch = "powerpc64", target_os = "linux"),
|
||||
),
|
||||
|
|
|
@ -691,26 +691,23 @@ impl Step for Rustc {
|
|||
));
|
||||
}
|
||||
|
||||
// cfg(bootstrap): remove if condition once the bootstrap compiler supports dylib LTO
|
||||
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 */ }
|
||||
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 */ }
|
||||
}
|
||||
|
||||
builder.info(&format!(
|
||||
|
|
Loading…
Add table
Reference in a new issue