diff mbox

[V2] elf: Define missing Meta architecture specific relocations

Message ID 20160714151053.20713-1-raj.khem@gmail.com
State New
Headers show

Commit Message

Khem Raj July 14, 2016, 3:10 p.m. UTC
---
2016-07-14   Ross Burton  <ross.burton@intel.com>
	     Khem Raj  <raj.khem@gmail.com>

	* elf/elf.h (R_METAG_HIADDR16, R_METAG_LOADDR16,
	R_METAG_ADDR32, R_METAG_NONE, R_METAG_RELBRANCH,
	R_METAG_GETSETOFF, R_METAG_REG32OP1, R_METAG_REG32OP2,
	R_METAG_REG32OP3, R_METAG_REG16OP1, R_METAG_REG16OP2,
	R_METAG_REG16OP3, R_METAG_REG32OP4, R_METAG_HIOG,
	R_METAG_LOOG, R_METAG_GNU_VTINHERIT, R_METAG_GNU_VTENTRY,
	R_METAG_HI16_GOTOFF, R_METAG_LO16_GOTOFF,
	R_METAG_GETSET_GOTOFF, R_METAG_GETSET_GOT, R_METAG_HI16_GOTPC,
	R_METAG_LO16_GOTPC, R_METAG_HI16_PLT, R_METAG_LO16_PLT,
	R_METAG_RELBRANCH_PLT, R_METAG_GOTOFF, R_METAG_PLT,
	R_METAG_COPY, R_METAG_JMP_SLOT, R_METAG_RELATIVE,
	R_METAG_GLOB_DAT, R_METAG_TLS_TPOFF, R_METAG_TLS_DTPMOD,
	R_METAG_TLS_DTPOFF): New.
 elf/elf.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

-- 
2.9.0

Comments

Khem Raj July 16, 2016, 8 a.m. UTC | #1
On Fri, Jul 15, 2016 at 4:50 AM, Will Newton <will.newton@gmail.com> wrote:
> On Thu, Jul 14, 2016 at 4:10 PM, Khem Raj <raj.khem@gmail.com> wrote:

>> ---

>> 2016-07-14   Ross Burton  <ross.burton@intel.com>

>>              Khem Raj  <raj.khem@gmail.com>

>>

>>         * elf/elf.h (R_METAG_HIADDR16, R_METAG_LOADDR16,

>>         R_METAG_ADDR32, R_METAG_NONE, R_METAG_RELBRANCH,

>>         R_METAG_GETSETOFF, R_METAG_REG32OP1, R_METAG_REG32OP2,

>>         R_METAG_REG32OP3, R_METAG_REG16OP1, R_METAG_REG16OP2,

>>         R_METAG_REG16OP3, R_METAG_REG32OP4, R_METAG_HIOG,

>>         R_METAG_LOOG, R_METAG_GNU_VTINHERIT, R_METAG_GNU_VTENTRY,

>>         R_METAG_HI16_GOTOFF, R_METAG_LO16_GOTOFF,

>>         R_METAG_GETSET_GOTOFF, R_METAG_GETSET_GOT, R_METAG_HI16_GOTPC,

>>         R_METAG_LO16_GOTPC, R_METAG_HI16_PLT, R_METAG_LO16_PLT,

>>         R_METAG_RELBRANCH_PLT, R_METAG_GOTOFF, R_METAG_PLT,

>>         R_METAG_COPY, R_METAG_JMP_SLOT, R_METAG_RELATIVE,

>>         R_METAG_GLOB_DAT, R_METAG_TLS_TPOFF, R_METAG_TLS_DTPMOD,

>>         R_METAG_TLS_DTPOFF): New.

>>  elf/elf.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++

>>  1 file changed, 47 insertions(+)

>

> This looks ok to me. There are a handful of additional relocs defined

> in binutils but this should suffice to get the build fixed.


Thanks Will, can you help in installing it ?
>

