about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-02-08 10:27:03 -0800
committerAlex Crichton <alex@alexcrichton.com>2016-02-08 10:27:03 -0800
commitd66f3948f5955c47b57eced6b83eee95acb9764b (patch)
tree4c682838a180e8e222763f0b33309ba2b7aca1a6
parent7fce5037a9040a3443f796c577b88d50ca5846a0 (diff)
downloadrust-d66f3948f5955c47b57eced6b83eee95acb9764b.tar.gz
rust-d66f3948f5955c47b57eced6b83eee95acb9764b.zip
rustc: Use llvm-ar for custom targets by default
The compiler currently vendors its own version of "llvm-ar" (not literally the
binary but rather the library support) and uses it for all major targets by
default (e.g. everything defined in `src/librustc_back/target`). All custom
target specs, however, still search for an `ar` tool by default. This commit
changes this default behavior to using the internally bundled llvm-ar with the
GNU format.

Currently all targets use the GNU format except for OSX which uses the BSD
format (surely makes sense, right?), and custom targets can change the format
via the `archive-format` key in custom target specs.

I suspect that we can outright remove support for invoking an external `ar`
utility, but I figure for now there may be some crazy target relying on that so
we should leave support in for now.
-rw-r--r--src/librustc_back/target/asmjs_unknown_emscripten.rs1
-rw-r--r--src/librustc_back/target/bitrig_base.rs1
-rw-r--r--src/librustc_back/target/dragonfly_base.rs1
-rw-r--r--src/librustc_back/target/freebsd_base.rs1
-rw-r--r--src/librustc_back/target/le32_unknown_nacl.rs1
-rw-r--r--src/librustc_back/target/linux_base.rs1
-rw-r--r--src/librustc_back/target/mod.rs2
-rw-r--r--src/librustc_back/target/netbsd_base.rs1
-rw-r--r--src/librustc_back/target/openbsd_base.rs1
-rw-r--r--src/librustc_back/target/solaris_base.rs1
-rw-r--r--src/librustc_back/target/windows_base.rs1
-rw-r--r--src/librustc_back/target/windows_msvc_base.rs1
12 files changed, 1 insertions, 12 deletions
diff --git a/src/librustc_back/target/asmjs_unknown_emscripten.rs b/src/librustc_back/target/asmjs_unknown_emscripten.rs
index b25640c2791..4330e2e7b5f 100644
--- a/src/librustc_back/target/asmjs_unknown_emscripten.rs
+++ b/src/librustc_back/target/asmjs_unknown_emscripten.rs
@@ -21,7 +21,6 @@ pub fn target() -> Target {
         no_compiler_rt: true,
         linker_is_gnu: true,
         allow_asm: false,
-        archive_format: "gnu".to_string(),
         obj_is_bitcode: true,
         .. Default::default()
     };
diff --git a/src/librustc_back/target/bitrig_base.rs b/src/librustc_back/target/bitrig_base.rs
index 2b84244cda4..8eed36f9915 100644
--- a/src/librustc_back/target/bitrig_base.rs
+++ b/src/librustc_back/target/bitrig_base.rs
@@ -19,7 +19,6 @@ pub fn opts() -> TargetOptions {
         linker_is_gnu: true,
         has_rpath: true,
         position_independent_executables: true,
-        archive_format: "gnu".to_string(),
         exe_allocation_crate: "alloc_system".to_string(),
 
         .. Default::default()
diff --git a/src/librustc_back/target/dragonfly_base.rs b/src/librustc_back/target/dragonfly_base.rs
index ead16f95707..f05319a0cbe 100644
--- a/src/librustc_back/target/dragonfly_base.rs
+++ b/src/librustc_back/target/dragonfly_base.rs
@@ -29,7 +29,6 @@ pub fn opts() -> TargetOptions {
             "-Wl,-z,noexecstack".to_string(),
         ),
         position_independent_executables: true,
-        archive_format: "gnu".to_string(),
         exe_allocation_crate: super::maybe_jemalloc(),
         .. Default::default()
     }
diff --git a/src/librustc_back/target/freebsd_base.rs b/src/librustc_back/target/freebsd_base.rs
index 946e529502e..651c2a3760a 100644
--- a/src/librustc_back/target/freebsd_base.rs
+++ b/src/librustc_back/target/freebsd_base.rs
@@ -21,7 +21,6 @@ pub fn opts() -> TargetOptions {
             // Always enable NX protection when it is available
             "-Wl,-z,noexecstack".to_string(),
         ],
-        archive_format: "gnu".to_string(),
         exe_allocation_crate: super::maybe_jemalloc(),
 
         .. Default::default()
