From ab6dce23364e9c7a29d06da1bb26a5923fdb84f9 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 17 May 2012 02:43:36 +0000 Subject: 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. --- bfd/ChangeLog | 7 +++++++ bfd/elf32-ppc.c | 8 -------- bfd/elf64-ppc.c | 6 +----- 3 files changed, 8 insertions(+), 13 deletions(-) (limited to 'bfd') 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 + * 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 + * 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; } -- cgit v1.1