-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
{
Elf_Internal_Versym iver;
int vernum;
- boolean indirect;
boolean override;
if (ever != NULL)
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. */
&& (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