From 3b421ab3bc02af734421775cbdbcfe98553c65a6 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 10 Oct 2011 13:21:07 +0000 Subject: 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. --- include/elf/ChangeLog | 4 ++++ include/elf/ppc64.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'include/elf') diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index eece8a8..3696543 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,7 @@ +2011-10-10 Alan Modra + + * ppc64.h (R_PPC64_TOCSAVE): Add. + 2011-10-05 DJ Delorie * rx.h (E_FLAG_RX_PID): New. diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h index a18edd6..f1c80f1 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. */ -- cgit v1.1