1*dc2ac295Schristos /* $NetBSD: elf_machdep.h,v 1.10 2017/11/06 03:47:48 christos Exp $ */ 20e097578Scgd 3522cbf02Skleink #define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB 40e097578Scgd #define ELF32_MACHDEP_ID_CASES \ 5522cbf02Skleink case EM_SPARC: \ 6522cbf02Skleink case EM_SPARC32PLUS: \ 70e097578Scgd break; 80e097578Scgd 968068a92Smartin #define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */ 100e097578Scgd #define ELF64_MACHDEP_ID_CASES \ 110e097578Scgd /* no 64-bit ELF machine types supported */ 1228260456Stv 1368068a92Smartin #define ELF32_MACHDEP_ID EM_SPARC 1451535d4bSthorpej 15*dc2ac295Schristos #define KERN_ELFSIZE 32 1678b10569Sminoura #define ARCH_ELFSIZE 32 /* MD native binary size */ 1778b10569Sminoura 1828260456Stv #define R_SPARC_NONE 0 1928260456Stv #define R_SPARC_8 1 2028260456Stv #define R_SPARC_16 2 2128260456Stv #define R_SPARC_32 3 2228260456Stv #define R_SPARC_DISP8 4 2328260456Stv #define R_SPARC_DISP16 5 2428260456Stv #define R_SPARC_DISP32 6 2528260456Stv #define R_SPARC_WDISP30 7 2628260456Stv #define R_SPARC_WDISP22 8 2728260456Stv #define R_SPARC_HI22 9 2828260456Stv #define R_SPARC_22 10 2928260456Stv #define R_SPARC_13 11 3028260456Stv #define R_SPARC_LO10 12 3128260456Stv #define R_SPARC_GOT10 13 3228260456Stv #define R_SPARC_GOT13 14 3328260456Stv #define R_SPARC_GOT22 15 3428260456Stv #define R_SPARC_PC10 16 3528260456Stv #define R_SPARC_PC22 17 3628260456Stv #define R_SPARC_WPLT30 18 3728260456Stv #define R_SPARC_COPY 19 3828260456Stv #define R_SPARC_GLOB_DAT 20 3928260456Stv #define R_SPARC_JMP_SLOT 21 4028260456Stv #define R_SPARC_RELATIVE 22 4128260456Stv #define R_SPARC_UA32 23 4228260456Stv #define R_SPARC_PLT32 24 4328260456Stv #define R_SPARC_HIPLT22 25 4428260456Stv #define R_SPARC_LOPLT10 26 4528260456Stv #define R_SPARC_PCPLT32 27 4628260456Stv #define R_SPARC_PCPLT22 28 4728260456Stv #define R_SPARC_PCPLT10 29 4828260456Stv #define R_SPARC_10 30 4928260456Stv #define R_SPARC_11 31 5028260456Stv #define R_SPARC_64 32 5128260456Stv #define R_SPARC_OLO10 33 5228260456Stv #define R_SPARC_HH22 34 5328260456Stv #define R_SPARC_HM10 35 5428260456Stv #define R_SPARC_LM22 36 5528260456Stv #define R_SPARC_PC_HH22 37 5628260456Stv #define R_SPARC_PC_HM10 38 5728260456Stv #define R_SPARC_PC_LM22 39 5828260456Stv #define R_SPARC_WDISP16 40 5928260456Stv #define R_SPARC_WDISP19 41 6028260456Stv #define R_SPARC_GLOB_JMP 42 6128260456Stv #define R_SPARC_7 43 6228260456Stv #define R_SPARC_5 44 6328260456Stv #define R_SPARC_6 45 6428260456Stv 65e0397662Sskrll /* TLS relocations */ 66e0397662Sskrll #define R_SPARC_TLS_GD_HI22 56 67e0397662Sskrll #define R_SPARC_TLS_GD_LO10 57 68e0397662Sskrll #define R_SPARC_TLS_GD_ADD 58 69e0397662Sskrll #define R_SPARC_TLS_GD_CALL 59 70e0397662Sskrll #define R_SPARC_TLS_LDM_HI22 60 71e0397662Sskrll #define R_SPARC_TLS_LDM_LO10 61 72e0397662Sskrll #define R_SPARC_TLS_LDM_ADD 62 73e0397662Sskrll #define R_SPARC_TLS_LDM_CALL 63 74e0397662Sskrll #define R_SPARC_TLS_LDO_HIX22 64 75e0397662Sskrll #define R_SPARC_TLS_LDO_LOX10 65 76e0397662Sskrll #define R_SPARC_TLS_LDO_ADD 66 77e0397662Sskrll #define R_SPARC_TLS_IE_HI22 67 78e0397662Sskrll #define R_SPARC_TLS_IE_LO10 68 79e0397662Sskrll #define R_SPARC_TLS_IE_LD 69 80e0397662Sskrll #define R_SPARC_TLS_IE_LDX 70 81e0397662Sskrll #define R_SPARC_TLS_IE_ADD 71 82e0397662Sskrll #define R_SPARC_TLS_LE_HIX22 72 83e0397662Sskrll #define R_SPARC_TLS_LE_LOX10 73 84e0397662Sskrll #define R_SPARC_TLS_DTPMOD32 74 85e0397662Sskrll #define R_SPARC_TLS_DTPMOD64 75 86e0397662Sskrll #define R_SPARC_TLS_DTPOFF32 76 87e0397662Sskrll #define R_SPARC_TLS_DTPOFF64 77 88e0397662Sskrll #define R_SPARC_TLS_TPOFF32 78 89e0397662Sskrll #define R_SPARC_TLS_TPOFF64 79 90e0397662Sskrll 91610e531eSjoerg #define R_SPARC_JMP_IREL 248 92610e531eSjoerg #define R_SPARC_IRELATIVE 249 93610e531eSjoerg 9428260456Stv #define R_TYPE(name) __CONCAT(R_SPARC_,name) 95