| 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__	*/ |