From 1bec01fc8bdbc4870d6f19d735eb99bb3d09cd7c Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 5 Oct 1998 03:11:55 +0000 Subject: [PATCH] * 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. --- bfd/ChangeLog | 5 +++++ bfd/elflink.h | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0001aac760b..8e6777f7f53 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -8,6 +8,11 @@ Sun Oct 4 20:38:29 1998 Jeffrey A Law (law@cygnus.com) Sun Oct 4 21:19:09 1998 Ian Lance Taylor + * 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. diff --git a/bfd/elflink.h b/bfd/elflink.h index 64f8de80f98..2c38793b2d3 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -1423,8 +1423,14 @@ elf_link_add_object_symbols (abfd, info) { 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 -- 2.30.2