+2015-02-17  Alan Modra  <amodra@gmail.com>
+
+       PR ld/17975
+       * elflink.c (struct elf_outext_info): Remove need_second_pass
+       and second_pass.
+       (elf_link_output_extsym): Delete code handling second forced
+       local pass.  Move code emitting NULL STT_FILE symbol later, so
+       that it can be omitted if forced local is stripped.  Don't
+       emit the NULL STT_FILE if no file symbols have been output.
+       (bfd_elf_final_link): Remove second forced local pass.
+       * elf32-ppc.c (add_stub_sym): Set linker_def on linker syms.
+       (ppc_elf_size_dynamic_sections): Likewise.
+       * elf64-ppc.c (ppc_build_one_stub): Likewise.
+       (build_global_entry_stubs): Likewise.
+       (ppc64_elf_build_stubs): Likewise.
+
 2015-02-16  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/17975
 
       sh->ref_regular_nonweak = 1;
       sh->forced_local = 1;
       sh->non_elf = 0;
+      sh->root.linker_def = 1;
     }
   return TRUE;
 }
              sh->ref_regular_nonweak = 1;
              sh->forced_local = 1;
              sh->non_elf = 0;
+             sh->root.linker_def = 1;
            }
          sh = elf_link_hash_lookup (&htab->elf, "__glink_PLTresolve",
                                     TRUE, FALSE, FALSE);
              sh->ref_regular_nonweak = 1;
              sh->forced_local = 1;
              sh->non_elf = 0;
+             sh->root.linker_def = 1;
            }
        }
     }
 
          h->ref_regular_nonweak = 1;
          h->forced_local = 1;
          h->non_elf = 0;
+         h->root.linker_def = 1;
        }
     }
 
                h->ref_regular_nonweak = 1;
                h->forced_local = 1;
                h->non_elf = 0;
+               h->root.linker_def = 1;
              }
          }
 
              h->ref_regular_nonweak = 1;
              h->forced_local = 1;
              h->non_elf = 0;