diff --git a/src/librustc_back/target/le32_unknown_nacl.rs b/src/librustc_back/target/le32_unknown_nacl.rs
index a5daebafda8..d37102e558d 100644
--- a/src/librustc_back/target/le32_unknown_nacl.rs
+++ b/src/librustc_back/target/le32_unknown_nacl.rs
@@ -25,7 +25,6 @@ pub fn target() -> Target {
         no_compiler_rt: false,
         linker_is_gnu: true,
         allow_asm: false,
-        archive_format: "gnu".to_string(),
         .. Default::default()
     };
     Target {
diff --git a/src/librustc_back/target/linux_base.rs b/src/librustc_back/target/linux_base.rs
index 20aae113f7b..d1ab71e4140 100644
--- a/src/librustc_back/target/linux_base.rs
+++ b/src/librustc_back/target/linux_base.rs
@@ -31,7 +31,6 @@ pub fn opts() -> TargetOptions {
             "-Wl,-z,noexecstack".to_string(),
         ],
         position_independent_executables: true,
-        archive_format: "gnu".to_string(),
         exe_allocation_crate: super::maybe_jemalloc(),
         has_elf_tls: true,
         .. Default::default()
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
index c61ae547a22..896fde50147 100644
--- a/src/librustc_back/target/mod.rs
+++ b/src/librustc_back/target/mod.rs
@@ -249,7 +249,7 @@ impl Default for TargetOptions {
             pre_link_objects_dll: Vec::new(),
             post_link_objects: Vec::new(),
             late_link_args: Vec::new(),
-            archive_format: String::new(),
+            archive_format: "gnu".to_string(),
             custom_unwind_resume: false,
             lib_allocation_crate: "alloc_system".to_string(),
             exe_allocation_crate: "alloc_system".to_string(),
diff --git a/src/librustc_back/target/netbsd_base.rs b/src/librustc_back/target/netbsd_base.rs
index ead8a7259f0..bf6a2e1ce75 100644
--- a/src/librustc_back/target/netbsd_base.rs
+++ b/src/librustc_back/target/netbsd_base.rs
@@ -29,7 +29,6 @@ pub fn opts() -> TargetOptions {
             "-Wl,-z,noexecstack".to_string(),
         ),
         position_independent_executables: true,
-        archive_format: "gnu".to_string(),
         .. Default::default()
     }
 }
diff --git a/src/librustc_back/target/openbsd_base.rs b/src/librustc_back/target/openbsd_base.rs
index e0c2d062949..d3db0e48771 100644
--- a/src/librustc_back/target/openbsd_base.rs
+++ b/src/librustc_back/target/openbsd_base.rs
@@ -29,7 +29,6 @@ pub fn opts() -> TargetOptions {
             "-Wl,-z,noexecstack".to_string(),
         ),
         position_independent_executables: true,
-        archive_format: "gnu".to_string(),
         exe_allocation_crate: "alloc_system".to_string(),
         .. Default::default()
     }
diff --git a/src/librustc_back/target/solaris_base.rs b/src/librustc_back/target/solaris_base.rs
index bf99a141c10..4ffa0c69da9 100644
--- a/src/librustc_back/target/solaris_base.rs
+++ b/src/librustc_back/target/solaris_base.rs
@@ -18,7 +18,6 @@ pub fn opts() -> TargetOptions {
         executables: true,
         has_rpath: true,
         is_like_solaris: true,
-        archive_format: "gnu".to_string(),
         exe_allocation_crate: super::maybe_jemalloc(),
 
         .. Default::default()
diff --git a/src/librustc_back/target/windows_base.rs b/src/librustc_back/target/windows_base.rs
index 4eacea3fcd9..1e46f45bdcf 100644
--- a/src/librustc_back/target/windows_base.rs
+++ b/src/librustc_back/target/windows_base.rs
@@ -25,7 +25,6 @@ pub fn opts() -> TargetOptions {
         staticlib_suffix: ".lib".to_string(),
         no_default_libraries: true,
         is_like_windows: true,
-        archive_format: "gnu".to_string(),
         pre_link_args: vec!(
             // And here, we see obscure linker flags #45. On windows, it has been
             // found to be necessary to have this flag to compile liblibc.
diff --git a/src/librustc_back/target/windows_msvc_base.rs b/src/librustc_back/target/windows_msvc_base.rs
index fb88ce158e4..84e22e84fdb 100644
--- a/src/librustc_back/target/windows_msvc_base.rs
+++ b/src/librustc_back/target/windows_msvc_base.rs
@@ -59,7 +59,6 @@ pub fn opts() -> TargetOptions {
             "/NOLOGO".to_string(),
             "/NXCOMPAT".to_string(),
         ],
-        archive_format: "gnu".to_string(),
         exe_allocation_crate: "alloc_system".to_string(),
 
         .. Default::default()