diff options
author | Alan Modra <amodra@gmail.com> | 2005-05-19 08:26:56 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-05-19 08:26:56 +0000 |
commit | a6aa51957cc6041a27e680f2f47dbfa90cc6371f (patch) | |
tree | 9800c3e1a640514e3804756e412412e4398103d3 /bfd/elf-bfd.h | |
parent | b0648eec6148de0ae9cd7c1b099471624483277f (diff) | |
download | gdb-a6aa51957cc6041a27e680f2f47dbfa90cc6371f.zip gdb-a6aa51957cc6041a27e680f2f47dbfa90cc6371f.tar.gz gdb-a6aa51957cc6041a27e680f2f47dbfa90cc6371f.tar.bz2 |
* elf-bfd.h (struct elf_link_hash_table): Delete init_refcount and
init_offset. Add init_got_refcount, init_plt_refcount,
init_got_offset and init_plt_offset.
* elf.c (_bfd_elf_link_hash_newfunc): Adjust for above change.
(_bfd_elf_link_hash_hide_symbol): Likewise.
(_bfd_elf_link_hash_table_init): Likewise.
* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
* elf64-ppc.c (ppc64_elf_link_hash_table_create): Likewise.
* elflink.c (_bfd_elf_adjust_dynamic_symbol): Likewise.
(bfd_elf_size_dynamic_sections): Likewise.
* elf32-ppc.c (GLINK_PLTRESOLVE): Now 16 insns.
(LWZU_0_X_12, LWZ_0_4_30, LWZ_0_X_12, LWZ_11_X_11, LWZ_11_X_30,
LWZ_12_4_12, LWZ_12_8_30, LWZ_12_X_12, SUB_11_11_30): Delete.
(ADDIS_12_12, BCL_20_31, LWZU_0_12, LWZ_0_12, LWZ_11_11, LWZ_11_30,
LWZ_12_12, MFLR_0, MFLR_12, MTLR_0, SUB_11_11_12): Define.
(struct plt_entry): New.
(ppc_elf_link_hash_table_create): Set new init_plt fields.
(ppc_elf_copy_indirect_symbol): Handle merge of plt plist. Don't
use _bfd_elf_link_hash_copy_indirect.
(update_plt_info, find_plt_ent): New functions.
(ppc_elf_check_relocs): Handle R_PPC_PLTREL24 with non-zero addend
and adjust for use of plt list rather than refcount.
(ppc_elf_gc_sweep_hook): Likewise.
(ppc_elf_tls_optimize): Likewise.
(ppc_elf_adjust_dynamic_symbol): Likewise.
(allocate_dynrelocs): Likewise.
(ppc_elf_relax_section): Likewise.
(ppc_elf_relocate_section): Likewise. Adjust R_PPC_PLTREL24 addends
when performing a relocatable link.
(ppc_elf_finish_dynamic_symbol): Likewise. Write .glink stubs here..
(ppc_elf_finish_dynamic_sections): ..rather than here. Use new
pic resolver stub.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index c48d21d..ca51e35 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -349,13 +349,15 @@ struct elf_link_hash_table /* The value to use when initialising got.refcount/offset and plt.refcount/offset in an elf_link_hash_entry. Set to zero when - the values are refcounts. Set to init_offset in - size_dynamic_sections when the values may be offsets. */ - union gotplt_union init_refcount; + the values are refcounts. Set to init_got_offset/init_plt_offset + in size_dynamic_sections when the values may be offsets. */ + union gotplt_union init_got_refcount; + union gotplt_union init_plt_refcount; /* The value to use for got.refcount/offset and plt.refcount/offset when the values may be offsets. Normally (bfd_vma) -1. */ - union gotplt_union init_offset; + union gotplt_union init_got_offset; + union gotplt_union init_plt_offset; /* The number of symbols found in the link which must be put into the .dynsym section. */ |