From: Richard Biener Date: Mon, 3 Aug 2020 13:05:37 +0000 (+0200) Subject: lto/96385 - avoid unused global UNDEFs in debug objects X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b32c5d0b72fda2588b4e170e75a9c64e4bf266c7;p=gcc.git 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. --- diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c index c62d5bba551..7c9d492f6a4 100644 --- a/libiberty/simple-object-elf.c +++ b/libiberty/simple-object-elf.c @@ -1467,6 +1467,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) {