1
Fork 0

delete more cfg(bootstrap)

This commit is contained in:
Lukas Markeffsky 2022-12-26 22:01:53 +01:00 committed by Mark Rousskov
parent 11191279b7
commit fdf6cc34b2
4 changed files with 22 additions and 38 deletions

View file

@ -2164,18 +2164,11 @@ pub fn id() -> u32 {
/// to provide similar functionality. /// to provide similar functionality.
#[cfg_attr(not(test), lang = "termination")] #[cfg_attr(not(test), lang = "termination")]
#[stable(feature = "termination_trait_lib", since = "1.61.0")] #[stable(feature = "termination_trait_lib", since = "1.61.0")]
#[rustc_on_unimplemented( #[rustc_on_unimplemented(on(
on( cause = "MainFunctionType",
all(not(bootstrap), cause = "MainFunctionType"),
message = "`main` has invalid return type `{Self}`", message = "`main` has invalid return type `{Self}`",
label = "`main` can only return types that implement `{Termination}`" 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}`"
)
)]
pub trait Termination { pub trait Termination {
/// Is called to get the representation of the value as status code. /// Is called to get the representation of the value as status code.
/// This status code is returned to the operating system. /// This status code is returned to the operating system.

View file

@ -184,12 +184,7 @@ pub unsafe fn init(argc: isize, argv: *const *const u8, sigpipe: u8) {
sigpipe::SIG_DFL => (true, Some(libc::SIG_DFL)), sigpipe::SIG_DFL => (true, Some(libc::SIG_DFL)),
_ => unreachable!(), _ => unreachable!(),
}; };
// The bootstrap compiler doesn't know about sigpipe::DEFAULT, and always passes in if sigpipe_attr_specified {
// 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) {
UNIX_SIGPIPE_ATTR_SPECIFIED.store(true, crate::sync::atomic::Ordering::Relaxed); UNIX_SIGPIPE_ATTR_SPECIFIED.store(true, crate::sync::atomic::Ordering::Relaxed);
} }
if let Some(handler) = handler { if let Some(handler) = handler {

View file

@ -3,7 +3,6 @@
#![cfg_attr( #![cfg_attr(
any( any(
all(target_arch = "arm", any(target_os = "linux", target_os = "android")), 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 = "powerpc", target_os = "linux"),
all(target_arch = "powerpc64", target_os = "linux"), all(target_arch = "powerpc64", target_os = "linux"),
), ),

View file

@ -691,8 +691,6 @@ 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 { match builder.config.rust_lto {
RustcLto::Thin | RustcLto::Fat => { RustcLto::Thin | RustcLto::Fat => {
// Since using LTO for optimizing dylibs is currently experimental, // Since using LTO for optimizing dylibs is currently experimental,
@ -711,7 +709,6 @@ impl Step for Rustc {
} }
RustcLto::ThinLocal => { /* Do nothing, this is the default */ } RustcLto::ThinLocal => { /* Do nothing, this is the default */ }
} }
}
builder.info(&format!( builder.info(&format!(
"Building stage{} compiler artifacts ({} -> {})", "Building stage{} compiler artifacts ({} -> {})",