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  <rguenther@suse.de>

	PR lto/96385
libiberty/
	* simple-object-elf.c
	(simple_object_elf_copy_lto_debug_sections): Localize global
	UNDEFs and reuse the prevailing name.
This commit is contained in:
Richard Biener 2020-08-03 15:05:37 +02:00
parent 5e97638b0a
commit b32c5d0b72

View File

@ -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)
{