This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Blackfin patch: Add new FD-PIC relocs
- From: Bernd Schmidt <bernds_cb1 at t-online dot de>
- To: binutils at sources dot redhat dot com
- Date: Sat, 25 Mar 2006 19:23:34 +0100
- Subject: Blackfin patch: Add new FD-PIC relocs
I've ported the FRV implementation for FD-PIC ELF binaries to the
Blackfin. This is the first patch, it adds new relocation types.
Committed.
Bernd
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/include/ChangeLog,v
retrieving revision 1.354
diff -c -p -r1.354 ChangeLog
*** ChangeLog 17 Feb 2006 14:36:25 -0000 1.354
--- ChangeLog 25 Mar 2006 18:21:16 -0000
***************
*** 1,3 ****
--- 1,13 ----
+ 2006-03-25 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * elf/bfin.h (R_BFIN_GOT17M4, R_BFIN_GOTHI, R_BFIN_GOTLO,
+ R_BFIN_FUNCDESC, R_BFIN_FUNCDESC_GOT17M4, R_BFIN_FUNCDESC_GOTHI,
+ R_BFIN_FUNCDESC_GOTLO, R_BFIN_FUNCDESC_VALUE,
+ R_BFIN_FUNCDESC_GOTOFF17M4, R_BFIN_FUNCDESC_GOTOFFHI,
+ R_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_GOTOFF17M4, R_BFIN_GOTOFFHI,
+ R_BFIN_GOTOFFLO): New relocs.
+ (EF_BFIN_PIC, EF_BFIN_FDPIC, EF_BFIN_PIC_FLAGS): New macros.
+
2006-02-17 Shrirang Khisti <shrirangk@kpitcummins.com>
Anil Paranjape <anilp1@kpitcummins.com>
Shilin Shakti <shilins@kpitcummins.com>
Index: elf/bfin.h
===================================================================
RCS file: /cvs/src/src/include/elf/bfin.h,v
retrieving revision 1.1
diff -c -p -r1.1 bfin.h
*** elf/bfin.h 30 Sep 2005 15:12:52 -0000 1.1
--- elf/bfin.h 25 Mar 2006 18:21:16 -0000
*************** START_RELOC_NUMBERS (elf_bfin_reloc_type
*** 43,48 ****
--- 43,63 ----
RELOC_NUMBER (R_byte2_data, 0x11) /* 0x11, 0x00) .byte2 var = symbol */
RELOC_NUMBER (R_byte4_data, 0x12) /* 0x12, 0x00) .byte4 var = symbol and .var var=symbol */
RELOC_NUMBER (R_pcrel11, 0x13) /* 0x13, 0x00) lsetup part b */
+ RELOC_NUMBER (R_BFIN_GOT17M4, 0x14)
+ RELOC_NUMBER (R_BFIN_GOTHI, 0x15)
+ RELOC_NUMBER (R_BFIN_GOTLO, 0x16)
+ RELOC_NUMBER (R_BFIN_FUNCDESC, 0x17)
+ RELOC_NUMBER (R_BFIN_FUNCDESC_GOT17M4, 0x18)
+ RELOC_NUMBER (R_BFIN_FUNCDESC_GOTHI, 0x19)
+ RELOC_NUMBER (R_BFIN_FUNCDESC_GOTLO, 0x1a)
+ RELOC_NUMBER (R_BFIN_FUNCDESC_VALUE, 0x1b)
+ RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFF17M4, 0x1c)
+ RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFHI, 0x1d)
+ RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFLO, 0x1e)
+ RELOC_NUMBER (R_BFIN_GOTOFF17M4, 0x1f)
+ RELOC_NUMBER (R_BFIN_GOTOFFHI, 0x20)
+ RELOC_NUMBER (R_BFIN_GOTOFFLO, 0x21)
+
RELOC_NUMBER (R_push, 0xE0)
RELOC_NUMBER (R_const, 0xE1)
RELOC_NUMBER (R_add, 0xE2)
*************** START_RELOC_NUMBERS (elf_bfin_reloc_type
*** 69,72 ****
--- 84,92 ----
RELOC_NUMBER (R_BFIN_GNU_VTENTRY, 0x43) /* C++, gnu only */
END_RELOC_NUMBERS (R_max)
+ /* Processor specific flags for the ELF header e_flags field. */
+ #define EF_BFIN_PIC 0x00000001 /* -fpic */
+ #define EF_BFIN_FDPIC 0x00000002 /* -mfdpic */
+
+ #define EF_BFIN_PIC_FLAGS (EF_BFIN_PIC | EF_BFIN_FDPIC)
#endif /* _ELF_BFIN_H */