aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-10-03 08:33:18 +0000
committerAlan Modra <amodra@gmail.com>2001-10-03 08:33:18 +0000
commit0a991dfe0d54a980dba9b2d031818d33474f84a0 (patch)
treeb4e3ee00068a643373a0104e3997c7180668021b /bfd/elflink.h
parent7997c6eaf4a710b8abf4e117e43ffa455d900260 (diff)
downloadfsf-binutils-gdb-0a991dfe0d54a980dba9b2d031818d33474f84a0.zip
fsf-binutils-gdb-0a991dfe0d54a980dba9b2d031818d33474f84a0.tar.gz
fsf-binutils-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/elflink.h')
-rw-r--r--bfd/elflink.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 39f8811..3879dbc 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -3615,11 +3615,12 @@ elf_fix_symbol_flags (h, eif)
if ((weakdef->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)
h->weakdef = NULL;
else
- weakdef->elf_link_hash_flags |=
- (h->elf_link_hash_flags
- & (ELF_LINK_HASH_REF_REGULAR
- | ELF_LINK_HASH_REF_REGULAR_NONWEAK
- | ELF_LINK_NON_GOT_REF));
+ {
+ struct elf_backend_data *bed;
+
+ bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
+ (*bed->elf_backend_copy_indirect_symbol) (weakdef, h);
+ }
}
return true;