[ARC] More fixes for TLS.
authorCupertino Miranda <cmiranda@synopsys.com>
Thu, 4 Oct 2018 09:17:03 +0000 (10:17 +0100)
committerCupertino Miranda <cmiranda@synopsys.com>
Fri, 9 Nov 2018 15:34:37 +0000 (15:34 +0000)
commitd07b621f4cc585607c7eee7cc58ce54a7dde52f5
tree766c99bcb5938ebb172201b347c5ecf2fb42e183
parentfda57deda7cc82d89ceee1afa966313247e60b1e
[ARC] More fixes for TLS.

Added warning for static TLS reloc.

Fixed issue related to TLS and partial static linking of libraries:
  This issue was detected when throwing exceptions in C++ while linking with
  -static-libstdc++.
  TLS relocation from the libstdc++ wasn't being patched as local now that it was
  static linked with the executable.

Fix for TLS with static and pie. Problem introduced by earlier patch:
  Fixes the following glibc tests:
   - elf/tst-tls1-static

bfd/
    xxxx-xx-xx  Cupertino Miranda  <cmiranda@synopsys.com>

    * arc-got.h (arc_got_entry_type_for_reloc): Changed to
      correct static TLS relocs.
            * elf32-arc.c (elf_arc_check_relocs): Introduced warning to
      TLS relocs which require -fPIC.
      (arc_create_forced_local_got_entries_for_tls): Created.
      Traverses list of GOT entries to be resolved statically
      when needed.
      (elf_arc_finish_dynamic_sections): Changed. Calls
      arc_create_forced_local_got_entries_for_tls for each known
      possibly GOT symbol.
bfd/arc-got.h
bfd/elf32-arc.c