[Mesa-dev] [PATCH v3 2/2] GLX_TLS: use TLS macros when define those TLS variables.
zhigang.gong at linux.intel.com
zhigang.gong at linux.intel.com
Wed Feb 15 03:41:31 PST 2012
From: Zhigang Gong <zhigang.gong at linux.intel.com>
Use the properate way detected in autoconf stage to define
those TLS variables rather than using hard coded
"attribute..."
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
---
src/egl/main/eglcurrent.c | 3 +--
src/glx/glxclient.h | 3 +--
src/glx/glxcurrent.c | 3 +--
src/mapi/glapi/glapi.h | 6 ++----
src/mapi/mapi/u_current.c | 6 ++----
src/mapi/mapi/u_current.h | 6 ++----
src/mesa/drivers/dri/common/dri_test.c | 6 ++----
src/mesa/drivers/x11/glxapi.c | 3 +--
8 files changed, 12 insertions(+), 24 deletions(-)
diff --git a/src/egl/main/eglcurrent.c b/src/egl/main/eglcurrent.c
index 54fc4f7..bbd46ac 100644
--- a/src/egl/main/eglcurrent.c
+++ b/src/egl/main/eglcurrent.c
@@ -51,8 +51,7 @@ static pthread_key_t _egl_TSD;
static void (*_egl_FreeTSD)(_EGLThreadInfo *);
#ifdef GLX_USE_TLS
-static __thread const _EGLThreadInfo *_egl_TLS
- __attribute__ ((tls_model("initial-exec")));
+static TLS const _EGLThreadInfo * _egl_TLS;
#endif
static INLINE void _eglSetTSD(const _EGLThreadInfo *t)
diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index f8ae450..06785df 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -630,9 +630,8 @@ extern void __glXSetCurrentContext(struct glx_context * c);
# if defined( GLX_USE_TLS )
-extern __thread void *__glX_tls_Context
- __attribute__ ((tls_model("initial-exec")));
+extern TLS void *__glX_tls_Context;
# define __glXGetCurrentContext() __glX_tls_Context
# else
diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c
index c92a2fd..f295d2c 100644
--- a/src/glx/glxcurrent.c
+++ b/src/glx/glxcurrent.c
@@ -86,8 +86,7 @@ _X_HIDDEN pthread_mutex_t __glXmutex = PTHREAD_MUTEX_INITIALIZER;
* \b never be \c NULL. This is important! Because of this
* \c __glXGetCurrentContext can be implemented as trivial macro.
*/
-__thread void *__glX_tls_Context __attribute__ ((tls_model("initial-exec")))
- = &dummyContext;
+TLS void *__glX_tls_Context = &dummyContext;
_X_HIDDEN void
__glXSetCurrentContext(struct glx_context * c)
diff --git a/src/mapi/glapi/glapi.h b/src/mapi/glapi/glapi.h
index f685475..ef69e64 100644
--- a/src/mapi/glapi/glapi.h
+++ b/src/mapi/glapi/glapi.h
@@ -85,11 +85,9 @@ struct _glapi_table;
#if defined (GLX_USE_TLS)
-_GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch
- __attribute__((tls_model("initial-exec")));
+_GLAPI_EXPORT extern TLS struct _glapi_table * _glapi_tls_Dispatch;
-_GLAPI_EXPORT extern __thread void * _glapi_tls_Context
- __attribute__((tls_model("initial-exec")));
+_GLAPI_EXPORT extern TLS void * _glapi_tls_Context;
_GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;
_GLAPI_EXPORT extern const void *_glapi_Context;
diff --git a/src/mapi/mapi/u_current.c b/src/mapi/mapi/u_current.c
index 21a07ab..f4e241e 100644
--- a/src/mapi/mapi/u_current.c
+++ b/src/mapi/mapi/u_current.c
@@ -99,12 +99,10 @@ extern void (*__glapi_noop_table[])(void);
/*@{*/
#if defined(GLX_USE_TLS)
-__thread struct mapi_table *u_current_table
- __attribute__((tls_model("initial-exec")))
+TLS struct mapi_table *u_current_table
= (struct mapi_table *) table_noop_array;
-__thread void *u_current_user
- __attribute__((tls_model("initial-exec")));
+TLS void *u_current_user;
#else
diff --git a/src/mapi/mapi/u_current.h b/src/mapi/mapi/u_current.h
index f9cffd8..0584dc8 100644
--- a/src/mapi/mapi/u_current.h
+++ b/src/mapi/mapi/u_current.h
@@ -30,11 +30,9 @@ struct mapi_table;
#ifdef GLX_USE_TLS
-extern __thread struct mapi_table *u_current_table
- __attribute__((tls_model("initial-exec")));
+extern TLS struct mapi_table *u_current_table;
-extern __thread void *u_current_user
- __attribute__((tls_model("initial-exec")));
+extern TLS void *u_current_user;
#else /* GLX_USE_TLS */
diff --git a/src/mesa/drivers/dri/common/dri_test.c b/src/mesa/drivers/dri/common/dri_test.c
index 793f0c3..aaad90c 100644
--- a/src/mesa/drivers/dri/common/dri_test.c
+++ b/src/mesa/drivers/dri/common/dri_test.c
@@ -11,11 +11,9 @@ extern char __driDriverExtensions[];
#if defined(GLX_USE_TLS)
-PUBLIC __thread struct _glapi_table * _glapi_tls_Dispatch
- __attribute__((tls_model("initial-exec")));
+PUBLIC TLS struct _glapi_table * _glapi_tls_Dispatch;
-PUBLIC __thread void * _glapi_tls_Context
- __attribute__((tls_model("initial-exec")));
+PUBLIC TLS void * _glapi_tls_Context;
PUBLIC const struct _glapi_table *_glapi_Dispatch;
PUBLIC const void *_glapi_Context;
diff --git a/src/mesa/drivers/x11/glxapi.c b/src/mesa/drivers/x11/glxapi.c
index 255a37b..57f3e9d 100644
--- a/src/mesa/drivers/x11/glxapi.c
+++ b/src/mesa/drivers/x11/glxapi.c
@@ -159,8 +159,7 @@ get_dispatch(Display *dpy)
* GLX API current context.
*/
#if defined(GLX_USE_TLS)
-PUBLIC __thread void * CurrentContext
- __attribute__((tls_model("initial-exec")));
+PUBLIC TLS void * CurrentContext;
#elif defined(THREADS)
static _glthread_TSD ContextTSD; /**< Per-thread context pointer */
#else
--
1.7.4.4
More information about the mesa-dev
mailing list