Index: ELF/InputFiles.cpp =================================================================== --- ELF/InputFiles.cpp +++ ELF/InputFiles.cpp @@ -537,7 +537,8 @@ 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 Index: test/ELF/strip-debug.s =================================================================== --- test/ELF/strip-debug.s +++ 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