[llvm] Make llvm-strip not eat the .gnu_debuglink section (PR #78919)

Felix Kellenbenz via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 21 16:01:59 PST 2024


https://github.com/felixkellenbenz created https://github.com/llvm/llvm-project/pull/78919

This fixes #57407 and therefore makes `llvm-strip` not remove the `.gnu_debuglink` section when used as described in #57407.

>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] 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:



More information about the llvm-commits mailing list