master
 1/*	$NetBSD: elf_machdep.h,v 1.6 2017/11/06 03:47:45 christos Exp $	*/
 2
 3#if !defined __i386__
 4
 5#define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2LSB
 6#define	ELF32_MACHDEP_ID_CASES						\
 7		case EM_386:						\
 8			break;
 9
10#define	ELF64_MACHDEP_ENDIANNESS	ELFDATA2LSB
11#define	ELF64_MACHDEP_ID_CASES						\
12		case EM_X86_64:						\
13			break;
14
15#define	ELF32_MACHDEP_ID	EM_386
16#define	ELF64_MACHDEP_ID	EM_X86_64
17
18#define	KERN_ELFSIZE		64
19#define ARCH_ELFSIZE		64	/* MD native binary size */
20
21/* x86-64 relocations */
22
23#define R_X86_64_NONE		0
24#define R_X86_64_64		1
25#define R_X86_64_PC32		2
26#define R_X86_64_GOT32		3
27#define R_X86_64_PLT32		4
28#define R_X86_64_COPY		5
29#define R_X86_64_GLOB_DAT	6
30#define R_X86_64_JUMP_SLOT	7
31#define R_X86_64_RELATIVE	8
32#define R_X86_64_GOTPCREL	9
33#define R_X86_64_32		10
34#define R_X86_64_32S		11
35#define R_X86_64_16		12
36#define R_X86_64_PC16		13
37#define R_X86_64_8		14
38#define R_X86_64_PC8		15
39
40/* TLS relocations */
41#define R_X86_64_DTPMOD64	16
42#define R_X86_64_DTPOFF64	17
43#define R_X86_64_TPOFF64	18
44#define R_X86_64_TLSGD		19
45#define R_X86_64_TLSLD		20
46#define R_X86_64_DTPOFF32	21
47#define R_X86_64_GOTTPOFF	22
48#define R_X86_64_TPOFF32	23
49
50#define R_X86_64_PC64		24
51#define R_X86_64_GOTOFF64	25
52#define R_X86_64_GOTPC32	26
53#define R_X86_64_GOT64		27
54#define R_X86_64_GOTPCREL64	28
55#define R_X86_64_GOTPC64	29
56#define R_X86_64_GOTPLT64	30
57#define R_X86_64_PLTOFF64	31
58#define R_X86_64_SIZE32		32
59#define R_X86_64_SIZE64		33
60#define R_X86_64_GOTPC32_TLSDESC 34
61#define R_X86_64_TLSDESC_CALL	35
62#define R_X86_64_TLSDESC	36
63#define R_X86_64_IRELATIVE	37
64#define R_X86_64_RELATIVE64	38
65#define R_X86_64_PC32_BND	39
66#define R_X86_64_PLT32_BND	40
67#define R_X86_64_GOTPCRELX	41
68#define R_X86_64_REX_GOTPCRELX	42
69
70#define	R_TYPE(name)	__CONCAT(R_X86_64_,name)
71
72#else	/*	!__i386__	*/
73
74#include <i386/elf_machdep.h>
75
76#endif	/*	!__i386__	*/