summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-09-30 17:18:45 +0900
committerGitHub <noreply@github.com>2020-09-30 17:18:45 +0900
commit9c17cad7f0b03e3515f0cd5c56b5592b384cf9d4 (patch)
treea98ff44714b2141540d36564508ab6bed154f322
parentb3f8975d3e6be543ecbe0362ef681ae09c779ff7 (diff)
parent5bf6ee5d8e06aea64a2b20c47afe5062da1a7848 (diff)
downloadrust-libc-9c17cad7f0b03e3515f0cd5c56b5592b384cf9d4.tar.gz
Merge pull request #1899 from joshtriplett/support-static-glibc
-rw-r--r--src/lib.rs2
-rw-r--r--src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs1
-rw-r--r--src/unix/linux_like/linux/gnu/mod.rs2
-rw-r--r--src/unix/mod.rs26
4 files changed, 27 insertions, 4 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 2be57129f0..421631711c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -19,7 +19,7 @@
// Attributes needed when building as part of the standard library
#![cfg_attr(
feature = "rustc-dep-of-std",
- feature(cfg_target_vendor, link_cfg, no_core)
+ feature(cfg_target_vendor, link_cfg, no_core, static_nobundle)
)]
#![cfg_attr(libc_thread_local, feature(thread_local))]
// Enable extra lints:
diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
index 64a6de9c67..56170c4ea7 100644
--- a/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
+++ b/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
@@ -410,7 +410,6 @@ pub const SYS_pkey_alloc: ::c_long = 330;
pub const SYS_pkey_free: ::c_long = 331;
pub const SYS_statx: ::c_long = 332;
-#[link(name = "util")]
extern "C" {
pub fn sysctl(
name: *mut ::c_int,
diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs
index 44232e98cb..6ead42fee6 100644
--- a/src/unix/linux_like/linux/gnu/mod.rs
+++ b/src/unix/linux_like/linux/gnu/mod.rs
@@ -1362,7 +1362,6 @@ extern "C" {
) -> ::c_int;
}
-#[link(name = "util")]
extern "C" {
pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int;
pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int;
@@ -1436,7 +1435,6 @@ extern "C" {
) -> ::c_int;
}
-#[link(name = "dl")]
extern "C" {
pub fn dlmopen(
lmid: Lmid_t,
diff --git a/src/unix/mod.rs b/src/unix/mod.rs
index e8d9108698..21439c8a49 100644
--- a/src/unix/mod.rs
+++ b/src/unix/mod.rs
@@ -298,6 +298,32 @@ cfg_if! {
} else if #[cfg(feature = "std")] {
// cargo build, don't pull in anything extra as the libstd dep
// already pulls in all libs.
+ } else if #[cfg(all(target_os = "linux",
+ target_env = "gnu",
+ feature = "rustc-dep-of-std"))] {
+ #[link(name = "util", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "rt", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "pthread", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "m", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "dl", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "c", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "gcc_eh", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "gcc", kind = "static-nobundle",
+ cfg(target_feature = "crt-static"))]
+ #[link(name = "util", cfg(not(target_feature = "crt-static")))]
+ #[link(name = "rt", cfg(not(target_feature = "crt-static")))]
+ #[link(name = "pthread", cfg(not(target_feature = "crt-static")))]
+ #[link(name = "m", cfg(not(target_feature = "crt-static")))]
+ #[link(name = "dl", cfg(not(target_feature = "crt-static")))]
+ #[link(name = "c", cfg(not(target_feature = "crt-static")))]
+ extern {}
} else if #[cfg(target_env = "musl")] {
#[cfg_attr(feature = "rustc-dep-of-std",
link(name = "c", kind = "static",