diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elflink.h | 11 |
2 files changed, 2 insertions, 15 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 36a2522..1ee22b0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,9 +1,3 @@ -Wed Jun 18 11:35:42 1997 Ian Lance Taylor <ian@cygnus.com> - - * elflink.h (elf_link_add_object_symbols): Don't let a common - symbol in a regular object override a common symbol in a shared - object if the latter was found via an indirect symbol. - Tue Jun 17 11:55:02 1997 Ian Lance Taylor <ian@cygnus.com> * cofflink.c (_bfd_coff_link_input_bfd): If stripping debugging diff --git a/bfd/elflink.h b/bfd/elflink.h index 09a7d8b..df74afe 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -741,7 +741,6 @@ elf_link_add_object_symbols (abfd, info) { Elf_Internal_Versym iver; int vernum; - boolean indirect; boolean override; if (ever != NULL) @@ -851,14 +850,9 @@ elf_link_add_object_symbols (abfd, info) if (h->root.type == bfd_link_hash_new) h->elf_link_hash_flags &=~ ELF_LINK_NON_ELF; - indirect = false; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) - { - if (h->root.type == bfd_link_hash_indirect) - indirect = true; - h = (struct elf_link_hash_entry *) h->root.u.i.link; - } + h = (struct elf_link_hash_entry *) h->root.u.i.link; /* FIXME: There are too many cases here, and it's too confusing. This code needs to be reorganized somehow. */ @@ -1014,8 +1008,7 @@ elf_link_add_object_symbols (abfd, info) && (h->root.u.def.section->flags & SEC_ALLOC) != 0 && (h->root.u.def.section->flags & SEC_LOAD) == 0 && h->size > 0 - && h->type != STT_FUNC - && ! indirect) + && h->type != STT_FUNC) { /* It would be best if we could set the hash table entry to a common symbol, but we don't know what to use for |