aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
diff options
context:
space:
mode:
authorNico Weber <thakis@chromium.org>2024-12-19 12:28:09 -0500
committerGitHub <noreply@github.com>2024-12-19 12:28:09 -0500
commitc2dd61279764c9e525b73d37dae58ed77b773b1d (patch)
treea21fd4504127ca20f6818b1f6e8ca0c32695fae2 /llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
parent4044886c7c6f75a6d7d0205f8a33d9f404f7832f (diff)
downloadllvm-c2dd61279764c9e525b73d37dae58ed77b773b1d.zip
llvm-c2dd61279764c9e525b73d37dae58ed77b773b1d.tar.gz
llvm-c2dd61279764c9e525b73d37dae58ed77b773b1d.tar.bz2
[llvm-lib] Add /llvmlibindex:no to disable writing an index (#120596)
This can be used with /llvmlibthin to create thin archives without an index, which is a prerequisite for porting https://reviews.llvm.org/D117284 to lld-link. Creating files like this is already possible with `llvm-ar rcS`, so this doesn't add additional problems.
Diffstat (limited to 'llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp')
-rw-r--r--llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp b/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
index 319aebf..138d9fc 100644
--- a/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
+++ b/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
@@ -516,8 +516,14 @@ int llvm::libDriverMain(ArrayRef<const char *> ArgsArr) {
std::reverse(Members.begin(), Members.end());
bool Thin = Args.hasArg(OPT_llvmlibthin);
+
+ auto Symtab = Args.hasFlag(OPT_llvmlibindex, OPT_llvmlibindex_no,
+ /*default=*/true)
+ ? SymtabWritingMode::NormalSymtab
+ : SymtabWritingMode::NoSymtab;
+
if (Error E = writeArchive(
- OutputPath, Members, SymtabWritingMode::NormalSymtab,
+ OutputPath, Members, Symtab,
Thin ? object::Archive::K_GNU : object::Archive::K_COFF,
/*Deterministic=*/true, Thin, nullptr, COFF::isArm64EC(LibMachine))) {
handleAllErrors(std::move(E), [&](const ErrorInfoBase &EI) {