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 /bfd/elflink.h | |
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.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r-- | bfd/elflink.h | 9 |
1 files changed, 5 insertions, 4 deletions
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: |