bfd/
authorAlan Modra <amodra@gmail.com>
Thu, 17 May 2012 02:43:36 +0000 (02:43 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 17 May 2012 02:43:36 +0000 (02:43 +0000)
* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Don't make _DYNAMIC,
_GLOBAL_OFFSET_TABLE_ or _PROCEDURE_LINKAGE_TABLE_ absolute.
* elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Don't make _DYNAMIC
absolute.
ld/testsuite/
* ld-powerpc/tlsso.r: Update for dynamic sym changes.
* ld-powerpc/tlsso32.d: Likewise.
* ld-powerpc/tlsso32.r: Likewise.
* ld-powerpc/tlstocso.r: Likewise.

bfd/ChangeLog
bfd/elf32-ppc.c
bfd/elf64-ppc.c
ld/testsuite/ChangeLog
ld/testsuite/ld-powerpc/tlsso.r
ld/testsuite/ld-powerpc/tlsso32.d
ld/testsuite/ld-powerpc/tlsso32.r
ld/testsuite/ld-powerpc/tlstocso.r

index 62f5c1e..f9262d2 100644 (file)
@@ -1,5 +1,12 @@
 2012-05-17  Alan Modra  <amodra@gmail.com>
 
+       * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Don't make _DYNAMIC,
+       _GLOBAL_OFFSET_TABLE_ or _PROCEDURE_LINKAGE_TABLE_ absolute.
+       * elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Don't make _DYNAMIC
+       absolute.
+
+2012-05-17  Alan Modra  <amodra@gmail.com>
+
        * elf32-ppc.c (has_tls_reloc, has_tls_get_addr_call, has_vle_insns,
        is_ppc_vle): Move to..
        * elf32-ppc.h: ..here, making is_ppc_vle a macro.
index 0835a91..63d77d2 100644 (file)
@@ -9139,14 +9139,6 @@ ppc_elf_finish_dynamic_symbol (bfd *output_bfd,
   fprintf (stderr, "\n");
 #endif
 
-  /* Mark some specially defined symbols as absolute.  */
-  if (strcmp (h->root.root.string, "_DYNAMIC") == 0
-      || (!htab->is_vxworks
-         && (h == htab->elf.hgot
-             || strcmp (h->root.root.string,
-                        "_PROCEDURE_LINKAGE_TABLE_") == 0)))
-    sym->st_shndx = SHN_ABS;
-
   return TRUE;
 }
 \f
index f1f0f8f..482cf4d 100644 (file)
@@ -13869,7 +13869,7 @@ static bfd_boolean
 ppc64_elf_finish_dynamic_symbol (bfd *output_bfd,
                                 struct bfd_link_info *info,
                                 struct elf_link_hash_entry *h,
-                                Elf_Internal_Sym *sym)
+                                Elf_Internal_Sym *sym ATTRIBUTE_UNUSED)
 {
   struct ppc_link_hash_table *htab;
   struct plt_entry *ent;
@@ -13938,10 +13938,6 @@ ppc64_elf_finish_dynamic_symbol (bfd *output_bfd,
       bfd_elf64_swap_reloca_out (output_bfd, &rela, loc);
     }
 
-  /* Mark some specially defined symbols as absolute.  */
-  if (strcmp (h->root.root.string, "_DYNAMIC") == 0)
-    sym->st_shndx = SHN_ABS;
-
   return TRUE;
 }
 
index f33d90d..0ca1cb2 100644 (file)
@@ -1,3 +1,10 @@
+2012-05-17  Alan Modra  <amodra@gmail.com>
+
+       * ld-powerpc/tlsso.r: Update for dynamic sym changes.
+       * ld-powerpc/tlsso32.d: Likewise.
+       * ld-powerpc/tlsso32.r: Likewise.
+       * ld-powerpc/tlstocso.r: Likewise.
+
 2012-05-16  Meador Inge  <meadori@codesourcery.com>
 
        * ld-arm/gc-hidden-1.d: Fix disassembly pattern.
index 9171449..c417dbb 100644 (file)
@@ -107,7 +107,7 @@ Symbol table '\.symtab' contains [0-9]+ entries:
 .* TLS +LOCAL +DEFAULT +7 ie4
 .* TLS +LOCAL +DEFAULT +7 le4
 .* TLS +LOCAL +DEFAULT +7 le5
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
+.* OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
 .* NOTYPE +LOCAL +DEFAULT +6 00000010\.plt_call\.__tls_get_addr\+0
 .* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve
 .* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr
index b4e45d8..8d4ac4e 100644 (file)
@@ -39,8 +39,9 @@ Disassembly of section \.text:
 .*:    a9 49 00 00     lha     r10,0\(r9\)
 Disassembly of section \.got:
 
-.* <\.got>:
-       \.\.\.
+.* <_GLOBAL_OFFSET_TABLE_-0x28>:
+#...
 .*:    4e 80 00 21     blrl
-.*:    00 01 03 ec     .*
-       \.\.\.
+.* <_GLOBAL_OFFSET_TABLE_>:
+.*:    00 01 03 ec .*
+#pass
index 1217d68..0eb4a3c 100644 (file)
@@ -110,8 +110,8 @@ Symbol table '\.symtab' contains [0-9]+ entries:
 .* TLS +LOCAL +DEFAULT +7 ie4
 .* TLS +LOCAL +DEFAULT +7 le4
 .* TLS +LOCAL +DEFAULT +7 le5
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
-.* OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+.* OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
+.* OBJECT +LOCAL +DEFAULT +10 _GLOBAL_OFFSET_TABLE_
 .* TLS +GLOBAL +DEFAULT +UND gd
 .* TLS +GLOBAL +DEFAULT +8 le0
 .* NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
index 040d69f..211a260 100644 (file)
@@ -103,7 +103,7 @@ Symbol table '\.symtab' contains [0-9]+ entries:
 .* TLS +LOCAL +DEFAULT +7 le4
 .* TLS +LOCAL +DEFAULT +7 le5
 .* NOTYPE +LOCAL +DEFAULT +10 \.Lie0
-.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
+.* OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
 .* NOTYPE +LOCAL +DEFAULT +6 00000010\.plt_call\.__tls_get_addr\+0
 .* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve
 .* NOTYPE +LOCAL +DEFAULT +UND \.__tls_get_addr