* config.bfd (targ_selvecs, targ64_selvecs): Add iamcu_elf32_vec,
        i386_pei_vec and x86_64_pei_vec for Solaris2/x86.
 
-2015-10-02  Renlin Li  <renlin.li@arm.com>
-
-       * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Add
-       TLSIE_MOVW_GOTTPREL_G1.
-       (aarch64_tls_transition_without_check): Add
-       TLSIE_MOVW_GOTTPREL_G1 to TLSLE_MOVW_TPREL_G2
-       transition for local symbol.
-       (elfNN_aarch64_tls_relax): Add a argument to pass tp offset.
-       Add TLSIE_MOVW_GOTTPREL_G1 relaxation.
-       (elfNN_aarch64_relocate_section): Call elfNN_aarch64_tls_relax
-       with new argument.
-
 2015-10-02  Renlin Li  <renlin.li@arm.com>
 
        * elfnn-aarch64.c (aarch64_tls_transition_without_check):  Add
 
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21  \
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19   \
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSIE_LDNN_GOTTPREL_LO12_NC        \
-   || (R_TYPE) == BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1     \
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC          \
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21           \
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSLD_ADR_PREL21)
       return is_local
        ? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
        : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1;
-
-    case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
-      return is_local
-       ? BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
-       : r_type;
 #endif
 
     default:
 static bfd_reloc_status_type
 elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
                         bfd *input_bfd, bfd_byte *contents,
-                        Elf_Internal_Rela *rel, struct elf_link_hash_entry *h,
-                        bfd_vma relocation ATTRIBUTE_UNUSED)
+                        Elf_Internal_Rela *rel, struct elf_link_hash_entry *h)
 {
   bfd_boolean is_local = h == NULL;
   unsigned int r_type = ELFNN_R_TYPE (rel->r_info);
 
     case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
       return bfd_reloc_continue;
-
-    case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
-      if (is_local)
-       {
-         /* Large IE->LE relaxation:
-            mrs tp, tpidr_el0
-            movz tx, #:gottprel_g1:var    => movz tx, #:tprel_g2:var, lsl #32
-            movk tx, #:gottprel_g0_nc:var => movk tx, #:tprel_g1_nc:var, lsl #16
-            ldr tx, [gp, tx]              => movk tx, #:tprel_g0_nc:var
-            add tx, tx, tp
-          */
-         uint32_t value;
-         BFD_ASSERT (ELFNN_R_TYPE (rel[1].r_info)
-                     == AARCH64_R (TLSIE_MOVW_GOTTPREL_G0_NC));
-         BFD_ASSERT (rel->r_offset + 4 == rel[1].r_offset);
-
-         value = (relocation & ~(bfd_vma) 0xffffffff) >>  32;
-         insn = bfd_getl32 (contents + rel->r_offset);
-         insn &= 0xff80001f;
-         insn |= (0x400000 + (value << 5));
-         bfd_putl32 (insn, contents + rel->r_offset + 0);
-
-         value = (relocation & (bfd_vma) 0xffff0000) >> 16;
-         insn = bfd_getl32 (contents + rel->r_offset + 4);
-         insn &= 0xff80001f;
-         insn |= (0x200000 + (value << 5));
-         bfd_putl32 (insn, contents + rel->r_offset + 4);
-
-         value = relocation & (bfd_vma) 0xffff;
-         insn = bfd_getl32 (contents + rel->r_offset + 4);
-         insn &= 0xff80001f;
-         insn |= (value << 5);
-         bfd_putl32 (insn, contents + rel->r_offset + 8);
-
-         /* Relocations are already resolved here.  */
-         rel->r_info = ELFNN_R_INFO (STN_UNDEF, R_AARCH64_NONE);
-         rel[1].r_info = ELFNN_R_INFO (STN_UNDEF, R_AARCH64_NONE);
-         return bfd_reloc_ok;
-       }
-
-      return bfd_reloc_continue;
 #endif
 
     case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
          howto = elfNN_aarch64_howto_from_bfd_reloc (bfd_r_type);
          BFD_ASSERT (howto != NULL);
          r_type = howto->type;
-         r = elfNN_aarch64_tls_relax (globals, input_bfd, contents, rel, h,
-                                      relocation - tpoff_base (info));
+         r = elfNN_aarch64_tls_relax (globals, input_bfd, contents, rel, h);
          unresolved_reloc = 0;
        }
       else
 
+++ /dev/null
-#source: tls-relax-large-ie-le.s
-#ld: -T relocs.ld -e0
-#objdump: -dr
-#...
-0000000000010000 <test>:
-  +10000:      d53bd041        mrs     x1, tpidr_el0
-  +10004:      d2c00006        movz    x6, #0x0, lsl #32
-  +10008:      f2a00006        movk    x6, #0x0, lsl #16
-  +1000c:      f2800206        movk    x6, #0x10
-  +10010:      8b0100c6        add     x6, x6, x1
-  +10014:      d2c00007        movz    x7, #0x0, lsl #32
-  +10018:      f2a00007        movk    x7, #0x0, lsl #16
-  +1001c:      f2800287        movk    x7, #0x14
-  +10020:      8b0100e7        add     x7, x7, x1