* elf32-sh.c (sh_elf_optimized_tls_reloc, sh_elf_mkobject,
sh_elf_object_p, dtpoff_base): New functions. (sh_elf_howto_table): Add TLS relocs. (sh_reloc_map): Likewise. (sh_elf_info_to_howto): Support TLS relocs. (elf_sh_link_hash_entry): Add tls_type and tls_tpoff32. (sh_elf_hash_entry, sh_elf_tdata, sh_elf_local_got_tls_type): New macros. (sh_elf_obj_tdata): New. (elf_sh_link_hash_table): Add tls_ldm_got. (sh_elf_link_hash_table_create): Clear refcount of tls_ldm_got. (allocate_dynrelocs): Support TLS relocs. (sh_elf_size_dynamic_sections): Likewise. (sh_elf_relocate_section): Support TLS relocs. Don't try to find .rela.got section when found already. Return false after printing error about unresolvable relocation. (sh_elf_gc_sweep_hook): Support TLS relocs. (sh_elf_check_relocs): Likewise. (sh_elf_finish_dynamic_symbol): Likewise. (bfd_elf32_mkobject, elf_backend_object_p): Define for TLS case. * reloc.c: Add SH TLS relocs. * libbfd.h: Regenerate.
This commit is contained in:
parent
5dc976556d
commit
3376eaf577
961
bfd/elf32-sh.c
961
bfd/elf32-sh.c
File diff suppressed because it is too large
Load Diff
@ -1005,6 +1005,14 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
||||
"BFD_RELOC_SH_IMM_HI16",
|
||||
"BFD_RELOC_SH_IMM_HI16_PCREL",
|
||||
"BFD_RELOC_SH_PT_16",
|
||||
"BFD_RELOC_SH_TLS_GD_32",
|
||||
"BFD_RELOC_SH_TLS_LD_32",
|
||||
"BFD_RELOC_SH_TLS_LDO_32",
|
||||
"BFD_RELOC_SH_TLS_IE_32",
|
||||
"BFD_RELOC_SH_TLS_LE_32",
|
||||
"BFD_RELOC_SH_TLS_DTPMOD32",
|
||||
"BFD_RELOC_SH_TLS_DTPOFF32",
|
||||
"BFD_RELOC_SH_TLS_TPOFF32",
|
||||
"BFD_RELOC_THUMB_PCREL_BRANCH9",
|
||||
"BFD_RELOC_THUMB_PCREL_BRANCH12",
|
||||
"BFD_RELOC_THUMB_PCREL_BRANCH23",
|
||||
|
16
bfd/reloc.c
16
bfd/reloc.c
@ -2575,6 +2575,22 @@ ENUMX
|
||||
BFD_RELOC_SH_IMM_HI16_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_SH_PT_16
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_GD_32
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_LD_32
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_LDO_32
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_IE_32
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_LE_32
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_DTPMOD32
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_DTPOFF32
|
||||
ENUMX
|
||||
BFD_RELOC_SH_TLS_TPOFF32
|
||||
ENUMDOC
|
||||
Hitachi SH relocs. Not all of these appear in object files.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user