Make the libstd build script smaller
Remove all rustc-link-lib from the std build script. Also remove use of feature = "restricted-std" where not necessary.
This commit is contained in:
parent
cf9cf7c923
commit
6f3872a14c
5 changed files with 86 additions and 58 deletions
|
@ -563,5 +563,5 @@ include!("keyword_docs.rs");
|
|||
// This is required to avoid an unstable error when `restricted-std` is not
|
||||
// enabled. The use of #![feature(restricted_std)] in rustc-std-workspace-std
|
||||
// is unconditional, so the unstable feature needs to be defined somewhere.
|
||||
#[cfg_attr(not(feature = "restricted-std"), unstable(feature = "restricted_std", issue = "none"))]
|
||||
#[unstable(feature = "restricted_std", issue = "none")]
|
||||
mod __restricted_std_workaround {}
|
||||
|
|
|
@ -66,3 +66,8 @@ pub fn hashmap_random_keys() -> (u64, u64) {
|
|||
v.assume_init()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "backtrace", link(name = "unwind"))]
|
||||
#[link(name = "c")]
|
||||
#[link(name = "compiler_rt")]
|
||||
extern "C" {}
|
||||
|
|
|
@ -234,3 +234,55 @@ pub fn cvt_nz(error: libc::c_int) -> crate::io::Result<()> {
|
|||
pub fn abort_internal() -> ! {
|
||||
unsafe { libc::abort() }
|
||||
}
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(target_os = "android")] {
|
||||
#[link(name = "dl")]
|
||||
#[link(name = "log")]
|
||||
#[link(name = "gcc")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(target_os = "freebsd")] {
|
||||
#[link(name = "execinfo")]
|
||||
#[link(name = "pthread")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(target_os = "netbsd")] {
|
||||
#[link(name = "pthread")]
|
||||
#[link(name = "rt")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(any(target_os = "dragonfly", target_os = "openbsd"))] {
|
||||
#[link(name = "pthread")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(target_os = "solaris")] {
|
||||
#[link(name = "socket")]
|
||||
#[link(name = "posix4")]
|
||||
#[link(name = "pthread")]
|
||||
#[link(name = "resolv")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(target_os = "illumos")] {
|
||||
#[link(name = "socket")]
|
||||
#[link(name = "posix4")]
|
||||
#[link(name = "pthread")]
|
||||
#[link(name = "resolv")]
|
||||
#[link(name = "nsl")]
|
||||
// Use libumem for the (malloc-compatible) allocator
|
||||
#[link(name = "umem")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(target_os = "macos")] {
|
||||
#[link(name = "System")]
|
||||
// res_init and friends require -lresolv on macOS/iOS.
|
||||
// See #41582 and http://blog.achernya.com/2013/03/os-x-has-silly-libsystem.html
|
||||
#[link(name = "resolv")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(target_os = "ios")] {
|
||||
#[link(name = "System")]
|
||||
#[link(name = "objc")]
|
||||
#[link(name = "Security", kind = "framework")]
|
||||
#[link(name = "Foundation", kind = "framework")]
|
||||
#[link(name = "resolv")]
|
||||
extern "C" {}
|
||||
} else if #[cfg(target_os = "fuchsia")] {
|
||||
#[link(name = "zircon")]
|
||||
#[link(name = "fdio")]
|
||||
extern "C" {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -270,3 +270,17 @@ pub fn abort_internal() -> ! {
|
|||
}
|
||||
crate::intrinsics::abort();
|
||||
}
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(target_vendor = "uwp")] {
|
||||
#[link(name = "ws2_32")]
|
||||
// For BCryptGenRandom
|
||||
#[link(name = "bcrypt")]
|
||||
extern "C" {}
|
||||
} else {
|
||||
#[link(name = "advapi32")]
|
||||
#[link(name = "ws2_32")]
|
||||
#[link(name = "userenv")]
|
||||
extern "C" {}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue