diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2000-06-05 17:21:32 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2000-06-05 17:21:32 +0000 |
commit | 94b6c40a1afad9d51ec6f7c4d6c55dd55e5ccbf6 (patch) | |
tree | 739393955d90e3329df1fc2807815e84c6463fbb | |
parent | e06cae3665e66c3122d133939a76e25fd519ae26 (diff) | |
download | gdb-94b6c40a1afad9d51ec6f7c4d6c55dd55e5ccbf6.zip gdb-94b6c40a1afad9d51ec6f7c4d6c55dd55e5ccbf6.tar.gz gdb-94b6c40a1afad9d51ec6f7c4d6c55dd55e5ccbf6.tar.bz2 |
2000-06-05 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_fix_symbol_flags): Follow the link for the
indirect symbol for the ELF_LINK_NON_ELF bit.
(elf_link_output_extsym): Don't output the indirect symbol even
if the ELF_LINK_NON_ELF bit is set.
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elflink.h | 9 |
2 files changed, 12 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a9befba..4d07a18 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2000-06-05 H.J. Lu <hjl@gnu.org> + + * elflink.h (elf_fix_symbol_flags): Follow the link for the + indirect symbol for the ELF_LINK_NON_ELF bit. + (elf_link_output_extsym): Don't output the indirect symbol even + if the ELF_LINK_NON_ELF bit is set. + 2000-06-01 J.T. Conklin <jtc@redback.com> * config.bfd (i[3456]86-*-netbsdelf*): New target. diff --git a/bfd/elflink.h b/bfd/elflink.h index d09ad17..a1390d3 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -3289,6 +3289,9 @@ elf_fix_symbol_flags (h, eif) an ELF dynamic object. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_ELF) != 0) { + while (h->root.type == bfd_link_hash_indirect) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + if (h->root.type != bfd_link_hash_defined && h->root.type != bfd_link_hash_defweak) h->elf_link_hash_flags |= (ELF_LINK_HASH_REF_REGULAR @@ -5030,10 +5033,8 @@ elf_link_output_extsym (h, data) symbol foo@@GNU_1.2 is the default, which should be used when foo is used with no version, then we add an indirect symbol foo which points to foo@@GNU_1.2. We ignore these symbols, - since the indirected symbol is already in the hash table. If - the indirect symbol is non-ELF, fall through and output it. */ - if ((h->elf_link_hash_flags & ELF_LINK_NON_ELF) == 0) - return true; + since the indirected symbol is already in the hash table. */ + return true; /* Fall through. */ case bfd_link_hash_warning: |