mesa: Rename GLX_USE_TLS to USE_ELF_TLS.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 3 Aug 2019 16:44:44 +0000 (18:44 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 3 Aug 2019 18:18:17 +0000 (20:18 +0200)
These days it is not GLX only and it does not work with all TLS
implementations.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
18 files changed:
docs/dispatch.html
meson.build
src/egl/main/eglcurrent.c
src/glx/glxclient.h
src/glx/glxcurrent.c
src/glx/tests/fake_glx_screen.cpp
src/loader/loader.c
src/mapi/entry.c
src/mapi/glapi/gen/gl_SPARC_asm.py
src/mapi/glapi/gen/gl_x86-64_asm.py
src/mapi/glapi/gen/gl_x86_asm.py
src/mapi/glapi/glapi.c
src/mapi/glapi/glapi.h
src/mapi/glapi/glapi_entrypoint.c
src/mapi/glapi/glapi_priv.h
src/mapi/mapi_glapi.c
src/mapi/u_current.c
src/mapi/u_current.h

index 7860f2833a830f7c96ecc256d1013fb8e159a92d..1e6377ad818d4fa37e1b4128c699c18eeae1b98e 100644 (file)
@@ -166,8 +166,8 @@ extern __thread struct _glapi_table *_glapi_tls_Dispatch
 </blockquote>
 
 <p>Use of this path is controlled by the preprocessor define
-<code>GLX_USE_TLS</code>.  Any platform capable of using TLS should use this as
-the default dispatch method.</p>
+<code>USE_ELF_TLS</code>.  Any platform capable of using ELF TLS should use this
+as the default dispatch method.</p>
 
 <h3>3.3. Assembly Language Dispatch Stubs</h3>
 
@@ -204,7 +204,7 @@ terribly relevant.</p>
 few preprocessor defines.</p>
 
 <ul>
-<li>If <code>GLX_USE_TLS</code> is defined, method #3 is used.</li>
+<li>If <code>USE_ELF_TLS</code> is defined, method #3 is used.</li>
 <li>If <code>HAVE_PTHREAD</code> is defined, method #2 is used.</li>
 <li>If none of the preceding are defined, method #1 is used.</li>
 </ul>
index 2ca672e492f9c41ba486be637111231e97987bc5..61fc8649d5592901ca08e04a59e3f26da1529a16 100644 (file)
@@ -375,9 +375,9 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
   endif
 endif
 
-# Android uses emutls for versions <= P/28. For GLX_USE_TLS we need ELF TLS.
+# Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
 if not with_platform_android or get_option('platform-sdk-version') >= 29
-  pre_args += '-DGLX_USE_TLS'
+  pre_args += '-DUSE_ELF_TLS'
 endif
 
 if with_glx != 'disabled'
index 2e7d164bce119729ccaa789176a0402288172d35..29be426802562e15efe3dafdebfc3582577da49f 100644 (file)
@@ -44,7 +44,7 @@ static EGLBoolean _egl_TSDInitialized;
 static tss_t _egl_TSD;
 static void _eglDestroyThreadInfo(_EGLThreadInfo *t);
 
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
 static __thread const _EGLThreadInfo *_egl_TLS
    __attribute__ ((tls_model("initial-exec")));
 #endif
@@ -52,14 +52,14 @@ static __thread const _EGLThreadInfo *_egl_TLS
 static inline void _eglSetTSD(const _EGLThreadInfo *t)
 {
    tss_set(_egl_TSD, (void *) t);
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
    _egl_TLS = t;
 #endif
 }
 
 static inline _EGLThreadInfo *_eglGetTSD(void)
 {
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
    return (_EGLThreadInfo *) _egl_TLS;
 #else
    return (_EGLThreadInfo *) tss_get(_egl_TSD);
index 3e8274e1c3ab9db0711954b8024e121a650f1cb4..2a7437fcd1b4381669dfbea4da520a50e9446453 100644 (file)
@@ -660,7 +660,7 @@ extern int __glXDebug;
 
 extern void __glXSetCurrentContext(struct glx_context * c);
 
-# if defined( GLX_USE_TLS )
+# if defined( USE_ELF_TLS )
 
 extern __thread void *__glX_tls_Context
    __attribute__ ((tls_model("initial-exec")));
@@ -671,7 +671,7 @@ extern __thread void *__glX_tls_Context
 
 extern struct glx_context *__glXGetCurrentContext(void);
 
-# endif /* defined( GLX_USE_TLS ) */
+# endif /* defined( USE_ELF_TLS ) */
 
 extern void __glXSetCurrentContextNull(void);
 
index 2b9c708c3ee6fc97fd11fa503bbdbbce54a21eb6..9c5d2af895639a380b536379352c1bb0a3a2fe5b 100644 (file)
@@ -67,7 +67,7 @@ struct glx_context dummyContext = {
 
 _X_HIDDEN pthread_mutex_t __glXmutex = PTHREAD_MUTEX_INITIALIZER;
 
-# if defined( GLX_USE_TLS )
+# if defined( USE_ELF_TLS )
 
 /**
  * Per-thread GLX context pointer.
@@ -132,7 +132,7 @@ __glXGetCurrentContext(void)
    return (v == NULL) ? &dummyContext : (struct glx_context *) v;
 }
 
-# endif /* defined( GLX_USE_TLS ) */
+# endif /* defined( USE_ELF_TLS ) */
 
 
 _X_HIDDEN void
index ca0ca3680536385928eb47de4e6573cd32ebcc22..e0f0b7c0db0a0884da98456166164d6aff403d4f 100644 (file)
@@ -102,7 +102,7 @@ struct glx_context dummyContext = {
 };
 __thread void *__glX_tls_Context = &dummyContext;
 
-#if !defined(GLX_USE_TLS)
+#if !defined(USE_ELF_TLS)
 extern "C" struct glx_context *
 __glXGetCurrentContext()
 {
index 3112af4be6001ad7ef08a79bd27a708e448e9dc6..d8d71c3020053d74d20f8ae6789f4a894872aeb7 100644 (file)
@@ -552,7 +552,7 @@ loader_open_driver(const char *driver_name,
          next = end;
 
       len = next - p;
-#if GLX_USE_TLS
+#if USE_ELF_TLS
       snprintf(path, sizeof(path), "%.*s/tls/%s_dri.so", len, p, driver_name);
       driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
 #endif
index 1e250122c4aa571e0219087f503e512281341cba..b5126ade4cb315922d822e704a4c684ed8c01db3 100644 (file)
 #endif
 
 #if defined(USE_X86_ASM) && defined(__GNUC__)
-#   ifdef GLX_USE_TLS
+#   ifdef USE_ELF_TLS
 #      include "entry_x86_tls.h"
 #   else                 
 #      include "entry_x86_tsd.h"
 #   endif
-#elif defined(USE_X86_64_ASM) && defined(__GNUC__) && defined(GLX_USE_TLS)
+#elif defined(USE_X86_64_ASM) && defined(__GNUC__) && defined(USE_ELF_TLS)
 #   include "entry_x86-64_tls.h"
 #elif defined(USE_PPC64LE_ASM) && defined(__GNUC__) && defined(PIPE_ARCH_LITTLE_ENDIAN)
-#   ifdef GLX_USE_TLS
+#   ifdef USE_ELF_TLS
 #      include "entry_ppc64le_tls.h"
 #   else
 #      include "entry_ppc64le_tsd.h"
index 0152958a8b9e63225f5334b89a86a335a6fb3637..34e83adaeca19d5098d6c80ceb4fd4178f2c2a5e 100644 (file)
@@ -77,7 +77,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
         print('\t add\t%o7, %g2, %g2')
         print('\t.size\t__glapi_sparc_get_pc, .-__glapi_sparc_get_pc')
         print('')
-        print('#ifdef GLX_USE_TLS')
+        print('#ifdef USE_ELF_TLS')
         print('')
         print('\tGLOBL_FN(__glapi_sparc_get_dispatch)')
         print('\tHIDDEN(__glapi_sparc_get_dispatch)')
index 36d3ecdde92c76e69180c20a0ac0d283e5277ee5..f51f513c5edfbb1a9f6f1925db22c4511aa5f1a3 100644 (file)
@@ -143,7 +143,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
         print('')
         print('\t.text')
         print('')
-        print('#ifdef GLX_USE_TLS')
+        print('#ifdef USE_ELF_TLS')
         print('')
         print('_x86_64_get_dispatch:')
         print('\tmovq\t_glapi_tls_Dispatch@GOTTPOFF(%rip), %rax')
@@ -227,7 +227,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
         if not f.is_static_entry_point(f.name):
             print('\tHIDDEN(GL_PREFIX(%s))' % (name))
         print('GL_PREFIX(%s):' % (name))
-        print('#if defined(GLX_USE_TLS)')
+        print('#if defined(USE_ELF_TLS)')
         print('\tcall\t_x86_64_get_dispatch@PLT')
         print('\tmovq\t%u(%%rax), %%r11' % (f.offset * 8))
         print('\tjmp\t*%r11')
@@ -258,7 +258,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
 
         print('\tmovq\t%u(%%rax), %%r11' % (f.offset * 8))
         print('\tjmp\t*%r11')
-        print('#endif /* defined(GLX_USE_TLS) */')
+        print('#endif /* defined(USE_ELF_TLS) */')
 
         print('\t.size\tGL_PREFIX(%s), .-GL_PREFIX(%s)' % (name, name))
         print('')
index ada849f35e93e60b3fc9be41219fcb429791582f..f373d15db4a51540562e15f03d3ee2cba1af6626 100644 (file)
@@ -81,7 +81,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
         print('#endif')
         print('')
         print('')
-        print('#ifdef GLX_USE_TLS')
+        print('#ifdef USE_ELF_TLS')
         print('')
         print('#ifdef GLX_X86_READONLY_TEXT')
         print('# define CTX_INSNS MOV_L(GS:(EAX), EAX)')
@@ -132,7 +132,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
         print('')
         print('SEG_TEXT')
         print('')
-        print('#ifdef GLX_USE_TLS')
+        print('#ifdef USE_ELF_TLS')
         print('')
         print('\tGLOBL\tGLNAME(_x86_get_dispatch)')
         print('\tHIDDEN(GLNAME(_x86_get_dispatch))')
@@ -161,9 +161,9 @@ class PrintGenericStubs(gl_XML.gl_print_base):
         print('#endif')
         print('')
 
-        print('#if defined( GLX_USE_TLS ) && !defined( GLX_X86_READONLY_TEXT )')
+        print('#if defined( USE_ELF_TLS ) && !defined( GLX_X86_READONLY_TEXT )')
         print('\t\t.section\twtext, "awx", @progbits')
-        print('#endif /* defined( GLX_USE_TLS ) */')
+        print('#endif /* defined( USE_ELF_TLS ) */')
 
         print('')
         print('\t\tALIGNTEXT16')
index 55258a476c76404516836183269078bebd8241a9..53cfd7f087a1b67824cdd6f9f26c32d7c52e16f0 100644 (file)
  * u_current.c.
  */
 
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
 /* not used, but defined for compatibility */
 const struct _glapi_table *_glapi_Dispatch;
 const void *_glapi_Context;
-#endif /* GLX_USE_TLS */
+#endif /* USE_ELF_TLS */
 
 void
 _glapi_destroy_multithread(void)
index d5d4e0a03a66fa55ef28538a36aeb889baf2d2da..3e852a935bc8031bf725252004e1b853b0a40153 100644 (file)
@@ -86,7 +86,7 @@ typedef void (*_glapi_nop_handler_proc)(const char *name);
 struct _glapi_table;
 
 
-#if defined (GLX_USE_TLS)
+#if defined (USE_ELF_TLS)
 
 _GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch
     __attribute__((tls_model("initial-exec")));
@@ -111,7 +111,7 @@ _GLAPI_EXPORT extern void *_glapi_Context;
 #define GET_CURRENT_CONTEXT(C)  struct gl_context *C = (struct gl_context *) \
      (likely(_glapi_Context) ? _glapi_Context : _glapi_get_context())
 
-#endif /* defined (GLX_USE_TLS) */
+#endif /* defined (USE_ELF_TLS) */
 
 
 void
index f1f7f5e5955a9edbbe52af630fcb59127d4b2c4e..ff20bac48101d6545dd8a06eb1886a8662cf2446 100644 (file)
@@ -38,7 +38,7 @@
 
 #ifdef USE_X86_ASM
 
-#if defined( GLX_USE_TLS )
+#if defined( USE_ELF_TLS )
 extern       GLubyte gl_dispatch_functions_start[];
 extern       GLubyte gl_dispatch_functions_end[];
 #else
@@ -68,7 +68,7 @@ get_entrypoint_address(unsigned int functionOffset)
 static void
 init_glapi_relocs( void )
 {
-#if defined(GLX_USE_TLS) && !defined(GLX_X86_READONLY_TEXT)
+#if defined(USE_ELF_TLS) && !defined(GLX_X86_READONLY_TEXT)
     extern unsigned long _x86_get_dispatch(void);
     char run_time_patch[] = {
        0x65, 0xa1, 0, 0, 0, 0 /* movl %gs:0,%eax */
@@ -121,7 +121,7 @@ fill_in_entrypoint_offset(_glapi_proc entrypoint, unsigned int offset)
 {
    GLubyte * const code = (GLubyte *) entrypoint;
 
-#if defined(GLX_USE_TLS)
+#if defined(USE_ELF_TLS)
    *((unsigned int *)(code +  8)) = 4 * offset;
 #else
    *((unsigned int *)(code + 11)) = 4 * offset;
@@ -137,9 +137,9 @@ extern void __glapi_sparc_icache_flush(unsigned int *);
 static void
 init_glapi_relocs( void )
 {
-#if defined(HAVE_PTHREAD) || defined(GLX_USE_TLS)
+#if defined(HAVE_PTHREAD) || defined(USE_ELF_TLS)
     static const unsigned int template[] = {
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
        0x05000000, /* sethi %hi(_glapi_tls_Dispatch), %g2 */
        0x8730e00a, /* srl %g3, 10, %g3 */
        0x8410a000, /* or %g2, %lo(_glapi_tls_Dispatch), %g2 */
@@ -190,7 +190,7 @@ init_glapi_relocs( void )
        0x81e80000, /*             -->  restore  */
 #endif
     };
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
     extern unsigned int __glapi_sparc_tls_stub;
     extern unsigned long __glapi_sparc_get_dispatch(void);
     unsigned int *code = &__glapi_sparc_tls_stub;
@@ -203,7 +203,7 @@ init_glapi_relocs( void )
     int idx;
 #endif
 
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
     code[0] = template[0] | (dispatch >> 10);
     code[1] = template[1];
     __glapi_sparc_icache_flush(&code[0]);
@@ -267,14 +267,14 @@ init_glapi_relocs( void )
 _glapi_proc
 generate_entrypoint(GLuint functionOffset)
 {
-#if defined(HAVE_PTHREAD) || defined(GLX_USE_TLS)
+#if defined(HAVE_PTHREAD) || defined(USE_ELF_TLS)
    static const unsigned int template[] = {
       0x07000000, /* sethi %hi(0), %g3 */
       0x8210000f, /* mov  %o7, %g1 */
       0x40000000, /* call */
       0x9e100001, /* mov  %g1, %o7 */
    };
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
    extern unsigned int __glapi_sparc_tls_stub;
    unsigned long call_dest = (unsigned long ) &__glapi_sparc_tls_stub;
 #else
@@ -338,7 +338,7 @@ fill_in_entrypoint_offset(_glapi_proc entrypoint, GLuint offset)
 void
 init_glapi_relocs_once( void )
 {
-#if defined(HAVE_PTHREAD) || defined(GLX_USE_TLS)
+#if defined(HAVE_PTHREAD) || defined(USE_ELF_TLS)
    static once_flag flag = ONCE_FLAG_INIT;
    call_once(&flag, init_glapi_relocs);
 #endif
index ddfc594a9792bd7398e6afb19954a1da01b993b2..ad37c8bfdf3473262b633501db692f2eabf793fd 100644 (file)
@@ -62,7 +62,7 @@ get_entrypoint_address(unsigned int functionOffset);
  * Size (in bytes) of dispatch function (entrypoint).
  */
 #if defined(USE_X86_ASM)
-# if defined(GLX_USE_TLS)
+# if defined(USE_ELF_TLS)
 #  define DISPATCH_FUNCTION_SIZE  16
 # else
 #  define DISPATCH_FUNCTION_SIZE  32
@@ -70,7 +70,7 @@ get_entrypoint_address(unsigned int functionOffset);
 #endif
 
 #if defined(USE_X64_64_ASM)
-# if defined(GLX_USE_TLS)
+# if defined(USE_ELF_TLS)
 #  define DISPATCH_FUNCTION_SIZE  16
 # endif
 #endif
index 3a376e81bdda0ccee9debabd7b058f3d2b352872..f25c81a4ae6e5b21450d8d66e824ba4a4ac1e896 100644 (file)
  * u_current.c.
  */
 
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
 /* not used, but defined for compatibility */
 const struct _glapi_table *_glapi_Dispatch;
 const void *_glapi_Context;
-#endif /* GLX_USE_TLS */
+#endif /* USE_ELF_TLS */
 
 void
 _glapi_destroy_multithread(void)
index 1402cea45d5074e3575da1e9441c2f93272c9132..554c974047745b80a63adaa54809cde149d9d8f3 100644 (file)
@@ -97,7 +97,7 @@ extern void (*__glapi_noop_table[])(void);
  * between TLS enabled loaders and non-TLS DRI drivers.
  */
 /*@{*/
-#if defined(GLX_USE_TLS)
+#if defined(USE_ELF_TLS)
 
 __thread struct _glapi_table *u_current_table
     __attribute__((tls_model("initial-exec")))
@@ -116,21 +116,21 @@ tss_t u_current_table_tsd;
 static tss_t u_current_context_tsd;
 static int ThreadSafe;
 
-#endif /* defined(GLX_USE_TLS) */
+#endif /* defined(USE_ELF_TLS) */
 /*@}*/
 
 
 void
 u_current_destroy(void)
 {
-#if !defined(GLX_USE_TLS)
+#if !defined(USE_ELF_TLS)
    tss_delete(u_current_table_tsd);
    tss_delete(u_current_context_tsd);
 #endif
 }
 
 
-#if !defined(GLX_USE_TLS)
+#if !defined(USE_ELF_TLS)
 
 static void
 u_current_init_tsd(void)
@@ -230,7 +230,7 @@ u_current_set_context(const void *ptr)
 {
    u_current_init();
 
-#if defined(GLX_USE_TLS)
+#if defined(USE_ELF_TLS)
    u_current_context = (void *) ptr;
 #else
    tss_set(u_current_context_tsd, (void *) ptr);
@@ -246,7 +246,7 @@ u_current_set_context(const void *ptr)
 void *
 u_current_get_context_internal(void)
 {
-#if defined(GLX_USE_TLS)
+#if defined(USE_ELF_TLS)
    return u_current_context;
 #else
    return ThreadSafe ? tss_get(u_current_context_tsd) : u_current_context;
@@ -268,7 +268,7 @@ u_current_set_table(const struct _glapi_table *tbl)
    if (!tbl)
       tbl = (const struct _glapi_table *) table_noop_array;
 
-#if defined(GLX_USE_TLS)
+#if defined(USE_ELF_TLS)
    u_current_table = (struct _glapi_table *) tbl;
 #else
    tss_set(u_current_table_tsd, (void *) tbl);
@@ -282,7 +282,7 @@ u_current_set_table(const struct _glapi_table *tbl)
 struct _glapi_table *
 u_current_get_table_internal(void)
 {
-#if defined(GLX_USE_TLS)
+#if defined(USE_ELF_TLS)
    return u_current_table;
 #else
    if (ThreadSafe)
index 3c9a414ee84d86d3062be9302677a1cd381eb3a7..9a79f0bf93acec2cd985fac262cfe7a24f5c0471 100644 (file)
@@ -10,7 +10,7 @@
 
 #include "glapi/glapi.h"
 
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
 #define u_current_table _glapi_tls_Dispatch
 #define u_current_context _glapi_tls_Context
 #else
@@ -27,7 +27,7 @@
 
 struct _glapi_table;
 
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
 
 extern __thread struct _glapi_table *u_current_table
     __attribute__((tls_model("initial-exec")));
@@ -35,12 +35,12 @@ extern __thread struct _glapi_table *u_current_table
 extern __thread void *u_current_context
     __attribute__((tls_model("initial-exec")));
 
-#else /* GLX_USE_TLS */
+#else /* USE_ELF_TLS */
 
 extern struct _glapi_table *u_current_table;
 extern void *u_current_context;
 
-#endif /* GLX_USE_TLS */
+#endif /* USE_ELF_TLS */
 
 #endif /* MAPI_MODE_UTIL || MAPI_MODE_GLAPI || MAPI_MODE_BRIDGE */
 
@@ -65,7 +65,7 @@ u_current_get_context_internal(void);
 static inline const struct _glapi_table *
 u_current_get_table(void)
 {
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
    return u_current_table;
 #else
    return (likely(u_current_table) ?
@@ -76,7 +76,7 @@ u_current_get_table(void)
 static inline const void *
 u_current_get_context(void)
 {
-#ifdef GLX_USE_TLS
+#ifdef USE_ELF_TLS
    return u_current_context;
 #else
    return likely(u_current_context) ? u_current_context : u_current_get_context_internal();