aboutsummaryrefslogtreecommitdiff
path: root/bfd/libbfd.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2003-02-04 14:50:50 +0000
committerAlan Modra <amodra@gmail.com>2003-02-04 14:50:50 +0000
commit411e1bfb666af7d6a76dcb8a1bf1a3145a6d66cc (patch)
tree424ff41f3965e7ae724c5663a8353fb7bb4ec747 /bfd/libbfd.h
parent5255ffd3dff772f1a99b83dad6b9b802643f4a0f (diff)
downloadgdb-411e1bfb666af7d6a76dcb8a1bf1a3145a6d66cc.zip
gdb-411e1bfb666af7d6a76dcb8a1bf1a3145a6d66cc.tar.gz
gdb-411e1bfb666af7d6a76dcb8a1bf1a3145a6d66cc.tar.bz2
* reloc.c: Add PPC and PPC64 TLS relocs.
* libbfd.h: Regenerate. * bfd-in2.h: Regenerate. * elf64-ppc.c (TP_OFFSET, DTP_OFFSET): Declare. (ppc64_elf_howto_raw): Add TLS howto's. Adjust R_PPC64_NONE to be against a 32 bit field. (ppc64_elf_reloc_type_lookup): Handle TLS relocs. (_ppc64_elf_section_data): Add t_symndx and comments. (ppc64_elf_section_data): Use elf_section_data macro. (ppc64_elf_new_section_hook): American spelling. (struct got_entry, struct plt_entry): New. (MUST_BE_DYN_RELOC): Rename from IS_ABSOLUTE_RELOC. (struct ppc_stub_hash_entry): Add "addend" field. (struct ppc_link_hash_entry): Add "tls_type". (TLS_TLS, TLS_GD_LD, TLS_LD, TLS_TPREL, TLS_DTPREL, TLS_EXPLICIT): Define. (struct ppc_link_hash_table): Add tls_sec, tls_get_addr, tlsld_got. (link_hash_newfunc): Init new fields. (ppc64_elf_link_hash_table_create): Likewise. Set init_relcount and init_offset to NULL. (ppc64_elf_copy_indirect_symbol): Copy got and plt info. Don't call _bfd_elf_link_hash_copy_indirect, rather insert relevant code from there. (update_local_sym_info, update_plt_info): New functions. (ppc64_elf_check_relocs): Use them. Handle TLS relocs. Adjust GOT handling to use got.glist rather than got.refcount. Likewise for PLT. (ppc64_elf_gc_sweep_hook): Handle TLS relocs, new GOT and PLT lists. (func_desc_adjust): Adjust for new PLT list. (ppc64_elf_adjust_dynamic_symbol): Likewise. (get_sym_h, get_tls_type): New functions. (ppc64_elf_edit_opd): Remove unused variable. Use get_sym_h. (ppc64_elf_tls_optimize): New function. (allocate_dynrelocs): Adjust for new PLT and GOT lists. Allocate TLS relocs. (ppc64_elf_size_dynamic_sections): Likewise. (ppc_type_of_stub): Adjust for new PLT list. (ppc_build_one_stub): Likewise. (ppc64_elf_size_stubs): Likewise. Use get_sym_h. Treat __tls_get_addr calls specially. (ppc64_elf_relocate_section): Adjust for new GOT and PLT lists. Handle TLS relocs. Report local syms using bfd_elf_local_sym_name. Don't init GOT entries that have a reloc. Generate GOT relocs here.. (ppc64_elf_finish_dynamic_symbol): ..not here. Adjust for PLT list. * elf64-ppc.h (ppc64_elf_tls_optimize): Declare.
Diffstat (limited to 'bfd/libbfd.h')
-rw-r--r--bfd/libbfd.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 4ee9d87..222b23d 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -991,6 +991,46 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_PPC64_TOC16_LO_DS",
"BFD_RELOC_PPC64_PLTGOT16_DS",
"BFD_RELOC_PPC64_PLTGOT16_LO_DS",
+ "BFD_RELOC_PPC_TLS",
+ "BFD_RELOC_PPC_DTPMOD",
+ "BFD_RELOC_PPC_TPREL16",
+ "BFD_RELOC_PPC_TPREL16_LO",
+ "BFD_RELOC_PPC_TPREL16_HI",
+ "BFD_RELOC_PPC_TPREL16_HA",
+ "BFD_RELOC_PPC_TPREL",
+ "BFD_RELOC_PPC_DTPREL16",
+ "BFD_RELOC_PPC_DTPREL16_LO",
+ "BFD_RELOC_PPC_DTPREL16_HI",
+ "BFD_RELOC_PPC_DTPREL16_HA",
+ "BFD_RELOC_PPC_DTPREL",
+ "BFD_RELOC_PPC_GOT_TLSGD16",
+ "BFD_RELOC_PPC_GOT_TLSGD16_LO",
+ "BFD_RELOC_PPC_GOT_TLSGD16_HI",
+ "BFD_RELOC_PPC_GOT_TLSGD16_HA",
+ "BFD_RELOC_PPC_GOT_TLSLD16",
+ "BFD_RELOC_PPC_GOT_TLSLD16_LO",
+ "BFD_RELOC_PPC_GOT_TLSLD16_HI",
+ "BFD_RELOC_PPC_GOT_TLSLD16_HA",
+ "BFD_RELOC_PPC_GOT_TPREL16",
+ "BFD_RELOC_PPC_GOT_TPREL16_LO",
+ "BFD_RELOC_PPC_GOT_TPREL16_HI",
+ "BFD_RELOC_PPC_GOT_TPREL16_HA",
+ "BFD_RELOC_PPC_GOT_DTPREL16",
+ "BFD_RELOC_PPC_GOT_DTPREL16_LO",
+ "BFD_RELOC_PPC_GOT_DTPREL16_HI",
+ "BFD_RELOC_PPC_GOT_DTPREL16_HA",
+ "BFD_RELOC_PPC64_TPREL16_DS",
+ "BFD_RELOC_PPC64_TPREL16_LO_DS",
+ "BFD_RELOC_PPC64_TPREL16_HIGHER",
+ "BFD_RELOC_PPC64_TPREL16_HIGHERA",
+ "BFD_RELOC_PPC64_TPREL16_HIGHEST",
+ "BFD_RELOC_PPC64_TPREL16_HIGHESTA",
+ "BFD_RELOC_PPC64_DTPREL16_DS",
+ "BFD_RELOC_PPC64_DTPREL16_LO_DS",
+ "BFD_RELOC_PPC64_DTPREL16_HIGHER",
+ "BFD_RELOC_PPC64_DTPREL16_HIGHERA",
+ "BFD_RELOC_PPC64_DTPREL16_HIGHEST",
+ "BFD_RELOC_PPC64_DTPREL16_HIGHESTA",
"BFD_RELOC_I370_D12",
"BFD_RELOC_CTOR",
"BFD_RELOC_ARM_PCREL_BRANCH",