diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-09 20:12:50 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-09 20:12:50 +0000 |
| commit | 2535ea0b836bc3f1fd48d420f3611d1f97ad461d (patch) | |
| tree | 340588a4c4c54cd8a56954c754bb2c821d54502d /llvm | |
| parent | e57064428566724b7786f5e22553a06cc5f5887f (diff) | |
| download | bcm5719-llvm-2535ea0b836bc3f1fd48d420f3611d1f97ad461d.tar.gz bcm5719-llvm-2535ea0b836bc3f1fd48d420f3611d1f97ad461d.zip | |
Create BSD archives by default on OS X.
They should probably be created on anything that is not windows or linux, but I will
test on freebsd before changing that.
With this it is possible to bootstrap with llvm-ar instead of ar+ranlib on OS X.
llvm-svn: 241849
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/Object/archive-format.test | 2 | ||||
| -rw-r--r-- | llvm/tools/llvm-ar/llvm-ar.cpp | 12 |
2 files changed, 10 insertions, 4 deletions
diff --git a/llvm/test/Object/archive-format.test b/llvm/test/Object/archive-format.test index 951177256b6..51fa72a1f7b 100644 --- a/llvm/test/Object/archive-format.test +++ b/llvm/test/Object/archive-format.test @@ -8,7 +8,7 @@ RUN: echo -n bar. > 0123456789abcde RUN: echo -n zed. > 0123456789abcdef RUN: rm -f test.a -RUN: llvm-ar rc test.a 0123456789abcde 0123456789abcdef +RUN: llvm-ar --format=gnu rc test.a 0123456789abcde 0123456789abcdef RUN: cat test.a | FileCheck -strict-whitespace %s CHECK: !<arch> diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index 6fbfc153808..66daba30a4a 100644 --- a/llvm/tools/llvm-ar/llvm-ar.cpp +++ b/llvm/tools/llvm-ar/llvm-ar.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "llvm/ADT/StringSwitch.h" +#include "llvm/ADT/Triple.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" #include "llvm/LibDriver/LibDriver.h" @@ -552,9 +553,14 @@ performWriteOperation(ArchiveOperation Operation, object::Archive *OldArchive, std::vector<NewArchiveIterator> *NewMembersP) { object::Archive::Kind Kind; switch (FormatOpt) { - case Default: - // FIXME: change as the support for other formats improve. - Kind = object::Archive::K_GNU; + case Default: { + Triple T(sys::getProcessTriple()); + if (T.isOSDarwin()) + Kind = object::Archive::K_BSD; + else + Kind = object::Archive::K_GNU; + break; + } case GNU: Kind = object::Archive::K_GNU; break; |

