diff options
author | Alan Modra <modra@gmail.com> | 2011-10-10 17:21:05 +0400 |
---|---|---|
committer | Alan Modra <modra@gmail.com> | 2011-10-10 17:21:05 +0400 |
commit | 4fc8a5c90acb2501178613b04bca32492953884a (patch) | |
tree | 4509575175c83466ed90589f86e2d131f5791a27 | |
parent | f9a3814899346f092851ba90cd6d199efb9f78ff (diff) |
include/elf/
* ppc64.h (R_PPC64_TOCSAVE): Add.
bfd/
* elf64-ppc.c (ppc64_elf_howto_table): Add R_PPC64_TOCSAVE entry.
(struct ppc_link_hash_table): Add tocsave_htab.
(struct tocsave_entry): New.
(tocsave_htab_hash, tocsave_htab_eq, tocsave_find): New functions.
(ppc64_elf_link_hash_table_create): Create tocsave_htab..
(ppc64_elf_link_hash_table_free): ..and delete it.
(build_plt_stub): Always put STD_R2_40R1 first.
(ppc64_elf_size_stubs): Check for R_PPC64_TOCSAVE following reloc
on plt call. If present add prologue nop location to tocsave_htab.
(ppc64_elf_relocate_section): Convert prologue nop to std. Skip
first insn of plt call stub when R_PPC64_TOCSAVE present.
-rw-r--r-- | include/elf/ChangeLog | 4 | ||||
-rw-r--r-- | include/elf/ppc64.h | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index eece8a8f1..369654393 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,7 @@ +2011-10-10 Alan Modra <amodra@gmail.com> + + * ppc64.h (R_PPC64_TOCSAVE): Add. + 2011-10-05 DJ Delorie <dj@redhat.com> * rx.h (E_FLAG_RX_PID): New. diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h index a18edd68f..f1c80f188 100644 --- a/include/elf/ppc64.h +++ b/include/elf/ppc64.h @@ -1,5 +1,5 @@ /* PPC64 ELF support for BFD. - Copyright 2003, 2005, 2009, 2010 Free Software Foundation, Inc. + Copyright 2003, 2005, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -139,6 +139,7 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type) RELOC_NUMBER (R_PPC64_DTPREL16_HIGHESTA, 106) RELOC_NUMBER (R_PPC64_TLSGD, 107) RELOC_NUMBER (R_PPC64_TLSLD, 108) + RELOC_NUMBER (R_PPC64_TOCSAVE, 109) #ifndef RELOC_MACROS_GEN_FUNC /* Fake relocation only used internally by ld. */ |