From 98c2367bf4b6a2a074f0f3943ef1f21e3ae878c7 Mon Sep 17 00:00:00 2001
From: Alan Modra <modra@gmail.com>
Date: Wed, 11 May 2005 14:08:45 +0000
Subject: [PATCH] 	* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC,
 R_PPC_RELAX32_PLT, 	R_PPC_RELAX32PC_PLT) Adjust. 	(R_PPC_REL16,
 R_PPC_REL16_LO, R_PPC_REL16_HI, R_PPC_REL16_HA): Define. 
 (DT_PPC_GLINK): Define.

---
 include/elf/ChangeLog | 13 ++++++++++---
 include/elf/ppc.h     | 20 ++++++++++++++------
 2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index cf848c247..d9d736059 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,15 +1,22 @@
+2005-05-11  Alan Modra  <amodra@bigpond.net.au>
+
+	* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
+	R_PPC_RELAX32PC_PLT) Adjust.
+	(R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI, R_PPC_REL16_HA): Define.
+	(DT_PPC_GLINK): Define.
+
 2005-05-10  Nick Clifton  <nickc@redhat.com>
 
 	* Update the address and phone number of the FSF organization in
 	the GPL notices in the following files:
-        alpha.h, arc.h, arm.h, avr.h, common.h, cr16c.h, cris.h, crx.h,
+	alpha.h, arc.h, arm.h, avr.h, common.h, cr16c.h, cris.h, crx.h,
 	d10v.h, d30v.h, dlx.h, dwarf.h, dwarf2.h, external.h, fr30.h,
 	frv.h, h8.h, hppa.h, i370.h, i386.h, i860.h, i960.h, ia64.h,
 	internal.h, ip2k.h, iq2000.h, m32r.h, m68hc11.h, m68k.h, mcore.h,
 	mips.h, mmix.h, mn10200.h, mn10300.h, msp430.h, openrisc.h,
 	or32.h, pj.h, ppc.h, ppc64.h, reloc-macros.h, s390.h, sh.h,
 	sparc.h, v850.h,  vax.h, x86-64.h, xstormy16.h,	xtensa.h
-	
+
 2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>
 
 	Moved from ../ChangeLog
@@ -101,7 +108,7 @@
 	(R_PPC_RELAX32, R_PPC_RELAX32PC): Adjust value.
 
 2004-12-22  Klaus Rudolph  <lts-rudolph@gmx.de>
-	
+
 	* avr.h (R_AVR_LDI, R_AVR_6, R_AVR_6_ADIW): New relocs.
 
 2004-12-16  Richard Sandiford  <rsandifo@redhat.com>
diff --git a/include/elf/ppc.h b/include/elf/ppc.h
index 27b28f9b8..1ccbda347 100644
--- a/include/elf/ppc.h
+++ b/include/elf/ppc.h
@@ -120,12 +120,17 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
   RELOC_NUMBER (R_PPC_EMB_BIT_FLD,	115)
   RELOC_NUMBER (R_PPC_EMB_RELSDA,	116)
 
-/* Fake relocations for branch stubs. This will keep them
-   together.  */
-#define R_PPC_RELAX32 249
-#define R_PPC_RELAX32PC 250
-#define R_PPC_RELAX32_PLT 251
-#define R_PPC_RELAX32PC_PLT 252
+/* Fake relocations for branch stubs, only used internally by ld.  */
+#define R_PPC_RELAX32 245
+#define R_PPC_RELAX32PC 246
+#define R_PPC_RELAX32_PLT 247
+#define R_PPC_RELAX32PC_PLT 248
+
+/* These are GNU extensions used in PIC code sequences.  */
+  RELOC_NUMBER (R_PPC_REL16,		249)
+  RELOC_NUMBER (R_PPC_REL16_LO,		250)
+  RELOC_NUMBER (R_PPC_REL16_HI,		251)
+  RELOC_NUMBER (R_PPC_REL16_HA,		252)
 
 /* These are GNU extensions to enable C++ vtable garbage collection.  */
   RELOC_NUMBER (R_PPC_GNU_VTINHERIT,	253)
@@ -140,6 +145,9 @@ END_RELOC_NUMBERS (R_PPC_max)
 #define IS_PPC_TLS_RELOC(R) \
   ((R) >= R_PPC_TLS && (R) <= R_PPC_GOT_DTPREL16_HA)
 
+/* Specify the start of the .glink section.  */
+#define DT_PPC_GLINK		DT_LOPROC
+
 /* Processor specific flags for the ELF header e_flags field.  */
 
 #define	EF_PPC_EMB		0x80000000	/* PowerPC embedded flag.  */