[libcxx-commits] [openmp] [compiler-rt] [libclc] [llvm] [clang-tools-extra] [libcxx] [clang] [libc] [mlir] [lld] [lldb] Make llvm-strip not eat the .gnu_debuglink section (PR #78919)
Felix Kellenbenz via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jan 22 01:40:44 PST 2024
https://github.com/felixkellenbenz updated https://github.com/llvm/llvm-project/pull/78919
>From bf376afe7bd69fd25a006890b2910f2fd32c191b Mon Sep 17 00:00:00 2001
From: Felix Kellenbenz <fe.kellenbenz.computer at outlook.de>
Date: Mon, 22 Jan 2024 00:49:21 +0100
Subject: [PATCH 1/2] Make llvm-strip not eat the .gnu_debuglink section
---
llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp b/llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
index daf03810fd7bff..b6d77d17bae36c 100644
--- a/llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
+++ b/llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
@@ -450,6 +450,8 @@ static Error replaceAndRemoveSections(const CommonConfig &Config,
return false;
if (StringRef(Sec.Name).starts_with(".gnu.warning"))
return false;
+ if (StringRef(Sec.Name).starts_with(".gnu_debuglink"))
+ return false;
// We keep the .ARM.attribute section to maintain compatibility
// with Debian derived distributions. This is a bug in their
// patchset as documented here:
>From b014ffa827fbf8c301a190e2fbf7aa943c78e6f1 Mon Sep 17 00:00:00 2001
From: Felix Kellenbenz <fe.kellenbenz.computer at outlook.de>
Date: Mon, 22 Jan 2024 10:37:22 +0100
Subject: [PATCH 2/2] Add test that checks if llvm-strip removes the
.gnu_debuglink section
---
llvm/test/tools/llvm-objcopy/ELF/strip-all.test | 2 ++
1 file changed, 2 insertions(+)
diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-all.test b/llvm/test/tools/llvm-objcopy/ELF/strip-all.test
index 20f3c9addf556b..efc3d42f22953f 100644
--- a/llvm/test/tools/llvm-objcopy/ELF/strip-all.test
+++ b/llvm/test/tools/llvm-objcopy/ELF/strip-all.test
@@ -68,6 +68,8 @@ Sections:
Flags: [ ]
- Name: .gnu.warning.foo
Type: SHT_PROGBITS
+ - Name: .gnu_debuglink
+ Type: SHT_PROGBITS
ProgramHeaders:
# Use an arbitrary segment type to show that the segment type is unimportant.
- Type: 0x61234567
More information about the libcxx-commits
mailing list