[llvm] r268305 - Don't try to create thin bsd archives.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Mon May 2 14:06:57 PDT 2016
Author: rafael
Date: Mon May 2 16:06:57 2016
New Revision: 268305
URL: http://llvm.org/viewvc/llvm-project?rev=268305&view=rev
Log:
Don't try to create thin bsd archives.
Not such variant has been specified yet.
Modified:
llvm/trunk/lib/Object/ArchiveWriter.cpp
llvm/trunk/test/Object/archive-format.test
llvm/trunk/tools/llvm-ar/llvm-ar.cpp
Modified: llvm/trunk/lib/Object/ArchiveWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/ArchiveWriter.cpp?rev=268305&r1=268304&r2=268305&view=diff
==============================================================================
--- llvm/trunk/lib/Object/ArchiveWriter.cpp (original)
+++ llvm/trunk/lib/Object/ArchiveWriter.cpp Mon May 2 16:06:57 2016
@@ -308,6 +308,9 @@ llvm::writeArchive(StringRef ArcName,
std::vector<NewArchiveIterator> &NewMembers,
bool WriteSymtab, object::Archive::Kind Kind,
bool Deterministic, bool Thin) {
+ assert(!Thin ||
+ Kind == object::Archive::K_GNU &&
+ "Only the gnu format has a thin mode");
SmallString<128> TmpArchive;
int TmpArchiveFD;
if (auto EC = sys::fs::createUniqueFile(ArcName + ".temp-archive-%%%%%%%.a",
Modified: llvm/trunk/test/Object/archive-format.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/archive-format.test?rev=268305&r1=268304&r2=268305&view=diff
==============================================================================
--- llvm/trunk/test/Object/archive-format.test (original)
+++ llvm/trunk/test/Object/archive-format.test Mon May 2 16:06:57 2016
@@ -62,3 +62,6 @@ THIN-PATH-NEXT: /0 0
THIN-PATH-NEXT: /20 0 0 0 644 4 `
THIN-PATH-NEXT: /41 0 0 0 644 4 `
THIN-PATH-NEXT: /65 0 0 0 644 4 `
+
+RUN: not llvm-ar --format=bsd rcT bad.a 0123456789abcde 0123456789abcdef 2>&1 | FileCheck --check-prefix=BSD-THIN %s
+BSD-THIN: Only the gnu format has a thin mode.
Modified: llvm/trunk/tools/llvm-ar/llvm-ar.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/llvm-ar.cpp?rev=268305&r1=268304&r2=268305&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/llvm-ar.cpp (original)
+++ llvm/trunk/tools/llvm-ar/llvm-ar.cpp Mon May 2 16:06:57 2016
@@ -585,7 +585,7 @@ performWriteOperation(ArchiveOperation O
switch (FormatOpt) {
case Default: {
Triple T(sys::getProcessTriple());
- if (T.isOSDarwin())
+ if (T.isOSDarwin() && !Thin)
Kind = object::Archive::K_BSD;
else
Kind = object::Archive::K_GNU;
@@ -595,6 +595,8 @@ performWriteOperation(ArchiveOperation O
Kind = object::Archive::K_GNU;
break;
case BSD:
+ if (Thin)
+ fail("Only the gnu format has a thin mode");
Kind = object::Archive::K_BSD;
break;
}
More information about the llvm-commits
mailing list