diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-06-07 20:15:51 +0200 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-06-07 20:33:05 +0200 |
commit | 9bebae74c534b412c03a1f3b601df5bfc96e65c1 (patch) | |
tree | cc57ecd35fab264772617cf3b4787c481aa642c3 | |
parent | 23b6f9606dc247488835745668b3686218612536 (diff) |
mapi: Fix tls with shared/es-glapi on x86-64glapi
x86_64_entry_start needs to be bound global, in order to have the
correct address in entry_get_public (seems not to be needed on x86).
Otherwise addresses needed for _glapi_proc_address will be computed
from some random offset (0x6400229a61058b48 in my case).
-rw-r--r-- | src/mapi/mapi/entry_x86-64_tls.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mapi/mapi/entry_x86-64_tls.h b/src/mapi/mapi/entry_x86-64_tls.h index d3b606c8ac..dad596ada8 100644 --- a/src/mapi/mapi/entry_x86-64_tls.h +++ b/src/mapi/mapi/entry_x86-64_tls.h @@ -28,6 +28,12 @@ #include "u_macros.h" +#ifdef __GNUC__ +# define HIDDEN(x) ".hidden " U_STRINGIFY(x) "\n" +#else +# define HIDDEN(x) +#endif + #ifdef __linux__ __asm__(".section .note.ABI-tag, \"a\"\n\t" ".p2align 2\n\t" @@ -43,6 +49,8 @@ __asm__(".section .note.ABI-tag, \"a\"\n\t" __asm__(".text\n" ".balign 32\n" + ".globl x86_64_entry_start\n" + HIDDEN(x86_64_entry_start) "x86_64_entry_start:"); #define STUB_ASM_ENTRY(func) \ |