diff options
Diffstat (limited to 'libiberty/simple-object-elf.c')
-rw-r--r-- | libiberty/simple-object-elf.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c index ee7a38c..646208a 100644 --- a/libiberty/simple-object-elf.c +++ b/libiberty/simple-object-elf.c @@ -1349,9 +1349,11 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj, if (discard) { - /* Make discarded symbols undefined and unnamed. */ - ELF_SET_FIELD (type_functions, ei_class, Sym, - ent, st_name, Elf_Word, 0); + /* Make discarded symbols undefined and unnamed + in case it is local. */ + if (ELF_ST_BIND (*st_info) == STB_LOCAL) + ELF_SET_FIELD (type_functions, ei_class, Sym, + ent, st_name, Elf_Word, 0); ELF_SET_FIELD (type_functions, ei_class, Sym, ent, st_value, Elf_Addr, 0); ELF_SET_FIELD (type_functions, ei_class, Sym, |