>> diff --git a/elf/elf.h b/elf/elf.h

>> index b6112d9..04400ec 100644

>> --- a/elf/elf.h

>> +++ b/elf/elf.h

>> @@ -3682,6 +3682,53 @@ enum

>>  #define R_BPF_NONE             0       /* No reloc */

>>  #define R_BPF_MAP_FD           1       /* Map fd to pointer */

>>

>> +/* Imagination Meta specific relocations. */

>> +

>> +#define R_METAG_HIADDR16       0

>> +#define R_METAG_LOADDR16       1

>> +#define R_METAG_ADDR32         2       /* 32bit absolute address */

>> +#define R_METAG_NONE           3       /* No reloc */

>> +#define R_METAG_RELBRANCH      4

>> +#define R_METAG_GETSETOFF      5

>> +

>> +/* Backward compatability */

>> +#define R_METAG_REG32OP1       6

>> +#define R_METAG_REG32OP2       7

>> +#define R_METAG_REG32OP3       8

>> +#define R_METAG_REG16OP1       9

>> +#define R_METAG_REG16OP2       10

>> +#define R_METAG_REG16OP3       11

>> +#define R_METAG_REG32OP4       12

>> +

>> +#define R_METAG_HIOG           13

>> +#define R_METAG_LOOG           14

>> +

>> +/* GNU */

>> +#define R_METAG_GNU_VTINHERIT  30

>> +#define R_METAG_GNU_VTENTRY    31

>> +

>> +/* PIC relocations */

>> +#define R_METAG_HI16_GOTOFF    32

>> +#define R_METAG_LO16_GOTOFF    33

>> +#define R_METAG_GETSET_GOTOFF  34

>> +#define R_METAG_GETSET_GOT     35

>> +#define R_METAG_HI16_GOTPC     36

>> +#define R_METAG_LO16_GOTPC     37

>> +#define R_METAG_HI16_PLT       38

>> +#define R_METAG_LO16_PLT       39

>> +#define R_METAG_RELBRANCH_PLT  40

>> +#define R_METAG_GOTOFF         41

>> +#define R_METAG_PLT            42

>> +#define R_METAG_COPY           43

>> +#define R_METAG_JMP_SLOT       44

>> +#define R_METAG_RELATIVE       45

>> +#define R_METAG_GLOB_DAT       46

>> +

>> +/* TLS relocations */

>> +#define R_METAG_TLS_TPOFF      56

>> +#define R_METAG_TLS_DTPMOD     57

>> +#define R_METAG_TLS_DTPOFF     58

>> +

>>  __END_DECLS

>>

>>  #endif /* elf.h */

>> --

>> 2.9.0

>>
Adhemerval Zanella July 18, 2016, 12:57 p.m. UTC | #2
On 18/07/2016 09:39, Will Newton wrote:
> On Sat, Jul 16, 2016 at 9:00 AM, Khem Raj <raj.khem@gmail.com> wrote:

>> On Fri, Jul 15, 2016 at 4:50 AM, Will Newton <will.newton@gmail.com> wrote:

>>> On Thu, Jul 14, 2016 at 4:10 PM, Khem Raj <raj.khem@gmail.com> wrote:

>>>> ---

>>>> 2016-07-14   Ross Burton  <ross.burton@intel.com>

>>>>              Khem Raj  <raj.khem@gmail.com>

>>>>

