Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <modra@gmail.com>2009-07-10 16:19:55 +0400
committerAlan Modra <modra@gmail.com>2009-07-10 16:19:55 +0400
commitb7c9eef432112d3d87a8d5c11303d50af76a13ab (patch)
treea2eeeb24bdc7eef5c9ff09908d73ff572c4f7abd /include/elf
parent08373ab21a59f630e2e52d20d0151b34ef5867c0 (diff)
STT_GNU_IFUNC support for PowerPC.
Diffstat (limited to 'include/elf')
-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 640824e5a..3936b2049 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 8f4ed9e18..14c643a54 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 c768180b4..4644b75c2 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)