* bfd-in2.h: Regenerate.

* elf32-s390.c (elf_s390_mkobject, elf_s390_tls_transition,
	s390_tls_reloc, dtpoff_base, tpoff, invalid_tls_insn): New functions.
	(elf_howto_table): Add TLS relocs.
	(elf_s390_reloc_type_lookup): Likewise.
	(elf_s390_link_hash_entry): Add tls_type.
	(elf_s390_hash_entry, elf_s390_obj_tdata, elf_s390_local_got_tls_type):
	New macros.
	(elf_s390_link_hash_table): Add tls_ldm_got.
	(link_hash_newfunc): Initialize tls_type.
	(elf_s390_link_hash_table_create): Initialize refcount of tls_ldm_got.
	(elf_s390_copy_indirect_symbol): Copy tls_type information.
	(elf_s390_check_relocs): Support TLS relocs.
	(elf_s390_gc_sweep_hook): Likewise.
	(allocate_dynrelocs): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject): Define for TLS.
	* elf64-s390.c: Same changes as for elf32-s390.c.
	* libbfd.h: Regenerate.
	* reloc.c: Add s390 TLS relocations.
This commit is contained in:
Martin Schwidefsky 2003-01-24 17:12:42 +00:00
parent 9aa4e50515
commit 69fc87f180
6 changed files with 1662 additions and 124 deletions

View File

@ -1,3 +1,28 @@
2003-01-24 Martin Schwidefsky <schwidefsky@de.ibm.com>
* bfd-in2.h: Regenerate.
* elf32-s390.c (elf_s390_mkobject, elf_s390_tls_transition,
s390_tls_reloc, dtpoff_base, tpoff, invalid_tls_insn): New functions.
(elf_howto_table): Add TLS relocs.
(elf_s390_reloc_type_lookup): Likewise.
(elf_s390_link_hash_entry): Add tls_type.
(elf_s390_hash_entry, elf_s390_obj_tdata, elf_s390_local_got_tls_type):
New macros.
(elf_s390_link_hash_table): Add tls_ldm_got.
(link_hash_newfunc): Initialize tls_type.
(elf_s390_link_hash_table_create): Initialize refcount of tls_ldm_got.
(elf_s390_copy_indirect_symbol): Copy tls_type information.
(elf_s390_check_relocs): Support TLS relocs.
(elf_s390_gc_sweep_hook): Likewise.
(allocate_dynrelocs): Likewise.
(elf_s390_size_dynamic_sections): Likewise.
(elf_s390_relocate_section): Likewise.
(elf_s390_finish_dynamic_symbol): Likewise.
(bfd_elf32_mkobject): Define for TLS.
* elf64-s390.c: Same changes as for elf32-s390.c.
* libbfd.h: Regenerate.
* reloc.c: Add s390 TLS relocations.
2003-01-24 Charles Lepple clepple.ghz.cc
* aclocal.m4: Fix name of --enable-install-libbfd switch.

View File

@ -3024,6 +3024,28 @@ into 22 bits. */
/* 64-bit rel. offset from the GOT to a PLT entry. */
BFD_RELOC_390_PLTOFF64,
/* s390 tls relocations. */
BFD_RELOC_390_TLS_LOAD,
BFD_RELOC_390_TLS_GDCALL,
BFD_RELOC_390_TLS_LDCALL,
BFD_RELOC_390_TLS_GD32,
BFD_RELOC_390_TLS_GD64,
BFD_RELOC_390_TLS_GOTIE12,
BFD_RELOC_390_TLS_GOTIE32,
BFD_RELOC_390_TLS_GOTIE64,
BFD_RELOC_390_TLS_LDM32,
BFD_RELOC_390_TLS_LDM64,
BFD_RELOC_390_TLS_IE32,
BFD_RELOC_390_TLS_IE64,
BFD_RELOC_390_TLS_IEENT,
BFD_RELOC_390_TLS_LE32,
BFD_RELOC_390_TLS_LE64,
BFD_RELOC_390_TLS_LDO32,
BFD_RELOC_390_TLS_LDO64,
BFD_RELOC_390_TLS_DTPMOD,
BFD_RELOC_390_TLS_DTPOFF,
BFD_RELOC_390_TLS_TPOFF,
/* Scenix IP2K - 9-bit register number / data address */
BFD_RELOC_IP2K_FR9,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1217,6 +1217,26 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_390_PLTOFF16",
"BFD_RELOC_390_PLTOFF32",
"BFD_RELOC_390_PLTOFF64",
"BFD_RELOC_390_TLS_LOAD",
"BFD_RELOC_390_TLS_GDCALL",
"BFD_RELOC_390_TLS_LDCALL",
"BFD_RELOC_390_TLS_GD32",
"BFD_RELOC_390_TLS_GD64",
"BFD_RELOC_390_TLS_GOTIE12",
"BFD_RELOC_390_TLS_GOTIE32",
"BFD_RELOC_390_TLS_GOTIE64",
"BFD_RELOC_390_TLS_LDM32",
"BFD_RELOC_390_TLS_LDM64",
"BFD_RELOC_390_TLS_IE32",
"BFD_RELOC_390_TLS_IE64",
"BFD_RELOC_390_TLS_IEENT",
"BFD_RELOC_390_TLS_LE32",
"BFD_RELOC_390_TLS_LE64",
"BFD_RELOC_390_TLS_LDO32",
"BFD_RELOC_390_TLS_LDO64",
"BFD_RELOC_390_TLS_DTPMOD",
"BFD_RELOC_390_TLS_DTPOFF",
"BFD_RELOC_390_TLS_TPOFF",
"BFD_RELOC_IP2K_FR9",
"BFD_RELOC_IP2K_BANK",
"BFD_RELOC_IP2K_ADDR16CJP",

View File

@ -3206,6 +3206,49 @@ ENUM
ENUMDOC
64-bit rel. offset from the GOT to a PLT entry.
ENUM
BFD_RELOC_390_TLS_LOAD
ENUMX
BFD_RELOC_390_TLS_GDCALL
ENUMX
BFD_RELOC_390_TLS_LDCALL
ENUMX
BFD_RELOC_390_TLS_GD32
ENUMX
BFD_RELOC_390_TLS_GD64
ENUMX
BFD_RELOC_390_TLS_GOTIE12
ENUMX
BFD_RELOC_390_TLS_GOTIE32
ENUMX
BFD_RELOC_390_TLS_GOTIE64
ENUMX
BFD_RELOC_390_TLS_LDM32
ENUMX
BFD_RELOC_390_TLS_LDM64
ENUMX
BFD_RELOC_390_TLS_IE32
ENUMX
BFD_RELOC_390_TLS_IE64
ENUMX
BFD_RELOC_390_TLS_IEENT
ENUMX
BFD_RELOC_390_TLS_LE32
ENUMX
BFD_RELOC_390_TLS_LE64
ENUMX
BFD_RELOC_390_TLS_LDO32
ENUMX
BFD_RELOC_390_TLS_LDO64
ENUMX
BFD_RELOC_390_TLS_DTPMOD
ENUMX
BFD_RELOC_390_TLS_DTPOFF
ENUMX
BFD_RELOC_390_TLS_TPOFF
ENUMDOC
s390 tls relocations.
ENUM
BFD_RELOC_IP2K_FR9
ENUMDOC