Index: test/tools/llvm-objcopy/ELF/discard-all-debug.test =================================================================== --- /dev/null +++ test/tools/llvm-objcopy/ELF/discard-all-debug.test @@ -0,0 +1,29 @@ +# RUN: cp %p/Inputs/dwarf.dwo %t +# RUN: llvm-strip --keep-symbol=.L.str --discard-all %t +# RUN: llvm-readobj --file-headers --sections %t | FileCheck %s + +CHECK: SectionHeaderCount: 8 + +CHECK: Name: .text +CHECK: Name: .rodata.str1.1 +CHECK-NOT: Name: .debug_str +CHECK-NOT: Name: .debug_abbrev +CHECK-NOT: Name: .debug_info +CHECK-NOT: Name: .debug_ranges +CHECK-NOT: Name: .debug_macinfo +CHECK-NOT: Name: .debug_addr +CHECK-NOT: Name: .debug_pubnames +CHECK-NOT: Name: .debug_pubtypes +CHECK: Name: .comment +CHECK: Name: .note.GNU-stack +CHECK-NOT: Name: .debug_frame +CHECK-NOT: Name: .debug_line +CHECK: Name: .symtab +CHECK: Name: .rela.text +CHECK-NOT: Name: .rela.debug_info +CHECK-NOT: Name: .rela.debug_addr +CHECK-NOT: Name: .rela.debug_pubnames +CHECK-NOT: Name: .rela.debug_pubtypes +CHECK-NOT: Name: .rela.debug_frame +CHECK-NOT: Name: .rela.debug_line +CHECK: Name: .strtab Index: tools/llvm-objcopy/CopyConfig.cpp =================================================================== --- tools/llvm-objcopy/CopyConfig.cpp +++ tools/llvm-objcopy/CopyConfig.cpp @@ -740,6 +740,9 @@ Config.DiscardMode == DiscardType::None && !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);