summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/LibDriver/LibDriver.cpp2
-rw-r--r--llvm/lib/LibDriver/Options.td2
-rw-r--r--llvm/test/LibDriver/thin.test9
3 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/LibDriver/LibDriver.cpp b/llvm/lib/LibDriver/LibDriver.cpp
index 17680e3b3bb..b0e704d6bad 100644
--- a/llvm/lib/LibDriver/LibDriver.cpp
+++ b/llvm/lib/LibDriver/LibDriver.cpp
@@ -141,7 +141,7 @@ int llvm::libDriverMain(llvm::ArrayRef<const char*> ArgsArr) {
std::pair<StringRef, std::error_code> Result =
llvm::writeArchive(getOutputPath(&Args, Members[0]), Members,
/*WriteSymtab=*/true, object::Archive::K_GNU,
- /*Deterministic*/ true, /*Thin*/ false);
+ /*Deterministic*/ true, Args.hasArg(OPT_llvmlibthin));
if (Result.second) {
if (Result.first.empty())
diff --git a/llvm/lib/LibDriver/Options.td b/llvm/lib/LibDriver/Options.td
index 0aa1affbebc..5a56ef7468d 100644
--- a/llvm/lib/LibDriver/Options.td
+++ b/llvm/lib/LibDriver/Options.td
@@ -12,6 +12,8 @@ class P<string name, string help> :
def libpath: P<"libpath", "Object file search path">;
def out : P<"out", "Path to file to write output">;
+def llvmlibthin : F<"llvmlibthin">;
+
//==============================================================================
// The flags below do nothing. They are defined only for lib.exe compatibility.
//==============================================================================
diff --git a/llvm/test/LibDriver/thin.test b/llvm/test/LibDriver/thin.test
new file mode 100644
index 00000000000..4ab9d61952b
--- /dev/null
+++ b/llvm/test/LibDriver/thin.test
@@ -0,0 +1,9 @@
+RUN: echo foo > %t
+
+RUN: llvm-lib -out:%t.a %t
+RUN: FileCheck --check-prefix=FAT %s < %t.a
+FAT: !<arch>
+
+RUN: llvm-lib -out:%t.thin.a -llvmlibthin %t
+RUN: FileCheck --check-prefix=THIN %s < %t.thin.a
+THIN: !<thin>
OpenPOWER on IntegriCloud