diff options
author | Ian Lance Taylor <ian@airs.com> | 1998-10-05 03:11:55 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1998-10-05 03:11:55 +0000 |
commit | 1bec01fc8bdbc4870d6f19d735eb99bb3d09cd7c (patch) | |
tree | f35b0d920423efd2d6e5f7a6b5f5d3f1ee36c9c9 | |
parent | 6886ab292b8d2f4d666d39366c3da9a0cc8aa79a (diff) | |
download | gdb-1bec01fc8bdbc4870d6f19d735eb99bb3d09cd7c.zip gdb-1bec01fc8bdbc4870d6f19d735eb99bb3d09cd7c.tar.gz gdb-1bec01fc8bdbc4870d6f19d735eb99bb3d09cd7c.tar.bz2 |
* 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.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.h | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0001aac..8e6777f 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 <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. diff --git a/bfd/elflink.h b/bfd/elflink.h index 64f8de80..2c38793 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 |