summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Markeffsky <@>2022-12-26 22:01:53 +0100
committerMark Rousskov <mark.simulacrum@gmail.com>2022-12-28 09:18:43 -0500
commitfdf6cc34b2564100c5d07b573ef246124ee45b47 (patch)
treec8dba4e6ad1885186c89c184d23a453a1c29341e
parent11191279b721b326d545005b96ad9eecc7a95827 (diff)
downloadrust-fdf6cc34b2564100c5d07b573ef246124ee45b47.tar.gz
delete more `cfg(bootstrap)`
-rw-r--r--library/std/src/process.rs17
-rw-r--r--library/std/src/sys/unix/mod.rs7
-rw-r--r--library/std/tests/run-time-detect.rs1
-rw-r--r--src/bootstrap/compile.rs35
4 files changed, 22 insertions, 38 deletions
diff --git a/library/std/src/process.rs b/library/std/src/process.rs
index c1da395bfc5..62ce2cb33dc 100644
--- a/library/std/src/process.rs
+++ b/library/std/src/process.rs
@@ -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.
diff --git a/library/std/src/sys/unix/mod.rs b/library/std/src/sys/unix/mod.rs
index 83a43b6ee26..233e4a26bdc 100644
--- a/library/std/src/sys/unix/mod.rs
+++ b/library/std/src/sys/unix/mod.rs
@@ -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 {
diff --git a/library/std/tests/run-time-detect.rs b/library/std/tests/run-time-detect.rs
index 02c076f1bb5..7fbfe3daaa8 100644
--- a/library/std/tests/run-time-detect.rs
+++ b/library/std/tests/run-time-detect.rs
@@ -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"),
),
diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
index 427e1a3863e..ae5dfdea19f 100644
--- a/src/bootstrap/compile.rs
+++ b/src/bootstrap/compile.rs
@@ -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!(