aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2018-07-31 21:26:35 +0000
committerFangrui Song <maskray@google.com>2018-07-31 21:26:35 +0000
commit402cad06199cdf730f7c9b9692bdde07d6c1928f (patch)
tree1878448e35b1f93e642a1b1b2e7ca8d48ec83b33
parent0da00372337cd831ba9ba13a7700009c4dae19c0 (diff)
[llvm-objcopy] Make --strip-debug strip .gdb_index
Summary: See binutils-gdb/bfd/elf.c, GNU objcopy also strips .stab* (STABS) .line* (DWARF 1) .gnu.linkonce.wi.* (linkonce section for .debug_info) but I'm not sure we need to be compatible with it. Reviewers: dblaikie, alexshap, jakehehrlich, jhenderson Reviewed By: alexshap, jakehehrlich Subscribers: aprantl, JDevlieghere, jakehehrlich, llvm-commits Differential Revision: https://reviews.llvm.org/D50100 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338443 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/tools/llvm-objcopy/strip-debug.test8
-rw-r--r--tools/llvm-objcopy/llvm-objcopy.cpp3
2 files changed, 9 insertions, 2 deletions
diff --git a/test/tools/llvm-objcopy/strip-debug.test b/test/tools/llvm-objcopy/strip-debug.test
index c8f90d9ca19..6c833f301c7 100644
--- a/test/tools/llvm-objcopy/strip-debug.test
+++ b/test/tools/llvm-objcopy/strip-debug.test
@@ -67,7 +67,7 @@
# RUN: llvm-objcopy --strip-debug %t.thin.a %t2.thin.a
# RUN: cat %t.thin.a | FileCheck %s --check-prefix=VERIFY-THIN-ARCHIVE
# RUN: cat %t2.thin.a | FileCheck %s --check-prefix=VERIFY-THIN-ARCHIVE
-
+
# VERIFY-THIN-ARCHIVE: !<thin>
# Verify that the member of a thin archive was properly modified.
@@ -94,6 +94,12 @@ Sections:
- Name: .debugfoo
Type: SHT_PROGBITS
Content: "00000000"
+ - Name: .zdebugfoo
+ Type: SHT_PROGBITS
+ Content: "00000000"
+ - Name: .gdb_index
+ Type: SHT_PROGBITS
+ Content: "00000000"
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
diff --git a/tools/llvm-objcopy/llvm-objcopy.cpp b/tools/llvm-objcopy/llvm-objcopy.cpp
index e903e57ad5f..21a1622db76 100644
--- a/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -186,7 +186,8 @@ LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, Error E) {
} // end namespace llvm
static bool IsDebugSection(const SectionBase &Sec) {
- return Sec.Name.startswith(".debug") || Sec.Name.startswith(".zdebug");
+ return Sec.Name.startswith(".debug") || Sec.Name.startswith(".zdebug") ||
+ Sec.Name == ".gdb_index";
}
static bool IsDWOSection(const SectionBase &Sec) {