[Mesa-dev] [PATCH] mapi: Fix tls with shared/es-glapi on x86-64
Benjamin Franzke
benjaminfranzke at googlemail.com
Tue Jun 7 11:33:46 PDT 2011
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).
---
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 d3b606c..dad596a 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) \
--
1.7.3.4
More information about the mesa-dev
mailing list