From 77bd8dfa1f3678ea3c3d05f40de29a36802d21f5 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 15 May 1997 21:38:26 +0000 Subject: [PATCH] * elflink.h (elf_link_add_object_symbols): Consistently treat uninitialized symbols in shared objects as common symbols. --- bfd/ChangeLog | 3 ++- bfd/elflink.h | 28 +++++++++------------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6bcd44a5b94..84f3d403a55 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -11,7 +11,8 @@ Thu May 15 14:31:28 1997 Nick Clifton Thu May 15 16:40:20 1997 Ian Lance Taylor * elflink.h (elf_link_add_object_symbols): Force ELF symbol size - to common symbol size. + to common symbol size. Consistently treat uninitialized symbols + in shared objects as common symbols. Fri May 9 10:15:27 1997 Nick Clifton diff --git a/bfd/elflink.h b/bfd/elflink.h index 43425c02f8b..78f57ffc63e 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -913,26 +913,16 @@ elf_link_add_object_symbols (abfd, info) && definition && h->root.type == bfd_link_hash_common && (sec->flags & SEC_ALLOC) != 0 - && (sec->flags & SEC_LOAD) == 0) + && (sec->flags & SEC_LOAD) == 0 + && sym.st_size > 0 + && bind != STB_WEAK + && ELF_ST_TYPE (sym.st_info) != STT_FUNC) { - if (! ((*info->callbacks->multiple_common) - (info, h->root.root.string, - h->root.u.c.p->section->owner, bfd_link_hash_common, - h->root.u.c.size, abfd, bfd_link_hash_common, - sym.st_size))) - goto error_return; - - /* If the symbol in the shared library is smaller than - the one we already have, then override it to stick - with the larger symbol. Set SIZE_CHANGE_OK because - we only want to warn if requested with --warn-common. */ - if (sym.st_size < h->size) - { - override = true; - sec = bfd_und_section_ptr; - definition = false; - size_change_ok = true; - } + override = true; + sec = bfd_com_section_ptr; + definition = false; + value = sym.st_size; + size_change_ok = true; } /* Similarly, if we are not looking at a dynamic object, and -- 2.30.2