* elfcode.h (elf_slurp_symbol_table): Don't set BSF_GLOBAL for an
authorIan Lance Taylor <ian@airs.com>
Fri, 6 Jan 1995 21:50:28 +0000 (21:50 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 6 Jan 1995 21:50:28 +0000 (21:50 +0000)
undefined or common symbol.
(elf_link_add_object_symbols): Likewise.

bfd/ChangeLog
bfd/elfcode.h

index 99d067db5edc273994209ebfc4759398bf8dbb61..35cb9754bc39a2bdf1169d6a4d4ea629b2bc1f2e 100644 (file)
@@ -1,3 +1,9 @@
+Fri Jan  6 16:39:40 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+       * elfcode.h (elf_slurp_symbol_table): Don't set BSF_GLOBAL for an
+       undefined or common symbol.
+       (elf_link_add_object_symbols): Likewise.
+
 Wed Jan  4 14:14:05 1995  Jeff Law  (law@snake.cs.utah.edu)
 
        * som.c (bfd_section_from_som_symbol): Only return sections which
index f0b515b232fa99ffa64aff17fe7ba8a4888dc1a3..ec3828efa3cd11752539e31c17801162dafbb17c 100644 (file)
@@ -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