diff options
author | Alex Crichton <alex@alexcrichton.com> | 2016-11-09 20:32:02 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-09 20:32:02 -0700 |
commit | 6e8c1b490ccbe5e84d248bab883515bc85394b5f (patch) | |
tree | 02e7604c4c35a828f257461a83be41ee0f02128c | |
parent | 9195462a49857ac4a22293f00cee6c79443c7272 (diff) | |
parent | f9323d1a0a9afae5e017d2ec47e56c75ea268e2c (diff) | |
download | rust-libc-6e8c1b490ccbe5e84d248bab883515bc85394b5f.tar.gz |
Merge pull request #446 from alexcrichton/link-cfg
Use `#[link(cfg(..))]` in preparation for libstd
-rw-r--r-- | src/lib.rs | 1 | ||||
-rw-r--r-- | src/unix/mod.rs | 3 | ||||
-rw-r--r-- | src/windows.rs | 5 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/lib.rs b/src/lib.rs index 45bf49a00d..5b80aca66c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -75,6 +75,7 @@ // Attributes needed when building as part of the standard library #![cfg_attr(stdbuild, feature(no_std, core, core_slice_ext, staged_api, custom_attribute, cfg_target_vendor))] +#![cfg_attr(stdbuild, feature(link_cfg))] #![cfg_attr(stdbuild, no_std)] #![cfg_attr(stdbuild, staged_api)] #![cfg_attr(stdbuild, allow(warnings))] diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 0cb3f78dd2..b79bb9f8c5 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -205,7 +205,8 @@ cfg_if! { // cargo build, don't pull in anything extra as the libstd dep // already pulls in all libs. } else if #[cfg(any(all(target_env = "musl", not(target_arch = "mips"))))] { - #[link(name = "c", kind = "static")] + #[link(name = "c", kind = "static", cfg(target_feature = "crt-static"))] + #[link(name = "c", cfg(not(target_feature = "crt-static")))] extern {} } else if #[cfg(target_os = "emscripten")] { #[link(name = "c")] diff --git a/src/windows.rs b/src/windows.rs index b916fd4bd6..6c8332a62e 100644 --- a/src/windows.rs +++ b/src/windows.rs @@ -146,8 +146,9 @@ pub const ENOTEMPTY: ::c_int = 41; pub const EILSEQ: ::c_int = 42; pub const STRUNCATE: ::c_int = 80; -#[cfg(target_env = "msvc")] // " if " -- appease style checker -#[link(name = "msvcrt")] +#[cfg(all(target_env = "msvc", stdbuild))] // " if " -- appease style checker +#[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))] +#[link(name = "libcmt", cfg(target_feature = "crt-static"))] extern {} extern { |