diff options
author | Alan Modra <amodra@gmail.com> | 2001-10-03 08:33:18 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2001-10-03 08:33:18 +0000 |
commit | 0a991dfe0d54a980dba9b2d031818d33474f84a0 (patch) | |
tree | b4e3ee00068a643373a0104e3997c7180668021b /bfd/elfxx-ia64.c | |
parent | 7997c6eaf4a710b8abf4e117e43ffa455d900260 (diff) | |
download | gdb-0a991dfe0d54a980dba9b2d031818d33474f84a0.zip gdb-0a991dfe0d54a980dba9b2d031818d33474f84a0.tar.gz gdb-0a991dfe0d54a980dba9b2d031818d33474f84a0.tar.bz2 |
* elflink.h (elf_fix_symbol_flags): Copy flags to weakdef using
elf_backend_copy_indirect_symbol so that backend has a chance to
copy other necessary fields.
* elf-bfd.h (struct elf_backend_data): Update description of
elf_backend_copy_indirect_symbol.
* elf.c (_bfd_elf_link_hash_copy_indirect): Bail out after
copying flags if this is a weakdef.
* elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
(elfNN_ia64_aix_add_symbol_hook): Use elf_link_hash_lookup rather
than bfd_link_hash_lookup.
* elf32-i386 (elf_i386_adjust_dynamic_symbol): Don't do copy
reloc processing for weakdefs.
* elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Likewise.
* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
Diffstat (limited to 'bfd/elfxx-ia64.c')
-rw-r--r-- | bfd/elfxx-ia64.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index 739fe7a..d467a98 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -1190,7 +1190,8 @@ elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) no one else should use it b/c it is undocumented. */ struct elf_link_hash_entry *h; - h = (struct elf_link_hash_entry *) bfd_link_hash_lookup (info->hash, *namep, false, false, false); + h = elf_link_hash_lookup (elf_hash_table (info), *namep, + false, false, false); if (h == NULL) { struct elf_backend_data *bed; @@ -1523,6 +1524,9 @@ elfNN_ia64_hash_copy_indirect (xdir, xind) | ELF_LINK_HASH_REF_REGULAR | ELF_LINK_HASH_REF_REGULAR_NONWEAK)); + if (dir == ind->weakdef) + return; + /* Copy over the got and plt data. This would have been done by check_relocs. */ |