diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-07 05:48:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-07 05:48:48 +0000 |
commit | ef24de24a82fe681581cc130f342363c47c0969a (patch) | |
tree | 0d494f7e1a38b95c92426f58fe6eaa877303a86c /compiler/rustc_target/src/spec/illumos_base.rs | |
parent | Releasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip |
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'compiler/rustc_target/src/spec/illumos_base.rs')
-rw-r--r-- | compiler/rustc_target/src/spec/illumos_base.rs | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/compiler/rustc_target/src/spec/illumos_base.rs b/compiler/rustc_target/src/spec/illumos_base.rs deleted file mode 100644 index e63e78975..000000000 --- a/compiler/rustc_target/src/spec/illumos_base.rs +++ /dev/null @@ -1,59 +0,0 @@ -use crate::spec::{cvs, Cc, FramePointer, LinkerFlavor, TargetOptions}; - -pub fn opts() -> TargetOptions { - let late_link_args = TargetOptions::link_args( - LinkerFlavor::Unix(Cc::Yes), - &[ - // The illumos libc contains a stack unwinding implementation, as - // does libgcc_s. The latter implementation includes several - // additional symbols that are not always in base libc. To force - // the consistent use of just one unwinder, we ensure libc appears - // after libgcc_s in the NEEDED list for the resultant binary by - // ignoring any attempts to add it as a dynamic dependency until the - // very end. - // FIXME: This should be replaced by a more complete and generic - // mechanism for controlling the order of library arguments passed - // to the linker. - "-lc", - // LLVM will insert calls to the stack protector functions - // "__stack_chk_fail" and "__stack_chk_guard" into code in native - // object files. Some platforms include these symbols directly in - // libc, but at least historically these have been provided in - // libssp.so on illumos and Solaris systems. - "-lssp", - ], - ); - - TargetOptions { - os: "illumos".into(), - dynamic_linking: true, - has_rpath: true, - families: cvs!["unix"], - is_like_solaris: true, - linker_flavor: LinkerFlavor::Unix(Cc::Yes), - limit_rdylib_exports: false, // Linker doesn't support this - frame_pointer: FramePointer::Always, - eh_frame_header: false, - late_link_args, - - // While we support ELF TLS, rust requires a way to register - // cleanup handlers (in C, this would be something along the lines of: - // void register_callback(void (*fn)(void *), void *arg); - // (see src/libstd/sys/unix/fast_thread_local.rs) that is currently - // missing in illumos. For now at least, we must fallback to using - // pthread_{get,set}specific. - //has_thread_local: true, - - // FIXME: Currently, rust is invoking cc to link, which ends up - // causing these to get included twice. We should eventually transition - // to having rustc invoke ld directly, in which case these will need to - // be uncommented. - // - // We want XPG6 behavior from libc and libm. See standards(5) - //pre_link_objects_exe: vec![ - // "/usr/lib/amd64/values-Xc.o".into(), - // "/usr/lib/amd64/values-xpg6.o".into(), - //], - ..Default::default() - } -} |