2
need gcc-4.3.4 (gcc-4_3-branch r149015)
3
or gcc-4.4.1 (gcc-4_4-branch r149016)
4
or gcc-4.5.x (trunk r149593) or newer
5
which have a properly fixed gcc/emutls.c,
6
along with mingw-w64-headers r960 and
10
#include <sys/types.h>
15
#if defined(_MSC_VER) /* MS Visual Studio */
16
#define __threadlocal__ __declspec(thread)
17
#elif defined(__GNUC__) && ((__GNUC__ > 4) \
18
|| (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
19
/* gcc >= 4.3, also needs binutils >= 2.19 */
20
#define __threadlocal__ __thread
22
#error No keyword for TLS vars is defined.
25
__threadlocal__ int tvar = 0;
27
int main (int argc, char **argv)
32
printf("not referencing tvar\n");
36
printf("incrementing tvar..\n");
38
printf(" .. done (%i)\n", tvar);
40
printf("exiting....\n");