Index: sys/arch/alpha/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/alpha/include/elf_machdep.h,v retrieving revision 1.10 diff -u -p -u -r1.10 elf_machdep.h --- sys/arch/alpha/include/elf_machdep.h 9 Dec 2001 23:05:56 -0000 1.10 +++ sys/arch/alpha/include/elf_machdep.h 19 May 2009 05:52:26 -0000 @@ -58,6 +58,21 @@ typedef uint64_t Elf64_Word; #define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */ #define R_ALPHA_RELATIVE 27 /* Adjust by program base */ +/* TLS relocations */ +#define R_ALPHA_TLS_GD 29 +#define R_ALPHA_TLSLDM 30 +#define R_ALPHA_DTPMOD64 31 +#define R_ALPHA_GOTDTPREL 32 +#define R_ALPHA_DTPREL64 33 +#define R_ALPHA_DTPRELHI 34 +#define R_ALPHA_DTPRELLO 35 +#define R_ALPHA_DTPREL16 36 +#define R_ALPHA_GOTTPREL 37 +#define R_ALPHA_TPREL64 38 +#define R_ALPHA_TPRELHI 39 +#define R_ALPHA_TPRELLO 40 +#define R_ALPHA_TPREL16 41 + #define R_TYPE(name) __CONCAT(R_ALPHA_,name) #endif /* _ALPHA_ELF_MACHDEP_H_ */ Index: sys/arch/amd64/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/amd64/include/elf_machdep.h,v retrieving revision 1.2 diff -u -p -u -r1.2 elf_machdep.h --- sys/arch/amd64/include/elf_machdep.h 26 Oct 2008 00:08:15 -0000 1.2 +++ sys/arch/amd64/include/elf_machdep.h 19 May 2009 05:52:26 -0000 @@ -36,6 +36,16 @@ #define R_X86_64_8 14 #define R_X86_64_PC8 15 +/* TLS relocations */ +#define R_X86_64_DTPMOD64 16 +#define R_X86_64_DTPOFF64 17 +#define R_X86_64_TPOFF64 18 +#define R_X86_64_TLSGD 19 +#define R_X86_64_TLSLD 20 +#define R_X86_64_DTPOFF32 21 +#define R_X86_64_GOTTPOFF 22 +#define R_X86_64_TPOFF32 23 + #define R_TYPE(name) __CONCAT(R_X86_64_,name) #else /* __x86_64__ */ Index: sys/arch/arm/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/arm/include/elf_machdep.h,v retrieving revision 1.7 diff -u -p -u -r1.7 elf_machdep.h --- sys/arch/arm/include/elf_machdep.h 8 Sep 2006 19:09:19 -0000 1.7 +++ sys/arch/arm/include/elf_machdep.h 19 May 2009 05:52:26 -0000 @@ -54,6 +54,11 @@ #define R_ARM_XPC25 15 #define R_ARM_THM_XPC22 16 +/* TLS relocations */ +#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */ +#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */ +#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */ + /* 17-31 are reserved for ARM Linux. */ #define R_ARM_COPY 20 #define R_ARM_GLOB_DAT 21 @@ -77,6 +82,16 @@ #define R_ARM_THM_PC11 102 #define R_ARM_THM_PC9 103 +/* More TLS relocations */ +#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic */ +#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic */ +#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS */ +#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of */ +#define R_ARM_TLS_LE32 108 +#define R_ARM_TLS_LDO12 109 +#define R_ARM_TLS_LE12 110 +#define R_ARM_TLS_IE12GP 111 + /* 112-127 are reserved for private experiments. */ #define R_ARM_RXPC25 249 Index: sys/arch/hppa/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/hppa/include/elf_machdep.h,v retrieving revision 1.2 diff -u -p -u -r1.2 elf_machdep.h --- sys/arch/hppa/include/elf_machdep.h 19 May 2009 05:50:58 -0000 1.2 +++ sys/arch/hppa/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -126,4 +126,25 @@ #define R_PARISC_GNU_VTENTRY 232 #define R_PARISC_GNU_VTINHERIT 233 +/* TLS relocations */ +#define R_PARISC_TLS_GD21L 234 +#define R_PARISC_TLS_GD14R 235 +#define R_PARISC_TLS_GDCALL 236 +#define R_PARISC_TLS_LDM21L 237 +#define R_PARISC_TLS_LDM14R 238 +#define R_PARISC_TLS_LDMCALL 239 +#define R_PARISC_TLS_LDO21L 240 +#define R_PARISC_TLS_LDO14R 241 +#define R_PARISC_TLS_DTPMOD32 242 +#define R_PARISC_TLS_DTPMOD64 243 +#define R_PARISC_TLS_DTPOFF32 244 +#define R_PARISC_TLS_DTPOFF64 245 + +#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L +#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R +#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L +#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R +#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 +#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 + #define R_TYPE(name) __CONCAT(R_PARISC_,name) Index: sys/arch/i386/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/i386/include/elf_machdep.h,v retrieving revision 1.9 diff -u -p -u -r1.9 elf_machdep.h --- sys/arch/i386/include/elf_machdep.h 9 Dec 2001 23:05:57 -0000 1.9 +++ sys/arch/i386/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -26,10 +26,38 @@ #define R_386_RELATIVE 8 #define R_386_GOTOFF 9 #define R_386_GOTPC 10 + +/* TLS relocations */ +#define R_386_TLS_TPOFF 14 +#define R_386_TLS_IE 15 +#define R_386_TLS_GOTIE 16 +#define R_386_TLS_LE 17 +#define R_386_TLS_GD 18 +#define R_386_TLS_LDM 19 + /* The following relocations are GNU extensions. */ #define R_386_16 20 #define R_386_PC16 21 #define R_386_8 22 #define R_386_PC8 23 +/* More TLS relocations */ +#define R_386_TLS_GD_32 24 +#define R_386_TLS_GD_PUSH 25 +#define R_386_TLS_GD_CALL 26 +#define R_386_TLS_GD_POP 27 +#define R_386_TLS_LDM_32 28 +#define R_386_TLS_LDM_PUSH 29 +#define R_386_TLS_LDM_CALL 30 +#define R_386_TLS_LDM_POP 31 +#define R_386_TLS_LDO_32 32 +#define R_386_TLS_IE_32 33 +#define R_386_TLS_LE_32 34 +#define R_386_TLS_DTPMOD32 35 +#define R_386_TLS_DTPOFF32 36 +#define R_386_TLS_TPOFF32 37 +#define R_386_TLS_GOTDESC 39 +#define R_386_TLS_DESC_CALL 40 +#define R_386_TLS_DESC 41 + #define R_TYPE(name) __CONCAT(R_386_,name) Index: sys/arch/m68k/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/m68k/include/elf_machdep.h,v retrieving revision 1.7 diff -u -p -u -r1.7 elf_machdep.h --- sys/arch/m68k/include/elf_machdep.h 28 Jan 2002 21:34:48 -0000 1.7 +++ sys/arch/m68k/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -44,4 +44,24 @@ #define R_68K_JMP_SLOT 21 #define R_68K_RELATIVE 22 +/* TLS relocations */ +#define R_68K_TLS_GD32 25 +#define R_68K_TLS_GD16 26 +#define R_68K_TLS_GD8 27 +#define R_68K_TLS_LDM32 28 +#define R_68K_TLS_LDM16 29 +#define R_68K_TLS_LDM8 30 +#define R_68K_TLS_LDO32 31 +#define R_68K_TLS_LDO16 32 +#define R_68K_TLS_LDO8 33 +#define R_68K_TLS_IE32 34 +#define R_68K_TLS_IE16 35 +#define R_68K_TLS_IE8 36 +#define R_68K_TLS_LE32 37 +#define R_68K_TLS_LE16 38 +#define R_68K_TLS_LE8 39 +#define R_68K_TLS_DTPMOD32 40 +#define R_68K_TLS_DTPREL32 41 +#define R_68K_TLS_TPREL32 42 + #define R_TYPE(name) __CONCAT(R_68K_,name) Index: sys/arch/mips/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/mips/include/elf_machdep.h,v retrieving revision 1.10 diff -u -p -u -r1.10 elf_machdep.h --- sys/arch/mips/include/elf_machdep.h 11 Dec 2005 12:18:09 -0000 1.10 +++ sys/arch/mips/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -63,9 +63,23 @@ #define R_MIPS_PJUMP 35 #define R_MIPS_RELGOT 36 -#define R_MIPS_max 37 -#define R_TYPE(name) __CONCAT(R_MIPS_,name) +#define R_MIPS_TLS_DTPMOD32 38 /* Module number 32 bit */ +#define R_MIPS_TLS_DTPREL32 39 /* Module-relative offset 32 bit */ +#define R_MIPS_TLS_DTPMOD64 40 /* Module number 64 bit */ +#define R_MIPS_TLS_DTPREL64 41 /* Module-relative offset 64 bit */ +#define R_MIPS_TLS_GD 42 /* 16 bit GOT offset for GD */ +#define R_MIPS_TLS_LDM 43 /* 16 bit GOT offset for LDM */ +#define R_MIPS_TLS_DTPREL_HI16 44 /* Module-relative offset, high 16 bits */ +#define R_MIPS_TLS_DTPREL_LO16 45 /* Module-relative offset, low 16 bits */ +#define R_MIPS_TLS_GOTTPREL 46 /* 16 bit GOT offset for IE */ +#define R_MIPS_TLS_TPREL32 47 /* TP-relative offset, 32 bit */ +#define R_MIPS_TLS_TPREL64 48 /* TP-relative offset, 64 bit */ +#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */ +#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */ + +#define R_MIPS_max 51 +#define R_TYPE(name) __CONCAT(R_MIPS_,name) /* mips dynamic tags */ Index: sys/arch/powerpc/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/powerpc/include/elf_machdep.h,v retrieving revision 1.7 diff -u -p -u -r1.7 elf_machdep.h --- sys/arch/powerpc/include/elf_machdep.h 25 Nov 2006 18:04:33 -0000 1.7 +++ sys/arch/powerpc/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -53,4 +53,39 @@ #define R_PPC_PLT16_HA 31 #define R_PPC_SDAREL 32 +/* TLS relocations */ +#define R_PPC_TLS 67 + +#define R_PPC_DTPMOD32 68 +#define R_PPC_TPREL16 69 +#define R_PPC_TPREL16_LO 70 +#define R_PPC_TPREL16_HI 71 +#define R_PPC_TPREL16_HA 72 +#define R_PPC_TPREL32 73 +#define R_PPC_DTPREL16 74 +#define R_PPC_DTPREL16_LO 75 +#define R_PPC_DTPREL16_HI 76 +#define R_PPC_DTPREL16_HA 77 +#define R_PPC_DTPREL32 78 + +#define R_PPC_GOT_TLSGD16 79 +#define R_PPC_GOT_TLSGD16_LO 80 +#define R_PPC_GOT_TLSGD16_HI 81 +#define R_PPC_GOT_TLSGD16_HA 82 +#define R_PPC_GOT_TLSLD16 83 +#define R_PPC_GOT_TLSLD16_LO 84 +#define R_PPC_GOT_TLSLD16_HI 85 +#define R_PPC_GOT_TLSLD16_HA 86 + +#define R_PPC_GOT_TPREL16 87 +#define R_PPC_GOT_TPREL16_LO 88 +#define R_PPC_GOT_TPREL16_HI 89 +#define R_PPC_GOT_TPREL16_HA 90 +#define R_PPC_GOT_DTPREL16 91 +#define R_PPC_GOT_DTPREL16_LO 92 +#define R_PPC_GOT_DTPREL16_HI 93 +#define R_PPC_GOT_DTPREL16_HA 94 +#define R_PPC_TLSGD 95 +#define R_PPC_TLSLD 96 + #define R_TYPE(name) __CONCAT(R_PPC_,name) Index: sys/arch/sh3/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/sh3/include/elf_machdep.h,v retrieving revision 1.9 diff -u -p -u -r1.9 elf_machdep.h --- sys/arch/sh3/include/elf_machdep.h 25 Nov 2006 07:32:53 -0000 1.9 +++ sys/arch/sh3/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -62,6 +62,17 @@ #define R_SH_GNU_VTENTRY 35 #define R_SH_LOOP_START 36 #define R_SH_LOOP_END 37 + +/* TLS relocations */ +#define R_SH_TLS_GD_32 144 +#define R_SH_TLS_LD_32 145 +#define R_SH_TLS_LDO_32 146 +#define R_SH_TLS_IE_32 147 +#define R_SH_TLS_LE_32 148 +#define R_SH_TLS_DTPMOD32 149 +#define R_SH_TLS_DTPOFF32 150 +#define R_SH_TLS_TPOFF32 151 + #define R_SH_GOT32 160 #define R_SH_PLT32 161 #define R_SH_COPY 162 Index: sys/arch/sparc/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/sparc/include/elf_machdep.h,v retrieving revision 1.6 diff -u -p -u -r1.6 elf_machdep.h --- sys/arch/sparc/include/elf_machdep.h 9 Dec 2001 23:05:58 -0000 1.6 +++ sys/arch/sparc/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -63,4 +63,30 @@ #define R_SPARC_5 44 #define R_SPARC_6 45 +/* TLS relocations */ +#define R_SPARC_TLS_GD_HI22 56 +#define R_SPARC_TLS_GD_LO10 57 +#define R_SPARC_TLS_GD_ADD 58 +#define R_SPARC_TLS_GD_CALL 59 +#define R_SPARC_TLS_LDM_HI22 60 +#define R_SPARC_TLS_LDM_LO10 61 +#define R_SPARC_TLS_LDM_ADD 62 +#define R_SPARC_TLS_LDM_CALL 63 +#define R_SPARC_TLS_LDO_HIX22 64 +#define R_SPARC_TLS_LDO_LOX10 65 +#define R_SPARC_TLS_LDO_ADD 66 +#define R_SPARC_TLS_IE_HI22 67 +#define R_SPARC_TLS_IE_LO10 68 +#define R_SPARC_TLS_IE_LD 69 +#define R_SPARC_TLS_IE_LDX 70 +#define R_SPARC_TLS_IE_ADD 71 +#define R_SPARC_TLS_LE_HIX22 72 +#define R_SPARC_TLS_LE_LOX10 73 +#define R_SPARC_TLS_DTPMOD32 74 +#define R_SPARC_TLS_DTPMOD64 75 +#define R_SPARC_TLS_DTPOFF32 76 +#define R_SPARC_TLS_DTPOFF64 77 +#define R_SPARC_TLS_TPOFF32 78 +#define R_SPARC_TLS_TPOFF64 79 + #define R_TYPE(name) __CONCAT(R_SPARC_,name) Index: sys/arch/sparc64/include/elf_machdep.h =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/include/elf_machdep.h,v retrieving revision 1.9 diff -u -p -u -r1.9 elf_machdep.h --- sys/arch/sparc64/include/elf_machdep.h 14 Mar 2006 21:37:48 -0000 1.9 +++ sys/arch/sparc64/include/elf_machdep.h 19 May 2009 05:52:27 -0000 @@ -101,5 +101,30 @@ #define R_SPARC_UA64 54 #define R_SPARC_UA16 55 +/* TLS relocations */ +#define R_SPARC_TLS_GD_HI22 56 +#define R_SPARC_TLS_GD_LO10 57 +#define R_SPARC_TLS_GD_ADD 58 +#define R_SPARC_TLS_GD_CALL 59 +#define R_SPARC_TLS_LDM_HI22 60 +#define R_SPARC_TLS_LDM_LO10 61 +#define R_SPARC_TLS_LDM_ADD 62 +#define R_SPARC_TLS_LDM_CALL 63 +#define R_SPARC_TLS_LDO_HIX22 64 +#define R_SPARC_TLS_LDO_LOX10 65 +#define R_SPARC_TLS_LDO_ADD 66 +#define R_SPARC_TLS_IE_HI22 67 +#define R_SPARC_TLS_IE_LO10 68 +#define R_SPARC_TLS_IE_LD 69 +#define R_SPARC_TLS_IE_LDX 70 +#define R_SPARC_TLS_IE_ADD 71 +#define R_SPARC_TLS_LE_HIX22 72 +#define R_SPARC_TLS_LE_LOX10 73 +#define R_SPARC_TLS_DTPMOD32 74 +#define R_SPARC_TLS_DTPMOD64 75 +#define R_SPARC_TLS_DTPOFF32 76 +#define R_SPARC_TLS_DTPOFF64 77 +#define R_SPARC_TLS_TPOFF32 78 +#define R_SPARC_TLS_TPOFF64 79 #define R_TYPE(name) __CONCAT(R_SPARC_,name)