summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2011-06-07 20:15:51 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2011-06-07 20:33:05 +0200
commit9bebae74c534b412c03a1f3b601df5bfc96e65c1 (patch)
treecc57ecd35fab264772617cf3b4787c481aa642c3
parent23b6f9606dc247488835745668b3686218612536 (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.h8
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) \