has a base which is already defined, only add the referenced
symbol to the dynamic symbol table if it is defined or referenced
by a regular file.
Sun Oct 4 21:19:09 1998 Ian Lance Taylor <ian@cygnus.com>
Sun Oct 4 21:19:09 1998 Ian Lance Taylor <ian@cygnus.com>
+ * elflink.h (elf_link_add_object_symbols): When a versioned symbol
+ has a base which is already defined, only add the referenced
+ symbol to the dynamic symbol table if it is defined or referenced
+ by a regular file.
+
* elf32-i386.c (elf_i386_info_to_howto_rel): Handle vtable relocs
correctly.
* elf32-i386.c (elf_i386_info_to_howto_rel): Handle vtable relocs
correctly.
{
h->elf_link_hash_flags &=~ ELF_LINK_HASH_DEF_DYNAMIC;
hi->elf_link_hash_flags |= ELF_LINK_HASH_REF_DYNAMIC;
{
h->elf_link_hash_flags &=~ ELF_LINK_HASH_DEF_DYNAMIC;
hi->elf_link_hash_flags |= ELF_LINK_HASH_REF_DYNAMIC;
- if (! _bfd_elf_link_record_dynamic_symbol (info, hi))
- goto error_return;
+ if (hi->elf_link_hash_flags
+ & (ELF_LINK_HASH_REF_REGULAR
+ | ELF_LINK_HASH_DEF_REGULAR))
+ {
+ if (! _bfd_elf_link_record_dynamic_symbol (info,
+ hi))
+ goto error_return;
+ }
}
/* Now set HI to H, so that the following code
}
/* Now set HI to H, so that the following code