From b7c9eef432112d3d87a8d5c11303d50af76a13ab Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 10 Jul 2009 12:19:55 +0000 Subject: STT_GNU_IFUNC support for PowerPC. --- include/elf/ChangeLog | 7 +++++++ include/elf/ppc.h | 17 ++++++++++------- include/elf/ppc64.h | 3 +++ 3 files changed, 20 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index 640824e..3936b20 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,10 @@ +2009-07-10 Alan Modra + + * ppc.h (R_PPC_IRELATIVE): Add. + (R_PPC_RELAX32, R_PPC_RELAX32PC, + R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Renumber. + * ppc64.h (R_PPC64_IRELATIVE): Add. + 2009-07-03 Jakub Jelinek * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value diff --git a/include/elf/ppc.h b/include/elf/ppc.h index 8f4ed9e..14c643a 100644 --- a/include/elf/ppc.h +++ b/include/elf/ppc.h @@ -71,6 +71,14 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) RELOC_NUMBER (R_PPC_SECTOFF_HA, 36) RELOC_NUMBER (R_PPC_ADDR30, 37) +#ifndef RELOC_MACROS_GEN_FUNC +/* Fake relocations for branch stubs, only used internally by ld. */ + RELOC_NUMBER (R_PPC_RELAX32, 48) + RELOC_NUMBER (R_PPC_RELAX32PC, 49) + RELOC_NUMBER (R_PPC_RELAX32_PLT, 50) + RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 51) +#endif + /* Relocs added to support TLS. */ RELOC_NUMBER (R_PPC_TLS, 67) RELOC_NUMBER (R_PPC_DTPMOD32, 68) @@ -122,13 +130,8 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115) RELOC_NUMBER (R_PPC_EMB_RELSDA, 116) -#ifndef RELOC_MACROS_GEN_FUNC -/* Fake relocations for branch stubs, only used internally by ld. */ - RELOC_NUMBER (R_PPC_RELAX32, 245) - RELOC_NUMBER (R_PPC_RELAX32PC, 246) - RELOC_NUMBER (R_PPC_RELAX32_PLT, 247) - RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 248) -#endif +/* Support STT_GNU_IFUNC plt calls. */ + RELOC_NUMBER (R_PPC_IRELATIVE, 248) /* These are GNU extensions used in PIC code sequences. */ RELOC_NUMBER (R_PPC_REL16, 249) diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h index c768180..4644b75 100644 --- a/include/elf/ppc64.h +++ b/include/elf/ppc64.h @@ -139,6 +139,9 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type) RELOC_NUMBER (R_PPC64_TLSGD, 107) RELOC_NUMBER (R_PPC64_TLSLD, 108) +/* Support STT_GNU_IFUNC plt calls. */ + RELOC_NUMBER (R_PPC64_IRELATIVE, 248) + /* These are GNU extensions to enable C++ vtable garbage collection. */ RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253) RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254) -- cgit v1.1