+             h->root.linker_def = 1;
            }
        }
       plt0 = (htab->elf.splt->output_section->vma
 
 {
   bfd_boolean failed;
   bfd_boolean localsyms;
-  bfd_boolean need_second_pass;
-  bfd_boolean second_pass;
   bfd_boolean file_sym_done;
   struct elf_final_link_info *flinfo;
 };
     {
       if (!h->forced_local)
        return TRUE;
-      if (eoinfo->second_pass
-         && !((h->root.type == bfd_link_hash_defined
-               || h->root.type == bfd_link_hash_defweak)
-              && h->root.u.def.section->output_section != NULL))
-       return TRUE;
-
-      if (!eoinfo->file_sym_done && eoinfo->flinfo->filesym_count)
-       {
-         /* Output a FILE symbol so that following locals are not associated
-            with the wrong input file.  */
-         memset (&sym, 0, sizeof (sym));
-         sym.st_info = ELF_ST_INFO (STB_LOCAL, STT_FILE);
-         sym.st_shndx = SHN_ABS;
-         if (!elf_link_output_sym (eoinfo->flinfo, NULL, &sym,
-                                   bfd_und_section_ptr, NULL))
-           return FALSE;
-
-         eoinfo->file_sym_done = TRUE;
-       }
     }
   else
     {
        input_sec = h->root.u.def.section;
        if (input_sec->output_section != NULL)
          {
-           if (eoinfo->localsyms && flinfo->filesym_count == 1)
-             {
-               bfd_boolean second_pass_sym
-                 = h->forced_local && !h->root.linker_def;
-
-               eoinfo->need_second_pass |= second_pass_sym;
-               if (eoinfo->second_pass != second_pass_sym)
-                 return TRUE;
-             }
-
            sym.st_shndx =
              _bfd_elf_section_from_bfd_section (flinfo->output_bfd,
                                                 input_sec->output_section);
   if (strip || (input_sec->flags & SEC_EXCLUDE) != 0)
     return TRUE;
 
+  /* Output a FILE symbol so that following locals are not associated
+     with the wrong input file.  We need one for forced local symbols
+     if we've seen more than one FILE symbol or when we have exactly
+     one FILE symbol but global symbols are present in a file other
+     than the one with the FILE symbol.  We also need one if linker
+     defined symbols are present.  In practice these conditions are
+     always met, so just emit the FILE symbol unconditionally.  */
+  if (eoinfo->localsyms
+      && !eoinfo->file_sym_done
+      && eoinfo->flinfo->filesym_count != 0)
+    {
+      Elf_Internal_Sym fsym;
+
+      memset (&fsym, 0, sizeof (fsym));
+      fsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_FILE);
+      fsym.st_shndx = SHN_ABS;
+      if (!elf_link_output_sym (eoinfo->flinfo, NULL, &fsym,
+                               bfd_und_section_ptr, NULL))
+       return FALSE;
+
+      eoinfo->file_sym_done = TRUE;
+    }
+
   indx = bfd_get_symcount (flinfo->output_bfd);
   ret = elf_link_output_sym (flinfo, h->root.root.string, &sym, input_sec, h);
   if (ret == 0)
   eoinfo.failed = FALSE;
   eoinfo.flinfo = &flinfo;
   eoinfo.localsyms = TRUE;
-  eoinfo.need_second_pass = FALSE;
-  eoinfo.second_pass = FALSE;
   eoinfo.file_sym_done = FALSE;
   bfd_hash_traverse (&info->hash->table, elf_link_output_extsym, &eoinfo);
   if (eoinfo.failed)
     return FALSE;
 
-  if (eoinfo.need_second_pass)
-    {
-      eoinfo.second_pass = TRUE;
-      bfd_hash_traverse (&info->hash->table, elf_link_output_extsym, &eoinfo);
-      if (eoinfo.failed)
-       return FALSE;
-    }
-
   /* If backend needs to output some local symbols not present in the hash
      table, do it now.  */
   if (bed->elf_backend_output_arch_local_syms
 
+2015-02-17  Alan Modra  <amodra@gmail.com>
+
+       PR ld/17975
+       * ld-aarch64/gc-tls-relocs.d, * ld-alpha/tlspic.rd,
+       * ld-cris/libdso-2.d, * ld-i386/tlsdesc-nacl.rd, * ld-i386/tlsdesc.rd,
+       * ld-i386/tlsnopic-nacl.rd, * ld-i386/tlsnopic.rd,
+       * ld-i386/tlspic-nacl.rd, * ld-i386/tlspic.rd, * ld-ia64/tlspic.rd,
+       * ld-powerpc/tlsexe.r, * ld-powerpc/tlsexetoc.r,
+       * ld-powerpc/tlsso.r, * ld-powerpc/tlstocso.r,
+       * ld-s390/tlspic.rd, * ld-s390/tlspic_64.rd,
+       * ld-sparc/tlssunnopic32.rd, * ld-sparc/tlssunnopic64.rd,
+       * ld-sparc/tlssunpic32.rd, * ld-sparc/tlssunpic64.rd,
+       * ld-tic6x/shlib-1.rd, * ld-tic6x/shlib-1b.rd, * ld-tic6x/shlib-1r.rd,
+       * ld-tic6x/shlib-1rb.rd, * ld-tic6x/shlib-noindex.rd,
+       * ld-x86-64/tlsdesc-nacl.rd, * ld-x86-64/tlsdesc.rd,
+       * ld-x86-64/tlspic-nacl.rd, * ld-x86-64/tlspic.rd: Update.
+
 2015-02-16  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/17975
 
 0+8000 l    d  \.text  0+ \.text
 0+9000 l    d  \.got   0+ \.got
 0+0000 l    df \*ABS\* 0+ .*
-0+0000 l       \*UND\* 0+ __tls_get_addr
 0+0000 l    df \*ABS\* 0+ 
+0+0000 l       \*UND\* 0+ __tls_get_addr
 0+9000 l     O \.got   0+ _GLOBAL_OFFSET_TABLE_
 0+8000 g       \.text  0+ _start
 
 
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl7
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
-.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
-.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH1
+.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh3
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH2
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH7
+.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh7
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh8
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH4
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH6
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH8
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh1
+.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh2
 .* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh6
 .* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg8
 
  +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +7 sl7
  +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +7 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
+ +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +8 sH1
  +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_
  +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
- +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +8 sH1
  +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +7 sh3
  +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +8 sH2
  +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +8 sH7
  +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +8 sH6
  +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +8 sH8
  +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +7 sh1
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +7 sh2
  +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +7 sh6
  +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
 
  +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +7 sl7
  +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +7 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
+ +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +8 sH1
  +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_
  +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
- +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +8 sH1
  +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +7 sh3
  +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +8 sH2
  +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +8 sH7
  +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +8 sH6
  +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +8 sH8
  +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +7 sh1
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +7 sh2
  +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +7 sh6
  +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
 
  +[0-9]+: 0+10 +0 +TLS +LOCAL +DEFAULT +6 bl5
 .* FILE +LOCAL +DEFAULT +ABS 
  +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +7 _DYNAMIC
- +[0-9]+: 0*1001031c +0 +OBJECT +LOCAL +DEFAULT +9 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+1c +0 +TLS +LOCAL +DEFAULT +6 sh3
  +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +6 sh4
  +[0-9]+: 0+14 +0 +TLS +LOCAL +DEFAULT +6 sh1
+ +[0-9]+: 0*1001031c +0 +OBJECT +LOCAL +DEFAULT +9 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+18 +0 +TLS +LOCAL +DEFAULT +6 sh2
  +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg3
  +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg4
 
  +[0-9]+: 0+10 +0 +TLS +LOCAL +DEFAULT +6 bl5
 .* FILE +LOCAL +DEFAULT +ABS 
  +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +7 _DYNAMIC
- +[0-9]+: 0+218c +0 +OBJECT +LOCAL +DEFAULT +9 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+1c +0 +TLS +LOCAL +DEFAULT +6 sh3
  +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +6 sh4
  +[0-9]+: 0+14 +0 +TLS +LOCAL +DEFAULT +6 sh1
+ +[0-9]+: 0+218c +0 +OBJECT +LOCAL +DEFAULT +9 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+18 +0 +TLS +LOCAL +DEFAULT +6 sh2
  +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg3
  +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg4
 
  +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +8 sl7
  +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
  +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +8 sh3
  +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +9 sH2
  +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +9 sH7
  +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +9 sH6
  +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +9 sH8
  +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +8 sh1
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +8 sh2
  +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +8 sh6
  +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8
 
  +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +8 sl7
  +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
  +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +8 sh3
  +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +9 sH2
  +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +9 sH7
  +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +9 sH6
  +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +9 sH8
  +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +8 sh1
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +8 sh2
  +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +8 sh6
  +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8
 
 .* TLS +LOCAL +DEFAULT +10 sl6
 .* TLS +LOCAL +DEFAULT +10 sl7
 .* TLS +LOCAL +DEFAULT +10 sl8
+.* FILE +LOCAL +DEFAULT +ABS 
 .* TLS +LOCAL +DEFAULT +11 sH1
+.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
 .* TLS +LOCAL +DEFAULT +10 sh3
 .* TLS +LOCAL +DEFAULT +11 sH2
 .* TLS +LOCAL +DEFAULT +11 sH7
 .* TLS +LOCAL +DEFAULT +11 sH6
 .* TLS +LOCAL +DEFAULT +11 sH8
 .* TLS +LOCAL +DEFAULT +10 sh1
+.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +10 sh2
 .* TLS +LOCAL +DEFAULT +10 sh6
-.* FILE +LOCAL +DEFAULT +ABS .*
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +GLOBAL +DEFAULT +10 sg8
 .* TLS +GLOBAL +DEFAULT +10 sg3
 .* TLS +GLOBAL +DEFAULT +10 sg4
 
 .* TLS +LOCAL +DEFAULT +8 le5
 .* FILE +LOCAL +DEFAULT +ABS 
 .* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
-.* (FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt)
-.* NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve
-.* NOTYPE +LOCAL +DEFAULT +7 .*\.plt_call\.__tls_get_addr(|_opt)
+.* (NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve|(FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt))
+.* (NOTYPE +LOCAL +DEFAULT +7 .*\.plt_call\.__tls_get_addr(|_opt)|NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve)
+.* ((FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt)|NOTYPE +LOCAL +DEFAULT +7 .*\.plt_call\.__tls_get_addr(|_opt))
 .* GLOBAL +DEFAULT +UND gd
 .* GLOBAL +DEFAULT +9 le0
 .* GLOBAL +DEFAULT +9 ld0
 
 .* NOTYPE +LOCAL +DEFAULT +12 \.Lie0
 .* FILE +LOCAL +DEFAULT +ABS 
 .* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
-.* (FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt)
-.* NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve
-.* NOTYPE +LOCAL +DEFAULT +7 .*\.plt_call\.__tls_get_addr(|_opt)
+.* (NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve|(FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt))
+.* (NOTYPE +LOCAL +DEFAULT +7 .*\.plt_call\.__tls_get_addr(|_opt)|NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve)
+.* ((FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt)|NOTYPE +LOCAL +DEFAULT +7 .*\.plt_call\.__tls_get_addr(|_opt))
 .* TLS +GLOBAL +DEFAULT +UND gd
 .* TLS +GLOBAL +DEFAULT +9 le0
 .* TLS +GLOBAL +DEFAULT +9 ld0
 
 .* TLS +LOCAL +DEFAULT +7 le5
 .* FILE +LOCAL +DEFAULT +ABS 
 .* OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
-.* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr
 .* NOTYPE +LOCAL +DEFAULT +6 .*\.plt_call\.__tls_get_addr
 .* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve
+.* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr
 .* TLS +GLOBAL +DEFAULT +UND gd
 .* TLS +GLOBAL +DEFAULT +8 le0
 .* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
 
 .* NOTYPE +LOCAL +DEFAULT +11 \.Lie0
 .* FILE +LOCAL +DEFAULT +ABS 
 .* OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
-.* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr
 .* NOTYPE +LOCAL +DEFAULT +6 .*\.plt_call\.__tls_get_addr
 .* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve
+.* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr
 .* TLS +GLOBAL +DEFAULT +UND gd
 .* TLS +GLOBAL +DEFAULT +8 le0
 .* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
 
 .* TLS +LOCAL +DEFAULT +8 sl7
 .* TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +9 sH1
+.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
 .* TLS +LOCAL +DEFAULT +8 sh3
 .* TLS +LOCAL +DEFAULT +9 sH2
 .* TLS +LOCAL +DEFAULT +9 sH7
 .* TLS +LOCAL +DEFAULT +9 sH6
 .* TLS +LOCAL +DEFAULT +9 sH8
 .* TLS +LOCAL +DEFAULT +8 sh1
+.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +8 sh2
 .* TLS +LOCAL +DEFAULT +8 sh6
 .* TLS +GLOBAL +DEFAULT +8 sg8
 
 .* TLS +LOCAL +DEFAULT +8 sl7
 .* TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +9 sH1
+.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
 .* TLS +LOCAL +DEFAULT +8 sh3
 .* TLS +LOCAL +DEFAULT +9 sH2
 .* TLS +LOCAL +DEFAULT +9 sH7
 .* TLS +LOCAL +DEFAULT +9 sH6
 .* TLS +LOCAL +DEFAULT +9 sH8
 .* TLS +LOCAL +DEFAULT +8 sh1
+.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +8 sh2
 .* TLS +LOCAL +DEFAULT +8 sh6
 .* TLS +GLOBAL +DEFAULT +8 sg8
 
 .* TLS +LOCAL +DEFAULT +6 bl5
 .* FILE +LOCAL +DEFAULT +ABS 
 .* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +6 sh3
+.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
 .* TLS +LOCAL +DEFAULT +6 sh4
 .* TLS +LOCAL +DEFAULT +6 sh1
+.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +6 sh2
 .* FUNC +GLOBAL +DEFAULT +5 fn3
 .* TLS +GLOBAL +DEFAULT +UND sg1
 
 .* TLS +LOCAL +DEFAULT +6 bl5
 .* FILE +LOCAL +DEFAULT +ABS 
 .* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +6 sh3
+.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
 .* TLS +LOCAL +DEFAULT +6 sh4
 .* TLS +LOCAL +DEFAULT +6 sh1
+.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +6 sh2
 .* FUNC +GLOBAL +DEFAULT +5 fn3
 .* TLS +GLOBAL +DEFAULT +UND sg1
 
 .* TLS +LOCAL +DEFAULT +7 sl7
 .* TLS +LOCAL +DEFAULT +7 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +8 sH1
+.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
 .* TLS +LOCAL +DEFAULT +7 sh3
 .* TLS +LOCAL +DEFAULT +8 sH2
 .* TLS +LOCAL +DEFAULT +8 sH7
+.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
 .* TLS +LOCAL +DEFAULT +7 sh7
 .* TLS +LOCAL +DEFAULT +7 sh8
 .* TLS +LOCAL +DEFAULT +8 sH4
 .* TLS +LOCAL +DEFAULT +8 sH6
 .* TLS +LOCAL +DEFAULT +8 sH8
 .* TLS +LOCAL +DEFAULT +7 sh1
+.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +7 sh2
 .* TLS +LOCAL +DEFAULT +7 sh6
 .* TLS +GLOBAL +DEFAULT +7 sg8
 
 .* TLS +LOCAL +DEFAULT +7 sl7
 .* TLS +LOCAL +DEFAULT +7 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +8 sH1
+.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
 .* TLS +LOCAL +DEFAULT +7 sh3
 .* TLS +LOCAL +DEFAULT +8 sH2
 .* TLS +LOCAL +DEFAULT +8 sH7
+.* OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
 .* TLS +LOCAL +DEFAULT +7 sh7
 .* TLS +LOCAL +DEFAULT +7 sh8
 .* TLS +LOCAL +DEFAULT +8 sH4
 .* TLS +LOCAL +DEFAULT +8 sH6
 .* TLS +LOCAL +DEFAULT +8 sH8
 .* TLS +LOCAL +DEFAULT +7 sh1
+.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +7 sh2
 .* TLS +LOCAL +DEFAULT +7 sh6
 .* TLS +GLOBAL +DEFAULT +7 sg8
 
 .* 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
 .* 00000000     0 FILE    LOCAL  DEFAULT  ABS 
 .* 0000817c     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
 
 .* 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
 .* 00000000     0 FILE    LOCAL  DEFAULT  ABS 
 .* 0000817c     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
 
 .* 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
 .* 00000000     0 FILE    LOCAL  DEFAULT  ABS 
 .* 0000817c     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
 
 .* 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
 .* 00000000     0 FILE    LOCAL  DEFAULT  ABS 
 .* 0000817c     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
 
 .* 10000080     0 FUNC    LOCAL  HIDDEN    10 sub1
 .* 00000000     0 FILE    LOCAL  DEFAULT  ABS 
 .* 00008188     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000130     4 OBJECT  LOCAL  DEFAULT   13 c
+.* 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
 .* 10000100     0 NOTYPE  LOCAL  DEFAULT   11 __c6xabi_DSBT_BASE
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
 .* 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
 
  +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +8 sl7
  +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
+ +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1
  +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +8 _TLS_MODULE_BASE_
  +[0-9]+: 0+100104e8 +0 +OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
- +[0-9]+: 0+10010680 +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
- +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1
  +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +8 sh3
  +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +9 sH2
  +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +9 sH7
  +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +9 sH6
  +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +9 sH8
  +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +8 sh1
+ +[0-9]+: 0+10010680 +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +8 sh2
  +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +8 sh6
  +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8
 
  +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +8 sl7
  +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
+ +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1
  +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +8 _TLS_MODULE_BASE_
  +[0-9]+: 0+2011b8 +0 +OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
- +[0-9]+: 0+201350 +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
- +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1
  +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +8 sh3
  +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +9 sH2
  +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +9 sH7
  +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +9 sH6
  +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +9 sH8
  +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +8 sh1
+ +[0-9]+: 0+201350 +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
  +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +8 sh2
  +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +8 sh6
  +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8
 
 .* TLS +LOCAL +DEFAULT +8 sl7
 .* TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
-.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +9 sH1
+.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
 .* TLS +LOCAL +DEFAULT +8 sh3
 .* TLS +LOCAL +DEFAULT +9 sH2
 .* TLS +LOCAL +DEFAULT +9 sH7
 .* TLS +LOCAL +DEFAULT +9 sH6
 .* TLS +LOCAL +DEFAULT +9 sH8
 .* TLS +LOCAL +DEFAULT +8 sh1
+.* OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +8 sh2
 .* TLS +LOCAL +DEFAULT +8 sh6
 .* TLS +GLOBAL +DEFAULT +8 sg8
 
 .* TLS +LOCAL +DEFAULT +8 sl7
 .* TLS +LOCAL +DEFAULT +8 sl8
 .* FILE +LOCAL +DEFAULT +ABS 
-.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +9 sH1
+.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
 .* TLS +LOCAL +DEFAULT +8 sh3
 .* TLS +LOCAL +DEFAULT +9 sH2
 .* TLS +LOCAL +DEFAULT +9 sH7
 .* TLS +LOCAL +DEFAULT +9 sH6
 .* TLS +LOCAL +DEFAULT +9 sH8
 .* TLS +LOCAL +DEFAULT +8 sh1
+.* OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
 .* TLS +LOCAL +DEFAULT +8 sh2
 .* TLS +LOCAL +DEFAULT +8 sh6
 .* TLS +GLOBAL +DEFAULT +8 sg8