From 377796abdf17caa54e84daa29925efe6e7679bdc Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 9 Jul 2015 20:12:50 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241849 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Object/archive-format.test | 2 +- tools/llvm-ar/llvm-ar.cpp | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/test/Object/archive-format.test b/test/Object/archive-format.test index 951177256b6..51fa72a1f7b 100644 --- a/test/Object/archive-format.test +++ b/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: ! diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 6fbfc153808..66daba30a4a 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/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 *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; -- 2.34.1