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 62f5c1e5f8f65677a77415cfa0b824a9b2b40252..f9262d2339ca251356168b3b2853cd0beb30c3ca 100644 (file)
@@ -1,3 +1,10 @@
+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,
index 0835a91f7c681659d4ea79b1a33e085883216319..63d77d26a5f244cd37a1a818476ba99a300c49ad 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 f1f0f8f7b057556af991c8663fe90f142c30e56d..482cf4d0fb32eb6c89e82086b9f9d7f9e1f880ac 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 f33d90d2b4b8628606bdddf6d9a1d0bd16302dde..0ca1cb2539b5fc1edc3f4f6c7249ad2ae7224a4b 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 9171449f241880d16c9e57aa102d707e0626f8d2..c417dbb89b95490e41ef1e9e8e0f8ace6a306034 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 b4e45d8745d9818977059fa59be5dace6d34bfab..8d4ac4ef700f75d5accb5e35b29a18b24a17f5c0 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 1217d68412e26544e15f4c512b7810018a0a6d3c..0eb4a3c3d31cd540aa4548e79ff17d0401aaad3a 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 040d69fa48a5219d106bc02784219df5df8c9b7e..211a2605464c2dbc1131bfd14b7db985b70fae1c 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