STT_GNU_IFUNC support for PowerPC.

This commit is contained in:
Alan Modra 2009-07-10 12:19:55 +00:00
parent 08373ab21a
commit b7c9eef432
3 changed files with 20 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2009-07-10 Alan Modra <amodra@bigpond.net.au>
* 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 <jakub@redhat.com> 2009-07-03 Jakub Jelinek <jakub@redhat.com>
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value

View File

@ -71,6 +71,14 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_SECTOFF_HA, 36) RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
RELOC_NUMBER (R_PPC_ADDR30, 37) 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. */ /* Relocs added to support TLS. */
RELOC_NUMBER (R_PPC_TLS, 67) RELOC_NUMBER (R_PPC_TLS, 67)
RELOC_NUMBER (R_PPC_DTPMOD32, 68) 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_BIT_FLD, 115)
RELOC_NUMBER (R_PPC_EMB_RELSDA, 116) RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
#ifndef RELOC_MACROS_GEN_FUNC /* Support STT_GNU_IFUNC plt calls. */
/* Fake relocations for branch stubs, only used internally by ld. */ RELOC_NUMBER (R_PPC_IRELATIVE, 248)
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
/* These are GNU extensions used in PIC code sequences. */ /* These are GNU extensions used in PIC code sequences. */
RELOC_NUMBER (R_PPC_REL16, 249) RELOC_NUMBER (R_PPC_REL16, 249)

View File

@ -139,6 +139,9 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type)
RELOC_NUMBER (R_PPC64_TLSGD, 107) RELOC_NUMBER (R_PPC64_TLSGD, 107)
RELOC_NUMBER (R_PPC64_TLSLD, 108) 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. */ /* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253) RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254) RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254)