* elflink.h (elf_link_add_object_symbols): Force ELF symbol size
authorIan Lance Taylor <ian@airs.com>
Thu, 15 May 1997 20:40:54 +0000 (20:40 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 15 May 1997 20:40:54 +0000 (20:40 +0000)
to common symbol size.

bfd/ChangeLog
bfd/elflink.h

index 1fd14c41d82898d986a20ef7dc4011fff6610626..3b1295c3fe6f67b61a10f4eed1d2ef3a5c1dd8ab 100644 (file)
@@ -1,3 +1,8 @@
+Thu May 15 16:40:20 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elflink.h (elf_link_add_object_symbols): Force ELF symbol size
+       to common symbol size.
+
 Fri May  9 10:15:27 1997  Nick Clifton  <nickc@cygnus.com>
 
        * archures.c (constants):  Added new constants to identify the
index 8ab07e6871fd3823d95351fb0b9b6532fc64d726..43425c02f8b5149eb66699e8f6752fe161c942d5 100644 (file)
@@ -1034,6 +1034,15 @@ elf_link_add_object_symbols (abfd, info)
 
              h->size = sym.st_size;
            }
+
+         /* If this is a common symbol, then we always want H->SIZE
+             to be the size of the common symbol.  The code just above
+             won't fix the size if a common symbol becomes larger.  We
+             don't warn about a size change here, because that is
+             covered by --warn-common.  */
+         if (h->root.type == bfd_link_hash_common)
+           h->size = h->root.u.c.size;
+
          if (ELF_ST_TYPE (sym.st_info) != STT_NOTYPE
              && (definition || h->type == STT_NOTYPE))
            {