[PATCH] D61092: [llvm-strip] Have --discard-all imply --strip-debug

Sid Manning via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 24 14:04:15 PDT 2019


sidneym created this revision.
sidneym added reviewers: rupprecht, jhenderson, grimar.
Herald added subscribers: MaskRay, jakehehrlich, arichardson, emaste.
Herald added a reviewer: espindola.
Herald added a reviewer: alexshap.
Herald added a project: LLVM.

GNU strip removes debug sections when --discard-all is specified and this patch attempts to mimic that behavior.


Repository:
  rL LLVM

https://reviews.llvm.org/D61092

Files:
  test/tools/llvm-objcopy/ELF/discard-all-debug.test
  tools/llvm-objcopy/CopyConfig.cpp


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);
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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61092.196515.patch
Type: text/x-patch
Size: 1779 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190424/4e54429d/attachment.bin>


More information about the llvm-commits mailing list