summaryrefslogtreecommitdiff
path: root/glx
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@apple.com>2011-03-22 19:01:48 -0700
committerJeremy Huddleston <jeremyhu@apple.com>2011-03-23 09:11:33 -0700
commitc55baebf4ebf1887262cc16899eb297b9f284f6e (patch)
treed9349a14c71f893d8d08c0724a79fa7c6223efd3 /glx
parent03f45df93469f6aef391e97007b9614e0770cc4c (diff)
GLX: Support TLS with better portability
AX_TLS detects when toolchains support __thread or __declspec(thread), but existing code assumed __thread. This also adds a check to configure.ac to error out if TLS is requested but unsupported. Found-by: Tinderbox http://tinderbox.x.org/builds/2011-03-22-0007 Regression-from: 82b1eaa6cad20f39dbf15573bdb3d62acbcd91f9 Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Tom Fogal <tfogal@alumni.unh.edu> Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Diffstat (limited to 'glx')
-rw-r--r--glx/glapi.c4
-rw-r--r--glx/glapi.h2
-rw-r--r--glx/glthread.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/glx/glapi.c b/glx/glapi.c
index 209ae50c0..19576a775 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -184,11 +184,11 @@ static GLint NoOpUnused(void)
/*@{*/
#if defined(GLX_USE_TLS)
-PUBLIC __thread struct _glapi_table * _glapi_tls_Dispatch
+PUBLIC TLS struct _glapi_table * _glapi_tls_Dispatch
__attribute__((tls_model("initial-exec")))
= (struct _glapi_table *) __glapi_noop_table;
-PUBLIC __thread void * _glapi_tls_Context
+PUBLIC TLS void * _glapi_tls_Context
__attribute__((tls_model("initial-exec")));
PUBLIC const struct _glapi_table *_glapi_Dispatch = NULL;
diff --git a/glx/glapi.h b/glx/glapi.h
index 80b53aa92..dec8328cd 100644
--- a/glx/glapi.h
+++ b/glx/glapi.h
@@ -83,7 +83,7 @@ typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
const extern void *_glapi_Context;
const extern struct _glapi_table *_glapi_Dispatch;
-extern __thread void * _glapi_tls_Context
+extern TLS void * _glapi_tls_Context
__attribute__((tls_model("initial-exec")));
# define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) _glapi_tls_Context
diff --git a/glx/glthread.h b/glx/glthread.h
index 28793fcc7..140e2aa8e 100644
--- a/glx/glthread.h
+++ b/glx/glthread.h
@@ -233,7 +233,7 @@ _glthread_SetTSD(_glthread_TSD *, void *);
#if defined(GLX_USE_TLS)
-extern __thread struct _glapi_table * _glapi_tls_Dispatch
+extern TLS struct _glapi_table * _glapi_tls_Dispatch
__attribute__((tls_model("initial-exec")));
#define GET_DISPATCH() _glapi_tls_Dispatch