This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[tile] Add Tilera constants to elf/elf.h


On 11/11/2011 4:42 PM, Roland McGrath wrote:
>> * elf/elf.h: This change adds the relevant Tilera ELF constants.
> elf.h always remains unified.  If your constants and names are standardized
> to the extent that binutils trunk is using them, then we will harmonize.

Here's the final version, which matches what is in binutils.  It has
changed slightly since the previous submission, since the tile gcc
maintainer and I worked out a somewhat better (forward-looking) model
for TLS support.  (In particular, we now support IE and LE.)

2012-01-25  Chris Metcalf  <cmetcalf@tilera.com>

	* elf/elf.h (EM_NUM, EM_TILE*, R_TILE*): Add Tilera constants.

diff --git a/elf/elf.h b/elf/elf.h
index 7c64120..63659f3 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -1,5 +1,5 @@
 /* This file defines standard ELF types, structures, and macros.
-   Copyright (C) 1995-2003,2004,2005,2006,2007,2008,2009,2010,2011
+   Copyright (C) 1995-2003,2004,2005,2006,2007,2008,2009,2010,2011,2012
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -251,7 +251,9 @@ typedef struct
 #define EM_OPENRISC	92		/* OpenRISC 32-bit embedded processor */
 #define EM_ARC_A5	93		/* ARC Cores Tangent-A5 */
 #define EM_XTENSA	94		/* Tensilica Xtensa Architecture */
-#define EM_NUM		95
+#define EM_TILEPRO	188		/* Tilera TILEPro */
+#define EM_TILEGX	191		/* Tilera TILE-Gx */
+#define EM_NUM		192
 
 /* If it is necessary to assign new unofficial EM_* values, please
    pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
@@ -2791,6 +2793,222 @@ typedef Elf32_Addr Elf32_Conflict;
 #define R_M32R_NUM		256	/* Keep this the last entry. */
 
 
