summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.rs7
-rw-r--r--src/unix/bsd/apple/mod.rs23
2 files changed, 13 insertions, 17 deletions
diff --git a/build.rs b/build.rs
index 9ebb67a80c..c4982111e7 100644
--- a/build.rs
+++ b/build.rs
@@ -11,7 +11,6 @@ fn main() {
let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok();
let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok();
let libc_ci = env::var("LIBC_CI").is_ok();
- let target = env::var("TARGET").unwrap();
if env::var("CARGO_FEATURE_USE_STD").is_ok() {
println!(
@@ -84,12 +83,6 @@ fn main() {
}
println!("cargo:rustc-cfg=libc_const_extern_fn");
}
-
- // For unknown reason, libiconv can't be linked by adding #[link(name = iconv)] to
- // a macOS-specific struct, so we do the linking here.
- if target.contains("-apple-") {
- println!("cargo:rustc-link-lib=iconv");
- }
}
fn rustc_minor_nightly() -> Option<(u32, bool)> {
diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs
index a5703ef5d6..3955354ff2 100644
--- a/src/unix/bsd/apple/mod.rs
+++ b/src/unix/bsd/apple/mod.rs
@@ -3826,16 +3826,6 @@ extern "C" {
)]
pub fn getfsstat(mntbufp: *mut statfs, bufsize: ::c_int, flags: ::c_int) -> ::c_int;
- pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t;
- pub fn iconv(
- cd: iconv_t,
- inbuf: *mut *mut ::c_char,
- inbytesleft: *mut ::size_t,
- outbuf: *mut *mut ::c_char,
- outbytesleft: *mut ::size_t,
- ) -> ::size_t;
- pub fn iconv_close(cd: iconv_t) -> ::c_int;
-
// Copy-on-write functions.
// According to the man page `flags` is an `int` but in the header
// this is a `uint32_t`.
@@ -3855,6 +3845,19 @@ extern "C" {
) -> ::c_int;
}
+#[link(name = "iconv")]
+extern "C" {
+ pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t;
+ pub fn iconv(
+ cd: iconv_t,
+ inbuf: *mut *mut ::c_char,
+ inbytesleft: *mut ::size_t,
+ outbuf: *mut *mut ::c_char,
+ outbytesleft: *mut ::size_t,
+ ) -> ::size_t;
+ pub fn iconv_close(cd: iconv_t) -> ::c_int;
+}
+
cfg_if! {
if #[cfg(any(target_arch = "arm", target_arch = "x86"))] {
mod b32;