diff options
author | Alan Modra <amodra@gmail.com> | 2012-05-17 02:43:36 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2012-05-17 02:43:36 +0000 |
commit | ab6dce23364e9c7a29d06da1bb26a5923fdb84f9 (patch) | |
tree | 4b42161ebb0694a186041d7078a96b07ed552808 /bfd | |
parent | e1dad58d73dcf0ab1cabb92b2e2a79106486b1b0 (diff) | |
download | binutils-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/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf32-ppc.c | 8 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 6 |
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; } |