+/* TILEPro relocations. */
+#define R_TILEPRO_NONE		0
+#define R_TILEPRO_32		1
+#define R_TILEPRO_16		2
+#define R_TILEPRO_8		3
+#define R_TILEPRO_32_PCREL	4
+#define R_TILEPRO_16_PCREL	5
+#define R_TILEPRO_8_PCREL	6
+#define R_TILEPRO_LO16		7
+#define R_TILEPRO_HI16		8
+#define R_TILEPRO_HA16		9
+#define R_TILEPRO_COPY		10
+#define R_TILEPRO_GLOB_DAT	11
+#define R_TILEPRO_JMP_SLOT	12
+#define R_TILEPRO_RELATIVE	13
+#define R_TILEPRO_BROFF_X1	14
+#define R_TILEPRO_JOFFLONG_X1	15
+#define R_TILEPRO_JOFFLONG_X1_PLT 16
+#define R_TILEPRO_IMM8_X0	17
+#define R_TILEPRO_IMM8_Y0	18
+#define R_TILEPRO_IMM8_X1	19
+#define R_TILEPRO_IMM8_Y1	20
+#define R_TILEPRO_MT_IMM15_X1	21
+#define R_TILEPRO_MF_IMM15_X1	22
+#define R_TILEPRO_IMM16_X0	23
+#define R_TILEPRO_IMM16_X1	24
+#define R_TILEPRO_IMM16_X0_LO	25
+#define R_TILEPRO_IMM16_X1_LO	26
+#define R_TILEPRO_IMM16_X0_HI	27
+#define R_TILEPRO_IMM16_X1_HI	28
+#define R_TILEPRO_IMM16_X0_HA	29
+#define R_TILEPRO_IMM16_X1_HA	30
+#define R_TILEPRO_IMM16_X0_PCREL 31
+#define R_TILEPRO_IMM16_X1_PCREL 32
+#define R_TILEPRO_IMM16_X0_LO_PCREL 33
+#define R_TILEPRO_IMM16_X1_LO_PCREL 34
+#define R_TILEPRO_IMM16_X0_HI_PCREL 35
+#define R_TILEPRO_IMM16_X1_HI_PCREL 36
+#define R_TILEPRO_IMM16_X0_HA_PCREL 37
+#define R_TILEPRO_IMM16_X1_HA_PCREL 38
+#define R_TILEPRO_IMM16_X0_GOT	39
+#define R_TILEPRO_IMM16_X1_GOT	40
+#define R_TILEPRO_IMM16_X0_GOT_LO 41
+#define R_TILEPRO_IMM16_X1_GOT_LO 42
+#define R_TILEPRO_IMM16_X0_GOT_HI 43
+#define R_TILEPRO_IMM16_X1_GOT_HI 44
+#define R_TILEPRO_IMM16_X0_GOT_HA 45
+#define R_TILEPRO_IMM16_X1_GOT_HA 46
+#define R_TILEPRO_MMSTART_X0	47
+#define R_TILEPRO_MMEND_X0	48
+#define R_TILEPRO_MMSTART_X1	49
+#define R_TILEPRO_MMEND_X1	50
+#define R_TILEPRO_SHAMT_X0	51
+#define R_TILEPRO_SHAMT_X1	52
+#define R_TILEPRO_SHAMT_Y0	53
+#define R_TILEPRO_SHAMT_Y1	54
+#define R_TILEPRO_DEST_IMM8_X1	55
+/* Relocs 56-59 are currently not defined.  */
+#define R_TILEPRO_TLS_GD_CALL	60
+#define R_TILEPRO_IMM8_X0_TLS_GD_ADD 61
+#define R_TILEPRO_IMM8_X1_TLS_GD_ADD 62
+#define R_TILEPRO_IMM8_Y0_TLS_GD_ADD 63
+#define R_TILEPRO_IMM8_Y1_TLS_GD_ADD 64
+#define R_TILEPRO_TLS_IE_LOAD	65
+#define R_TILEPRO_IMM16_X0_TLS_GD 66
+#define R_TILEPRO_IMM16_X1_TLS_GD 67
+#define R_TILEPRO_IMM16_X0_TLS_GD_LO 68
+#define R_TILEPRO_IMM16_X1_TLS_GD_LO 69
+#define R_TILEPRO_IMM16_X0_TLS_GD_HI 70
+#define R_TILEPRO_IMM16_X1_TLS_GD_HI 71
+#define R_TILEPRO_IMM16_X0_TLS_GD_HA 72
+#define R_TILEPRO_IMM16_X1_TLS_GD_HA 73
+#define R_TILEPRO_IMM16_X0_TLS_IE 74
+#define R_TILEPRO_IMM16_X1_TLS_IE 75
+#define R_TILEPRO_IMM16_X0_TLS_IE_LO 76
+#define R_TILEPRO_IMM16_X1_TLS_IE_LO 77
+#define R_TILEPRO_IMM16_X0_TLS_IE_HI 78
+#define R_TILEPRO_IMM16_X1_TLS_IE_HI 79
+#define R_TILEPRO_IMM16_X0_TLS_IE_HA 80
+#define R_TILEPRO_IMM16_X1_TLS_IE_HA 81
+#define R_TILEPRO_TLS_DTPMOD32	82
+#define R_TILEPRO_TLS_DTPOFF32	83
+#define R_TILEPRO_TLS_TPOFF32	84
+#define R_TILEPRO_IMM16_X0_TLS_LE 85
+#define R_TILEPRO_IMM16_X1_TLS_LE 86
+#define R_TILEPRO_IMM16_X0_TLS_LE_LO 87
+#define R_TILEPRO_IMM16_X1_TLS_LE_LO 88
+#define R_TILEPRO_IMM16_X0_TLS_LE_HI 89
+#define R_TILEPRO_IMM16_X1_TLS_LE_HI 90
+#define R_TILEPRO_IMM16_X0_TLS_LE_HA 91
+#define R_TILEPRO_IMM16_X1_TLS_LE_HA 92
+
+
+#define R_TILEPRO_GNU_VTINHERIT	128
+#define R_TILEPRO_GNU_VTENTRY	129
+
+#define R_TILEPRO_NUM		130
+
+
+/* TILE-Gx relocations. */
+#define R_TILEGX_NONE		0
+#define R_TILEGX_64		1
+#define R_TILEGX_32		2
+#define R_TILEGX_16		3
+#define R_TILEGX_8		4
+#define R_TILEGX_64_PCREL	5
+#define R_TILEGX_32_PCREL	6
+#define R_TILEGX_16_PCREL	7
+#define R_TILEGX_8_PCREL	8
+#define R_TILEGX_HW0		9
+#define R_TILEGX_HW1		10
+#define R_TILEGX_HW2		11
+#define R_TILEGX_HW3		12
+#define R_TILEGX_HW0_LAST	13
+#define R_TILEGX_HW1_LAST	14
+#define R_TILEGX_HW2_LAST	15
+#define R_TILEGX_COPY		16
+#define R_TILEGX_GLOB_DAT	17
+#define R_TILEGX_JMP_SLOT	18
+#define R_TILEGX_RELATIVE	19
+#define R_TILEGX_BROFF_X1	20
+#define R_TILEGX_JUMPOFF_X1	21
+#define R_TILEGX_JUMPOFF_X1_PLT	22
+#define R_TILEGX_IMM8_X0	23
+#define R_TILEGX_IMM8_Y0	24
+#define R_TILEGX_IMM8_X1	25
+#define R_TILEGX_IMM8_Y1	26
+#define R_TILEGX_DEST_IMM8_X1	27
+#define R_TILEGX_MT_IMM14_X1	28
+#define R_TILEGX_MF_IMM14_X1	29
+#define R_TILEGX_MMSTART_X0	30
+#define R_TILEGX_MMEND_X0	31
+#define R_TILEGX_SHAMT_X0	32
+#define R_TILEGX_SHAMT_X1	33
+#define R_TILEGX_SHAMT_Y0	34
+#define R_TILEGX_SHAMT_Y1	35
+#define R_TILEGX_IMM16_X0_HW0	36
+#define R_TILEGX_IMM16_X1_HW0	37
+#define R_TILEGX_IMM16_X0_HW1	38
+#define R_TILEGX_IMM16_X1_HW1	39
+#define R_TILEGX_IMM16_X0_HW2	40
+#define R_TILEGX_IMM16_X1_HW2	41
+#define R_TILEGX_IMM16_X0_HW3	42
+#define R_TILEGX_IMM16_X1_HW3	43
+#define R_TILEGX_IMM16_X0_HW0_LAST 44
+#define R_TILEGX_IMM16_X1_HW0_LAST 45
+#define R_TILEGX_IMM16_X0_HW1_LAST 46
+#define R_TILEGX_IMM16_X1_HW1_LAST 47
+#define R_TILEGX_IMM16_X0_HW2_LAST 48
+#define R_TILEGX_IMM16_X1_HW2_LAST 49
+#define R_TILEGX_IMM16_X0_HW0_PCREL 50
+#define R_TILEGX_IMM16_X1_HW0_PCREL 51
+#define R_TILEGX_IMM16_X0_HW1_PCREL 52
+#define R_TILEGX_IMM16_X1_HW1_PCREL 53
+#define R_TILEGX_IMM16_X0_HW2_PCREL 54
+#define R_TILEGX_IMM16_X1_HW2_PCREL 55
+#define R_TILEGX_IMM16_X0_HW3_PCREL 56
+#define R_TILEGX_IMM16_X1_HW3_PCREL 57
+#define R_TILEGX_IMM16_X0_HW0_LAST_PCREL 58
+#define R_TILEGX_IMM16_X1_HW0_LAST_PCREL 59
+#define R_TILEGX_IMM16_X0_HW1_LAST_PCREL 60
+#define R_TILEGX_IMM16_X1_HW1_LAST_PCREL 61
+#define R_TILEGX_IMM16_X0_HW2_LAST_PCREL 62
+#define R_TILEGX_IMM16_X1_HW2_LAST_PCREL 63
+#define R_TILEGX_IMM16_X0_HW0_GOT 64
+#define R_TILEGX_IMM16_X1_HW0_GOT 65
+/* Relocs 66-71 are currently not defined.  */
+#define R_TILEGX_IMM16_X0_HW0_LAST_GOT 72
+#define R_TILEGX_IMM16_X1_HW0_LAST_GOT 73
+#define R_TILEGX_IMM16_X0_HW1_LAST_GOT 74
+#define R_TILEGX_IMM16_X1_HW1_LAST_GOT 75
+/* Relocs 76-77 are currently not defined.  */
+#define R_TILEGX_IMM16_X0_HW0_TLS_GD 78
+#define R_TILEGX_IMM16_X1_HW0_TLS_GD 79
+#define R_TILEGX_IMM16_X0_HW0_TLS_LE 80
+#define R_TILEGX_IMM16_X1_HW0_TLS_LE 81
+#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 82
+#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 83
+#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 84
+#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 85
+#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 86
+#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 87
+#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 88
+#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 89
+/* Relocs 90-91 are currently not defined.  */
+#define R_TILEGX_IMM16_X0_HW0_TLS_IE 92
+#define R_TILEGX_IMM16_X1_HW0_TLS_IE 93
+/* Relocs 94-99 are currently not defined.  */
+#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 100
+#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 101
+#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 102
+#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 103
+/* Relocs 104-105 are currently not defined.  */
+#define R_TILEGX_TLS_DTPMOD64	106
+#define R_TILEGX_TLS_DTPOFF64	107
+#define R_TILEGX_TLS_TPOFF64	108
+#define R_TILEGX_TLS_DTPMOD32	109
+#define R_TILEGX_TLS_DTPOFF32	110
+#define R_TILEGX_TLS_TPOFF32	111
+#define R_TILEGX_TLS_GD_CALL	112
+#define R_TILEGX_IMM8_X0_TLS_GD_ADD 113
+#define R_TILEGX_IMM8_X1_TLS_GD_ADD 114
+#define R_TILEGX_IMM8_Y0_TLS_GD_ADD 115
+#define R_TILEGX_IMM8_Y1_TLS_GD_ADD 116
+#define R_TILEGX_TLS_IE_LOAD	117
+#define R_TILEGX_IMM8_X0_TLS_ADD 118
+#define R_TILEGX_IMM8_X1_TLS_ADD 119
+#define R_TILEGX_IMM8_Y0_TLS_ADD 120
+#define R_TILEGX_IMM8_Y1_TLS_ADD 121
+
+#define R_TILEGX_GNU_VTINHERIT	128
+#define R_TILEGX_GNU_VTENTRY	129
+
+#define R_TILEGX_NUM		130
+
+
 __END_DECLS
 
 #endif	/* elf.h */

-- 
Chris Metcalf, Tilera Corp.
http://www.tilera.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]