Skip to content

Commit

Permalink
[ELF] - Teach LLD to strip .zdebug_* sections when --strip-debug/--st…
Browse files Browse the repository at this point in the history
…rip-all is specified.

Currently we do not strip .zdebug_*, what looks wrong.
Also this simplifies the testcase we have for this options.

Differential revision: https://reviews.llvm.org/D39552

llvm-svn: 317306
  • Loading branch information
George Rimar committed Nov 3, 2017
1 parent 5b26236 commit cbed0e6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 20 deletions.
3 changes: 2 additions & 1 deletion lld/ELF/InputFiles.cpp
Expand Up @@ -537,7 +537,8 @@ InputSectionBase *ObjFile<ELFT>::createInputSection(const Elf_Shdr &Sec) {
return &InputSection::Discarded;
}

if (Config->Strip != StripPolicy::None && Name.startswith(".debug"))
if (Config->Strip != StripPolicy::None &&
(Name.startswith(".debug") || Name.startswith(".zdebug")))
return &InputSection::Discarded;

// The linkonce feature is a sort of proto-comdat. Some glibc i386 object
Expand Down
27 changes: 8 additions & 19 deletions lld/test/ELF/strip-debug.s
@@ -1,25 +1,14 @@
# REQUIRES: x86

# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux -g %s -o %t
# RUN: ld.lld %t -o %t2
# RUN: llvm-readobj -sections -symbols %t2 | FileCheck -check-prefix=DEFAULT %s
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: ld.lld %t -o %t2 --strip-debug
# RUN: llvm-readobj -sections -symbols %t2 | FileCheck -check-prefix=STRIP %s
# RUN: llvm-readobj -sections %t2 | FileCheck %s
# RUN: ld.lld %t -o %t2 -S
# RUN: llvm-readobj -sections -symbols %t2 | FileCheck -check-prefix=STRIP %s
# RUN: llvm-readobj -sections %t2 | FileCheck %s
# RUN: ld.lld %t -o %t2 --strip-all
# RUN: llvm-readobj -sections -symbols %t2 | FileCheck -check-prefix=STRIP %s

# DEFAULT: Name: .debug_info
# DEFAULT: Name: .debug_abbrev
# DEFAULT: Name: .debug_aranges
# DEFAULT: Name: .debug_line
# RUN: llvm-readobj -sections %t2 | FileCheck %s

# STRIP-NOT: Name: .debug_info
# STRIP-NOT: Name: .debug_abbrev
# STRIP-NOT: Name: .debug_aranges
# STRIP-NOT: Name: .debug_line
# CHECK-NOT: Foo
# CHECK-NOT: Bar

.globl _start
_start:
ret
.section .debug_Foo,"",@progbits
.section .zdebug_Bar,"",@progbits

0 comments on commit cbed0e6

Please sign in to comment.