From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2153) id D60843949F32; Fri, 14 May 2021 14:54:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D60843949F32 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jakub Jelinek To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/redhat/heads/gcc-8-branch)] lto/96385 - avoid unused global UNDEFs in debug objects X-Act-Checkin: gcc X-Git-Author: Richard Biener X-Git-Refname: refs/vendors/redhat/heads/gcc-8-branch X-Git-Oldrev: 8e7e5d6958b84d8cf19db11fae125579350f70e1 X-Git-Newrev: 098a5d0349a0a8285970f4e0141a8de4e63ded52 Message-Id: <20210514145445.D60843949F32@sourceware.org> Date: Fri, 14 May 2021 14:54:45 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 May 2021 14:54:45 -0000 https://gcc.gnu.org/g:098a5d0349a0a8285970f4e0141a8de4e63ded52 commit 098a5d0349a0a8285970f4e0141a8de4e63ded52 Author: Richard Biener Date: Mon Aug 3 15:05:37 2020 +0200 lto/96385 - avoid unused global UNDEFs in debug objects Unused global UNDEFs can have side-effects in some circumstances so the following patch avoids them by treating them the same as other to be discarded DEFs - make them local. 2020-08-03 Richard Biener PR lto/96385 libiberty/ * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Localize global UNDEFs and reuse the prevailing name. (cherry picked from commit b32c5d0b72fda2588b4e170e75a9c64e4bf266c7) Diff: --- libiberty/simple-object-elf.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c index 0505c1dc001..3732e8fbfcc 100644 --- a/libiberty/simple-object-elf.c +++ b/libiberty/simple-object-elf.c @@ -1446,6 +1446,11 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj, && st_shndx < shnum && pfnret[st_shndx - 1] == -1) discard = 1; + /* We also need to remove global UNDEFs which can + cause link fails later. */ + else if (st_shndx == SHN_UNDEF + && ELF_ST_BIND (*st_info) == STB_GLOBAL) + discard = 1; if (discard) {