aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy/CopyConfig.cpp
diff options
context:
space:
mode:
authorSid Manning <sidneym@quicinc.com>2019-05-03 14:14:01 +0000
committerSid Manning <sidneym@quicinc.com>2019-05-03 14:14:01 +0000
commit5ad18a7d5941ffaedbbe75a08348d2a24311ecd1 (patch)
tree80f67035a9325d30c95d8aeb3a07ef0a08fb5c5f /llvm/tools/llvm-objcopy/CopyConfig.cpp
parent4d4f779fa2e54d26cbab093e5bffe31273f2b580 (diff)
downloadllvm-5ad18a7d5941ffaedbbe75a08348d2a24311ecd1.zip
llvm-5ad18a7d5941ffaedbbe75a08348d2a24311ecd1.tar.gz
llvm-5ad18a7d5941ffaedbbe75a08348d2a24311ecd1.tar.bz2
Let --discard-all imply --strip-debug.
This will match gnu strip's behavior. Differential Revision: https://reviews.llvm.org/D61092 llvm-svn: 359887
Diffstat (limited to 'llvm/tools/llvm-objcopy/CopyConfig.cpp')
-rw-r--r--llvm/tools/llvm-objcopy/CopyConfig.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objcopy/CopyConfig.cpp b/llvm/tools/llvm-objcopy/CopyConfig.cpp
index bece673..3ea4a95 100644
--- a/llvm/tools/llvm-objcopy/CopyConfig.cpp
+++ b/llvm/tools/llvm-objcopy/CopyConfig.cpp
@@ -584,6 +584,8 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
Config.KeepFileSymbols = InputArgs.hasArg(OBJCOPY_keep_file_symbols);
Config.DecompressDebugSections =
InputArgs.hasArg(OBJCOPY_decompress_debug_sections);
+ if (Config.DiscardMode == DiscardType::All)
+ Config.StripDebug = true;
for (auto Arg : InputArgs.filtered(OBJCOPY_localize_symbol))
Config.SymbolsToLocalize.emplace_back(Arg->getValue(), UseRegex);
for (auto Arg : InputArgs.filtered(OBJCOPY_localize_symbols))
@@ -753,6 +755,9 @@ Expected<DriverConfig> parseStripOptions(ArrayRef<const char *> ArgsArr) {
!Config.StripAllGNU && Config.SymbolsToRemove.empty())
Config.StripAll = true;
+ if (Config.DiscardMode == DiscardType::All)
+ Config.StripDebug = true;
+
Config.DeterministicArchives =
InputArgs.hasFlag(STRIP_enable_deterministic_archives,
STRIP_disable_deterministic_archives, /*default=*/true);