summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorGeorge Sapountzis <[email protected]>2010-03-10 00:43:01 +0200
committerGeorge Sapountzis <[email protected]>2010-03-10 18:44:47 +0200
commit7cd8f0ef9d905080dc857c4739be9780b24a7fd2 (patch)
tree1164ea5adb38f45f8333127136e50b4cb31f8616 /src/mesa
parentbae31355150f66f7130d76a2ab4d4b735f239c71 (diff)
glapi: fix bug with tls and relocs
add_dispatch (driver) and maybe get_proc_address (client) may be called before set_dispatch is called, which results in generate_entrypoint using an unreloced function template.
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/glapi/glapi_getproc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/glapi/glapi_getproc.c b/src/mesa/glapi/glapi_getproc.c
index 5a8c6953ac2..295657875dc 100644
--- a/src/mesa/glapi/glapi_getproc.c
+++ b/src/mesa/glapi/glapi_getproc.c
@@ -405,6 +405,7 @@ _glapi_add_dispatch( const char * const * function_names,
unsigned i;
int offset = ~0;
+ init_glapi_relocs_once();
(void) memset( is_static, 0, sizeof( is_static ) );
(void) memset( entry, 0, sizeof( entry ) );
@@ -533,6 +534,8 @@ _glapi_get_proc_address(const char *funcName)
_glapi_proc func;
struct _glapi_function * entry;
+ init_glapi_relocs_once();
+
#ifdef MANGLE
/* skip the prefix on the name */
if (funcName[1] != 'g' || funcName[2] != 'l')