>>>>         * elf/elf.h (R_METAG_HIADDR16, R_METAG_LOADDR16,

>>>>         R_METAG_ADDR32, R_METAG_NONE, R_METAG_RELBRANCH,

>>>>         R_METAG_GETSETOFF, R_METAG_REG32OP1, R_METAG_REG32OP2,

>>>>         R_METAG_REG32OP3, R_METAG_REG16OP1, R_METAG_REG16OP2,

>>>>         R_METAG_REG16OP3, R_METAG_REG32OP4, R_METAG_HIOG,

>>>>         R_METAG_LOOG, R_METAG_GNU_VTINHERIT, R_METAG_GNU_VTENTRY,

>>>>         R_METAG_HI16_GOTOFF, R_METAG_LO16_GOTOFF,

>>>>         R_METAG_GETSET_GOTOFF, R_METAG_GETSET_GOT, R_METAG_HI16_GOTPC,

>>>>         R_METAG_LO16_GOTPC, R_METAG_HI16_PLT, R_METAG_LO16_PLT,

>>>>         R_METAG_RELBRANCH_PLT, R_METAG_GOTOFF, R_METAG_PLT,

>>>>         R_METAG_COPY, R_METAG_JMP_SLOT, R_METAG_RELATIVE,

>>>>         R_METAG_GLOB_DAT, R_METAG_TLS_TPOFF, R_METAG_TLS_DTPMOD,

>>>>         R_METAG_TLS_DTPOFF): New.

>>>>  elf/elf.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++

>>>>  1 file changed, 47 insertions(+)

>>>

>>> This looks ok to me. There are a handful of additional relocs defined

>>> in binutils but this should suffice to get the build fixed.

>>

>> Thanks Will, can you help in installing it ?

> 

> The tree is in freeze so I will defer this to Adhemerval. The change

> looks low risk to me.


Yes, I see this should not interfere with other ports so I think it is
ok for 2.24.
Adhemerval Zanella July 19, 2016, 1:21 p.m. UTC | #3
On 19/07/2016 04:51, Andreas Schwab wrote:
> Will Newton <will.newton@gmail.com> writes:

> 

>> On Mon, Jul 18, 2016 at 1:57 PM, Adhemerval Zanella

>> <adhemerval.zanella@linaro.org> wrote:

>>>

>>>

>>> On 18/07/2016 09:39, Will Newton wrote:

>>>> On Sat, Jul 16, 2016 at 9:00 AM, Khem Raj <raj.khem@gmail.com> wrote:

>>>>> On Fri, Jul 15, 2016 at 4:50 AM, Will Newton <will.newton@gmail.com> wrote:

>>>>>> On Thu, Jul 14, 2016 at 4:10 PM, Khem Raj <raj.khem@gmail.com> wrote:

>>>>>>> ---

>>>>>>> 2016-07-14   Ross Burton  <ross.burton@intel.com>

>>>>>>>              Khem Raj  <raj.khem@gmail.com>

>>>>>>>

>>>>>>>         * elf/elf.h (R_METAG_HIADDR16, R_METAG_LOADDR16,

>>>>>>>         R_METAG_ADDR32, R_METAG_NONE, R_METAG_RELBRANCH,

>>>>>>>         R_METAG_GETSETOFF, R_METAG_REG32OP1, R_METAG_REG32OP2,

>>>>>>>         R_METAG_REG32OP3, R_METAG_REG16OP1, R_METAG_REG16OP2,

>>>>>>>         R_METAG_REG16OP3, R_METAG_REG32OP4, R_METAG_HIOG,

>>>>>>>         R_METAG_LOOG, R_METAG_GNU_VTINHERIT, R_METAG_GNU_VTENTRY,

>>>>>>>         R_METAG_HI16_GOTOFF, R_METAG_LO16_GOTOFF,

>>>>>>>         R_METAG_GETSET_GOTOFF, R_METAG_GETSET_GOT, R_METAG_HI16_GOTPC,

>>>>>>>         R_METAG_LO16_GOTPC, R_METAG_HI16_PLT, R_METAG_LO16_PLT,

>>>>>>>         R_METAG_RELBRANCH_PLT, R_METAG_GOTOFF, R_METAG_PLT,

>>>>>>>         R_METAG_COPY, R_METAG_JMP_SLOT, R_METAG_RELATIVE,

>>>>>>>         R_METAG_GLOB_DAT, R_METAG_TLS_TPOFF, R_METAG_TLS_DTPMOD,

>>>>>>>         R_METAG_TLS_DTPOFF): New.

