diff options
author | eager <eager> | 2012-12-11 16:56:50 +0000 |
---|---|---|
committer | eager <eager> | 2012-12-11 16:56:50 +0000 |
commit | 1899a8e6d67cae5a6d7e028820f3d27ab1a8f887 (patch) | |
tree | e105e23160fcd73997ba9dd512e7f1c18737ac23 /include | |
parent | 4450a1ffb745823242d5f73240375928d03627e6 (diff) | |
download | gdb-1899a8e6d67cae5a6d7e028820f3d27ab1a8f887.tar.gz |
Microblaze: Add support for handling TLS symbol suffixes and generating
TLS relocs for General Dynamic and Local Dynamic models.
bfd/Changelog
* reloc.c: Add new relocations
* bfd-in2.h: Regenerated
* libbfd.h: Regenerated
* elf32-microblaze.c (microblaze_elf_howto_raw):
Add TLS relocations
(microblaze_elf_reloc_type_lookup): Likewise
(elf32_mb_link_hash_entry): define TLS reference types
(elf32_mb_link_hash_table): add TLS Local dynamic GOT entry
#define has_tls_reloc if section has TLS relocs
(dtprel_base), (check_unique_offset): New
(microblaze_elf_output_dynamic_relocation): output simple
dynamic relocation into SRELOC.
(microblaze_elf_relocate_section): Accommodate TLS relocations.
(microblaze_elf_check_relocs): Likewise
(update_local_sym_info): New
(microblaze_elf_copy_indirect_symbol): Add tls_mask.
(allocate_dynrelocs): Handle TLS symbol
(microblaze_elf_size_dynamic_sections): Set size and offset
(microblaze_elf_finish_dynamic_symbol): Use
microblaze_elf_output_dynamic_relocation
gas/Changelog
* config/tc-microblaze.c: Define TLS offsets
(md_relax_table): Add TLS offsets
(imm_types), (match_imm), (get_imm_otype): New to support
TLS offsets.
(tc_microblaze_fix_adjustable): Add TLS relocs.
(md_convert_frag): Support TLS offsets.
(md_apply_fix), (md_estimate_size_before_relax), (tc_gen_reloc):
Add TLS relocs
include/Changelog
* elf/microblaze.h: Add TLS relocs to START_RELOC_NUMBERS
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/elf/microblaze.h | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 571fe748128..16ff7e64d9a 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2012-12-11 Edgar E. Iglesias <edgar.iglesias@gmail.com> + + * elf/microblaze.h: Add TLS relocs to START_RELOC_NUMBERS + 2012-11-09 Jason Merrill <jason@redhat.com> * demangle.h (enum demangle_component_type): Add diff --git a/include/elf/microblaze.h b/include/elf/microblaze.h index d3922312270..c4d98213ac2 100644 --- a/include/elf/microblaze.h +++ b/include/elf/microblaze.h @@ -50,6 +50,14 @@ START_RELOC_NUMBERS (elf_microblaze_reloc_type) RELOC_NUMBER (R_MICROBLAZE_GOTOFF_64, 19) /* Offset relative to GOT. */ RELOC_NUMBER (R_MICROBLAZE_GOTOFF_32, 20) /* Offset relative to GOT. */ RELOC_NUMBER (R_MICROBLAZE_COPY, 21) /* Runtime copy. */ + RELOC_NUMBER (R_MICROBLAZE_TLS, 22) /* TLS Reloc */ + RELOC_NUMBER (R_MICROBLAZE_TLSGD, 23) /* TLS General Dynamic */ + RELOC_NUMBER (R_MICROBLAZE_TLSLD, 24) /* TLS Local Dynamic */ + RELOC_NUMBER (R_MICROBLAZE_TLSDTPMOD32, 25) /* TLS Module ID */ + RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL32, 26) /* TLS Offset Within TLS Block */ + RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL64, 27) /* TLS Offset Within TLS Block */ + RELOC_NUMBER (R_MICROBLAZE_TLSGOTTPREL32, 28) /* TLS Offset From Thread Pointer */ + RELOC_NUMBER (R_MICROBLAZE_TLSTPREL32, 29) /* TLS Offset From Thread Pointer */ END_RELOC_NUMBERS (R_MICROBLAZE_max) |