111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* $NetBSD: elf_machdep.h,v 1.4 2010/03/18 08:28:33 cegger Exp $ */ 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined __i386__ 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ELF32_MACHDEP_ID_CASES \ 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case EM_386: \ 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ELF64_MACHDEP_ENDIANNESS ELFDATA2LSB 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ELF64_MACHDEP_ID_CASES \ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case EM_X86_64: \ 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ELF32_MACHDEP_ID EM_386 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ELF64_MACHDEP_ID EM_X86_64 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_ELFSIZE 64 /* MD native binary size */ 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* x86-64 relocations */ 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_NONE 0 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_64 1 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PC32 2 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GOT32 3 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PLT32 4 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_COPY 5 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GLOB_DAT 6 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_JUMP_SLOT 7 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_RELATIVE 8 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GOTPCREL 9 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_32 10 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_32S 11 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_16 12 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PC16 13 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_8 14 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PC8 15 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* TLS relocations */ 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_DTPMOD64 16 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_DTPOFF64 17 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TPOFF64 18 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TLSGD 19 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TLSLD 20 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_DTPOFF32 21 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GOTTPOFF 22 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TPOFF32 23 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_TYPE(name) __CONCAT(R_X86_64_,name) 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else /* !__i386__ */ 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <i386/elf_machdep.h> 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* !__i386__ */ 56