about summary refs log tree commit diff
path: root/src/libflate
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-01-21 15:36:25 -0800
committerAlex Crichton <alex@alexcrichton.com>2016-02-11 11:12:32 -0800
commiteac0a8bc3070e45047fff57e7b024a059289a36d (patch)
treecbcaa9dc371f2b11fe2e9b9d3ee7a3f7a9cfdb8e /src/libflate
parent4da4970767ae8fc2e3b6d0c280312bb0f4efeed6 (diff)
downloadrust-eac0a8bc3070e45047fff57e7b024a059289a36d.tar.gz
rust-eac0a8bc3070e45047fff57e7b024a059289a36d.zip
bootstrap: Add directives to not double-link libs
Have all Cargo-built crates pass `--cfg cargobuild` and then add appropriate
`#[cfg]` definitions to all crates to avoid linking anything if this is passed.
This should help allow libstd to compile with both the makefiles and with Cargo.
Diffstat (limited to 'src/libflate')
-rw-r--r--src/libflate/build.rs1
-rw-r--r--src/libflate/lib.rs5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libflate/build.rs b/src/libflate/build.rs
index 12016980a2c..245c705dfcc 100644
--- a/src/libflate/build.rs
+++ b/src/libflate/build.rs
@@ -11,6 +11,7 @@
 extern crate gcc;
 
 fn main() {
+    println!("cargo:rustc-cfg=cargobuild");
     gcc::Config::new()
         .file("../rt/miniz.c")
         .compile("libminiz.a");
diff --git a/src/libflate/lib.rs b/src/libflate/lib.rs
index f316250d96d..a6bf735e459 100644
--- a/src/libflate/lib.rs
+++ b/src/libflate/lib.rs
@@ -79,7 +79,10 @@ impl Drop for Bytes {
 }
 
 #[link(name = "miniz", kind = "static")]
-extern "C" {
+#[cfg(not(cargobuild))]
+extern {}
+
+extern {
     /// Raw miniz compression function.
     fn tdefl_compress_mem_to_heap(psrc_buf: *const c_void,
                                   src_buf_len: size_t,