This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: SPU relocs for PPU syms
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: binutils at sourceware dot org
- Date: Sat, 12 May 2007 16:13:10 +0930
- Subject: Re: SPU relocs for PPU syms
- References: <20070511030322.GE635@bubble.grove.modra.org>
On Fri, May 11, 2007 at 12:33:22PM +0930, Alan Modra wrote:
> * spu.h (R_SPU_PPU32, R_SPU_PPU64): Define.
Andrew Pinski pointed out that I broke the ABI with this patch, since
reloc 14 was already defined by the ABI doc, but unused in GNU
binutils. Oops.
include/elf/
* spu.h (R_SPU_ADDR16X): Define.
(R_SPU_PPU32, R_SPU_PPU64): Renumber.
bfd/
* elf32-spu.c (elf_howto_table): Add howto for R_SPU_ADDR16X.
Index: include/elf/spu.h
===================================================================
RCS file: /cvs/src/src/include/elf/spu.h,v
retrieving revision 1.2
diff -u -p -r1.2 spu.h
--- include/elf/spu.h 11 May 2007 03:10:10 -0000 1.2
+++ include/elf/spu.h 12 May 2007 04:53:05 -0000
@@ -39,8 +39,9 @@ START_RELOC_NUMBERS (elf_spu_reloc_type)
RELOC_NUMBER (R_SPU_ADDR10I, 11)
RELOC_NUMBER (R_SPU_ADDR16I, 12)
RELOC_NUMBER (R_SPU_REL32, 13)
- RELOC_NUMBER (R_SPU_PPU32, 14)
- RELOC_NUMBER (R_SPU_PPU64, 15)
+ RELOC_NUMBER (R_SPU_ADDR16X, 14)
+ RELOC_NUMBER (R_SPU_PPU32, 15)
+ RELOC_NUMBER (R_SPU_PPU64, 16)
END_RELOC_NUMBERS (R_SPU_max)
/* Program header extensions */
Index: bfd/elf32-spu.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-spu.c,v
retrieving revision 1.16
diff -u -p -r1.16 elf32-spu.c
--- bfd/elf32-spu.c 11 May 2007 03:10:11 -0000 1.16
+++ bfd/elf32-spu.c 12 May 2007 04:52:47 -0000
@@ -78,6 +78,9 @@ static reloc_howto_type elf_howto_table[
HOWTO (R_SPU_REL32, 0, 2, 32, TRUE, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_REL32",
FALSE, 0, 0xffffffff, TRUE),
+ HOWTO (R_SPU_ADDR16X, 0, 2, 16, FALSE, 7, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "SPU_ADDR16X",
+ FALSE, 0, 0x007fff80, FALSE),
HOWTO (R_SPU_PPU32, 0, 2, 32, FALSE, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_PPU32",
FALSE, 0, 0xffffffff, FALSE),
--
Alan Modra
IBM OzLabs - Linux Technology Centre