xref: /netbsd-src/sys/arch/i386/include/elf_machdep.h (revision dc2ac295848fdbeb08478f3a5bb113efa716e9ad)
1 /*	$NetBSD: elf_machdep.h,v 1.13 2017/11/06 03:47:46 christos Exp $	*/
2 
3 #define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2LSB
4 #define	ELF32_MACHDEP_ID_CASES						\
5 		case EM_386:						\
6 		case EM_486:						\
7 			break;
8 
9 #define	ELF64_MACHDEP_ENDIANNESS	XXX	/* break compilation */
10 #define	ELF64_MACHDEP_ID_CASES						\
11 		/* no 64-bit ELF machine types supported */
12 
13 #define	ELF32_MACHDEP_ID		EM_386
14 
15 #define	KERN_ELFSIZE		32
16 #define ARCH_ELFSIZE		32	/* MD native binary size */
17 
18 /* i386 relocations */
19 #define	R_386_NONE	0
20 #define	R_386_32	1
21 #define	R_386_PC32	2
22 #define	R_386_GOT32	3
23 #define	R_386_PLT32	4
24 #define	R_386_COPY	5
25 #define	R_386_GLOB_DAT	6
26 #define	R_386_JMP_SLOT	7
27 #define	R_386_RELATIVE	8
28 #define	R_386_GOTOFF	9
29 #define	R_386_GOTPC	10
30 #define	R_386_32PLT	11
31 
32 /* TLS relocations */
33 #define	R_386_TLS_TPOFF	14
34 #define	R_386_TLS_IE	15
35 #define	R_386_TLS_GOTIE	16
36 #define	R_386_TLS_LE	17
37 #define	R_386_TLS_GD	18
38 #define	R_386_TLS_LDM	19
39 
40 /* The following relocations are GNU extensions. */
41 #define	R_386_16	20
42 #define	R_386_PC16	21
43 #define	R_386_8		22
44 #define	R_386_PC8	23
45 
46 /* More TLS relocations */
47 #define	R_386_TLS_GD_32		24
48 #define	R_386_TLS_GD_PUSH	25
49 #define	R_386_TLS_GD_CALL	26
50 #define	R_386_TLS_GD_POP	27
51 #define	R_386_TLS_LDM_32	28
52 #define	R_386_TLS_LDM_PUSH	29
53 #define	R_386_TLS_LDM_CALL	30
54 #define	R_386_TLS_LDM_POP	31
55 #define	R_386_TLS_LDO_32	32
56 #define	R_386_TLS_IE_32		33
57 #define	R_386_TLS_LE_32		34
58 #define	R_386_TLS_DTPMOD32	35
59 #define	R_386_TLS_DTPOFF32	36
60 #define	R_386_TLS_TPOFF32	37
61 
62 #define R_386_SIZE32		38
63 
64 /* More TLS relocations */
65 #define	R_386_TLS_GOTDESC	39
66 #define	R_386_TLS_DESC_CALL	40
67 #define	R_386_TLS_DESC		41
68 
69 #define R_386_IRELATIVE		42
70 #define R_386_GOT32X		43
71 
72 #define	R_TYPE(name)	__CONCAT(R_386_,name)
73