master
1/* $NetBSD: elf_machdep.h,v 1.9 2017/11/06 03:47:47 christos Exp $ */
2
3#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
4#define ELF32_MACHDEP_ID_CASES \
5 case EM_68K: \
6 break;
7
8#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
9#define ELF64_MACHDEP_ID_CASES \
10 /* no 64-bit ELF machine types supported */
11
12#define ELF32_MACHDEP_ID EM_68K
13
14/*
15 * Machine-dependent ELF flags. These are defined by the GNU tools.
16 */
17#define EF_CPU32 0x00810000
18#define EF_M68000 0x01000000
19
20#define KERN_ELFSIZE 32
21#define ARCH_ELFSIZE 32 /* MD native binary size */
22
23/* m68k relocation types */
24#define R_68K_NONE 0
25#define R_68K_32 1
26#define R_68K_16 2
27#define R_68K_8 3
28#define R_68K_PC32 4
29#define R_68K_PC16 5
30#define R_68K_PC8 6
31#define R_68K_GOT32 7
32#define R_68K_GOT16 8
33#define R_68K_GOT8 9
34#define R_68K_GOT32O 10
35#define R_68K_GOT16O 11
36#define R_68K_GOT8O 12
37#define R_68K_PLT32 13
38#define R_68K_PLT16 14
39#define R_68K_PLT8 15
40#define R_68K_PLT32O 16
41#define R_68K_PLT16O 17
42#define R_68K_PLT8O 18
43#define R_68K_COPY 19
44#define R_68K_GLOB_DAT 20
45#define R_68K_JMP_SLOT 21
46#define R_68K_RELATIVE 22
47
48/* TLS relocations */
49#define R_68K_TLS_GD32 25
50#define R_68K_TLS_GD16 26
51#define R_68K_TLS_GD8 27
52#define R_68K_TLS_LDM32 28
53#define R_68K_TLS_LDM16 29
54#define R_68K_TLS_LDM8 30
55#define R_68K_TLS_LDO32 31
56#define R_68K_TLS_LDO16 32
57#define R_68K_TLS_LDO8 33
58#define R_68K_TLS_IE32 34
59#define R_68K_TLS_IE16 35
60#define R_68K_TLS_IE8 36
61#define R_68K_TLS_LE32 37
62#define R_68K_TLS_LE16 38
63#define R_68K_TLS_LE8 39
64#define R_68K_TLS_DTPMOD32 40
65#define R_68K_TLS_DTPREL32 41
66#define R_68K_TLS_TPREL32 42
67
68#define R_TYPE(name) __CONCAT(R_68K_,name)