1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 12:41:49 +01:00

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
This commit is contained in:
Rafael Espindola 2015-07-09 20:12:50 +00:00
parent 60440f3a04
commit 111ba6bab3
2 changed files with 10 additions and 4 deletions

View File

@ -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>

View File

@ -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;