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.
This commit is contained in:
@@ -405,6 +405,7 @@ _glapi_add_dispatch( const char * const * function_names,
|
|||||||
unsigned i;
|
unsigned i;
|
||||||
int offset = ~0;
|
int offset = ~0;
|
||||||
|
|
||||||
|
init_glapi_relocs_once();
|
||||||
|
|
||||||
(void) memset( is_static, 0, sizeof( is_static ) );
|
(void) memset( is_static, 0, sizeof( is_static ) );
|
||||||
(void) memset( entry, 0, sizeof( entry ) );
|
(void) memset( entry, 0, sizeof( entry ) );
|
||||||
@@ -533,6 +534,8 @@ _glapi_get_proc_address(const char *funcName)
|
|||||||
_glapi_proc func;
|
_glapi_proc func;
|
||||||
struct _glapi_function * entry;
|
struct _glapi_function * entry;
|
||||||
|
|
||||||
|
init_glapi_relocs_once();
|
||||||
|
|
||||||
#ifdef MANGLE
|
#ifdef MANGLE
|
||||||
/* skip the prefix on the name */
|
/* skip the prefix on the name */
|
||||||
if (funcName[1] != 'g' || funcName[2] != 'l')
|
if (funcName[1] != 'g' || funcName[2] != 'l')
|
||||||
|
Reference in New Issue
Block a user