From b32c5d0b72fda2588b4e170e75a9c64e4bf266c7 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 3 Aug 2020 15:05:37 +0200 Subject: [PATCH] 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. --- 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 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) { -- 2.30.2