summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2009-07-10 12:19:58 +0000
committerAlan Modra <amodra@bigpond.net.au>2009-07-10 12:19:58 +0000
commita41d1fd12841fb986e1feed9b5b216c31db8cfaa (patch)
tree954467f760ce70f4e9c5fe29f33496b7ef944c8b /include
parente5b20d464811ef1d9ed7e05a34976b3d76af9da0 (diff)
downloadbinutils-redhat-a41d1fd12841fb986e1feed9b5b216c31db8cfaa.tar.gz
STT_GNU_IFUNC support for PowerPC.
Diffstat (limited to 'include')
-rw-r--r--include/elf/ChangeLog7
-rw-r--r--include/elf/ppc.h17
-rw-r--r--include/elf/ppc64.h3
3 files changed, 20 insertions, 7 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 640824e5a0..3936b2049b 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -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>
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
diff --git a/include/elf/ppc.h b/include/elf/ppc.h
index 8f4ed9e18b..14c643a549 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 c768180b46..4644b75c22 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)