aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-05-17 02:43:36 +0000
committerAlan Modra <amodra@gmail.com>2012-05-17 02:43:36 +0000
commitab6dce23364e9c7a29d06da1bb26a5923fdb84f9 (patch)
tree4b42161ebb0694a186041d7078a96b07ed552808 /bfd
parente1dad58d73dcf0ab1cabb92b2e2a79106486b1b0 (diff)
downloadbinutils-ab6dce23364e9c7a29d06da1bb26a5923fdb84f9.zip
binutils-ab6dce23364e9c7a29d06da1bb26a5923fdb84f9.tar.gz
binutils-ab6dce23364e9c7a29d06da1bb26a5923fdb84f9.tar.bz2
bfd/
* 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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf32-ppc.c8
-rw-r--r--bfd/elf64-ppc.c6
3 files changed, 8 insertions, 13 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 62f5c1e..f9262d2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 0835a91..63d77d2 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -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;
}
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index f1f0f8f..482cf4d 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -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;
}