Fixes done to TLS.
authorCupertino Miranda <cmiranda@synopsys.com>
Tue, 14 Jun 2016 20:55:44 +0000 (22:55 +0200)
committerClaudiu Zissulescu <claziss@synopsys.com>
Mon, 11 Jul 2016 13:24:35 +0000 (15:24 +0200)
commit08759e0fc8b0de1c56ad388212a104f3a6d61c25
treefccc3f881e487bed7755dcfe11bf14b74ffef238
parent36897971c8d022d5c28cc8af4b2f1df04a7e964f
Fixes done to TLS.

TLS relocations did not support multiple TLS modes for the same
symbol in a single object file.
Refactored how GOT and TLS is implemented. Removed code duplications between
local and global symbols conditioning.

bfd/ChangeLog:

2016-06-14  Cupertino Miranda  <cmiranda@synopsys.com>
  * arc-got.h: Moved got related structures from elf32-arc.c to
    this file. More precisely, tls_type_e, tls_got_entries, got_entry.
  * (arc_get_local_got_ents,
     got_entry_for_type,
     new_got_entry_to_list,
     tls_type_for_reloc,
     symbol_has_entry_of_type,
     get_got_entry_list_for_symbol,
     arc_got_entry_type_for_reloc,
     ADD_SYMBOL_REF_SEC_AND_RELOC,
     arc_fill_got_info_for_reloc,
     relocate_fix_got_relocs_for_got_info,
     create_got_dynrelocs_for_single_entry,
     create_got_dynrelocs_for_got_info): Added to file.
  * elf32-arc.c: Removed GOT & TLS related structs and functions to
                     arc-got.h.

Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
bfd/ChangeLog
bfd/arc-got.h [new file with mode: 0644]
bfd/elf32-arc.c
include/elf/arc-reloc.def