From 42cf6d7950ebbb91215bac2035055ceb0d5ccda4 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 6 Jan 1995 21:50:28 +0000 Subject: * elfcode.h (elf_slurp_symbol_table): Don't set BSF_GLOBAL for an undefined or common symbol. (elf_link_add_object_symbols): Likewise. --- bfd/elfcode.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'bfd/elfcode.h') diff --git a/bfd/elfcode.h b/bfd/elfcode.h index f0b515b..ec3828e 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -2801,7 +2801,9 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic) sym->symbol.flags |= BSF_LOCAL; break; case STB_GLOBAL: - sym->symbol.flags |= BSF_GLOBAL; + if (i_sym.st_shndx != SHN_UNDEF + && i_sym.st_shndx != SHN_COMMON) + sym->symbol.flags |= BSF_GLOBAL; break; case STB_WEAK: sym->symbol.flags |= BSF_WEAK; @@ -4202,7 +4204,13 @@ elf_link_add_object_symbols (abfd, info) continue; } else if (bind == STB_GLOBAL) - flags = BSF_GLOBAL; + { + if (sym.st_shndx != SHN_UNDEF + && sym.st_shndx != SHN_COMMON) + flags = BSF_GLOBAL; + else + flags = 0; + } else if (bind == STB_WEAK) flags = BSF_WEAK; else -- cgit v1.1