diff options
author | Nico Weber <thakis@chromium.org> | 2024-12-19 12:28:09 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-19 12:28:09 -0500 |
commit | c2dd61279764c9e525b73d37dae58ed77b773b1d (patch) | |
tree | a21fd4504127ca20f6818b1f6e8ca0c32695fae2 /llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp | |
parent | 4044886c7c6f75a6d7d0205f8a33d9f404f7832f (diff) | |
download | llvm-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.cpp | 8 |
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) { |