>>>>>>>  elf/elf.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++

>>>>>>>  1 file changed, 47 insertions(+)

>>>>>>

>>>>>> This looks ok to me. There are a handful of additional relocs defined

>>>>>> in binutils but this should suffice to get the build fixed.

>>>>>

>>>>> Thanks Will, can you help in installing it ?

>>>>

>>>> The tree is in freeze so I will defer this to Adhemerval. The change

>>>> looks low risk to me.

>>>

>>> Yes, I see this should not interfere with other ports so I think it is

>>> ok for 2.24.

>>

>> Thanks, I applied the patch.

> 

> It is missing a lot of definitions:

> 

> #define R_METAG_REL8		15

> #define R_METAG_REL16		16

> #define R_METAG_TLS_GD		47

> #define R_METAG_TLS_LDM		48

> #define R_METAG_TLS_LDO_HI16	49

> #define R_METAG_TLS_LDO_LO16	50

> #define R_METAG_TLS_LDO		51

> #define R_METAG_TLS_IE		52

> #define R_METAG_TLS_IENONPIC	53

> #define R_METAG_TLS_IENONPIC_HI16 54

> #define R_METAG_TLS_IENONPIC_LO16 55

> #define R_METAG_TLS_LE		59

> #define R_METAG_TLS_LE_HI16	60

> #define R_METAG_TLS_LE_LO16	61

> 

> Andreas.

> 


Will, could you add these one for 2.24? Thanks.
diff mbox

Patch

diff --git a/elf/elf.h b/elf/elf.h
index b6112d9..04400ec 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -3682,6 +3682,53 @@  enum
 #define R_BPF_NONE		0	/* No reloc */
 #define R_BPF_MAP_FD		1	/* Map fd to pointer */
 
+/* Imagination Meta specific relocations. */
+
+#define R_METAG_HIADDR16	0
+#define R_METAG_LOADDR16	1
+#define R_METAG_ADDR32		2	/* 32bit absolute address */
+#define R_METAG_NONE		3	/* No reloc */
+#define R_METAG_RELBRANCH	4
+#define R_METAG_GETSETOFF	5
+
+/* Backward compatability */
+#define R_METAG_REG32OP1	6
+#define R_METAG_REG32OP2	7
+#define R_METAG_REG32OP3	8
+#define R_METAG_REG16OP1	9
+#define R_METAG_REG16OP2	10
+#define R_METAG_REG16OP3	11
+#define R_METAG_REG32OP4	12
+
+#define R_METAG_HIOG		13
+#define R_METAG_LOOG		14
+
+/* GNU */
+#define R_METAG_GNU_VTINHERIT	30
+#define R_METAG_GNU_VTENTRY	31
+
+/* PIC relocations */
+#define R_METAG_HI16_GOTOFF	32
+#define R_METAG_LO16_GOTOFF	33
+#define R_METAG_GETSET_GOTOFF	34
+#define R_METAG_GETSET_GOT	35
+#define R_METAG_HI16_GOTPC	36
+#define R_METAG_LO16_GOTPC	37
+#define R_METAG_HI16_PLT	38
+#define R_METAG_LO16_PLT	39
+#define R_METAG_RELBRANCH_PLT	40
+#define R_METAG_GOTOFF		41
+#define R_METAG_PLT		42
+#define R_METAG_COPY		43
+#define R_METAG_JMP_SLOT	44
+#define R_METAG_RELATIVE	45
+#define R_METAG_GLOB_DAT	46
+
+/* TLS relocations */
+#define R_METAG_TLS_TPOFF	56
+#define R_METAG_TLS_DTPMOD	57
+#define R_METAG_TLS_DTPOFF	58
+
 __END_DECLS
 
 #endif	/* elf.h */