Don't create got section while processing TLS Local Exec relocations.
authorRenlin Li <renlin.li@arm.com>
Wed, 31 Oct 2018 14:38:46 +0000 (14:38 +0000)
committerRenlin Li <renlin.li@arm.com>
Wed, 31 Oct 2018 15:09:36 +0000 (15:09 +0000)
For Local Exec TLS model, the offset of the variable from the thread pointer
can be computed at static link time. This doesn't require GOT indirection.

The initial change is a bad fix for a problem during TLS GD -> LE relaxation.
The proper fix is to check whether _GLOBAL_OFFSET_TABLE_ is referenced,
create got section if yes.  And the fix is already in the repository.

bfd/

2018-10-31  Renlin Li  <renlin.li@arm.com>

    * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Don't create got
    section for Local Exec TLS model.

bfd/ChangeLog
bfd/elfnn-aarch64.c

index 0959688f616d7e285ace4ab9d1afe1293632444f..383ad4414c657b537f83fe63c39d980ee5546d5f 100644 (file)
@@ -1,3 +1,8 @@
+2018-10-31  Renlin Li  <renlin.li@arm.com>
+
+       * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Don't create got
+       section for Local Exec TLS model.
+
 2018-10-24  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/23818
index ee09cd74117c717a399d0de262187b2dff57f5f9..e2cfa86d9561d4e649e9df2840088e3307d6c38f 100644 (file)
@@ -7565,9 +7565,6 @@ elfNN_aarch64_check_relocs (bfd *abfd, struct bfd_link_info *info,
        case BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:
        case BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:
        case BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:
-       case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1:
-       case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
-       case BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2:
          {
            unsigned got_type;
            unsigned old_got_type;