From 5ec140c17b54c25920091501b665b9aa809cc5e8 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Mon, 11 Jul 2016 10:44:25 -0700 Subject: [PATCH] mapi: Massage code to allow clang to compile. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit According to https://llvm.org/bugs/show_bug.cgi?id=19778#c3 this code was violating the spec, resulting in it failing to compile. Cc: mesa-stable@lists.freedesktop.org Co-authored-by: Tomasz Paweł Gajc Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89599 Reviewed-by: Emil Velikov --- configure.ac | 1 + src/mapi/entry_x86-64_tls.h | 9 +++++++-- src/mapi/entry_x86_tls.h | 10 ++++++++-- src/mapi/entry_x86_tsd.h | 9 +++++++-- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 3799d8dca30..1ca8359b902 100644 --- a/configure.ac +++ b/configure.ac @@ -226,6 +226,7 @@ AX_GCC_FUNC_ATTRIBUTE([packed]) AX_GCC_FUNC_ATTRIBUTE([pure]) AX_GCC_FUNC_ATTRIBUTE([returns_nonnull]) AX_GCC_FUNC_ATTRIBUTE([unused]) +AX_GCC_FUNC_ATTRIBUTE([visibility]) AX_GCC_FUNC_ATTRIBUTE([warn_unused_result]) AX_GCC_FUNC_ATTRIBUTE([weak]) diff --git a/src/mapi/entry_x86-64_tls.h b/src/mapi/entry_x86-64_tls.h index 38facccc870..c5262a18ddb 100644 --- a/src/mapi/entry_x86-64_tls.h +++ b/src/mapi/entry_x86-64_tls.h @@ -25,6 +25,11 @@ * Chia-I Wu */ +#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY +#define HIDDEN __attribute__((visibility("hidden"))) +#else +#define HIDDEN +#endif __asm__(".text\n" ".balign 32\n" @@ -54,8 +59,8 @@ entry_patch_public(void) { } -static char -x86_64_entry_start[]; +extern char +x86_64_entry_start[] HIDDEN; mapi_func entry_get_public(int slot) diff --git a/src/mapi/entry_x86_tls.h b/src/mapi/entry_x86_tls.h index 46d2eced24f..231b4093fe6 100644 --- a/src/mapi/entry_x86_tls.h +++ b/src/mapi/entry_x86_tls.h @@ -27,6 +27,12 @@ #include +#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY +#define HIDDEN __attribute__((visibility("hidden"))) +#else +#define HIDDEN +#endif + __asm__(".text"); __asm__("x86_current_tls:\n\t" @@ -71,8 +77,8 @@ __asm__(".text"); extern unsigned long x86_current_tls(); -static char x86_entry_start[]; -static char x86_entry_end[]; +extern char x86_entry_start[] HIDDEN; +extern char x86_entry_end[] HIDDEN; void entry_patch_public(void) diff --git a/src/mapi/entry_x86_tsd.h b/src/mapi/entry_x86_tsd.h index ea7bacb43e4..03d973520fe 100644 --- a/src/mapi/entry_x86_tsd.h +++ b/src/mapi/entry_x86_tsd.h @@ -25,6 +25,11 @@ * Chia-I Wu */ +#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY +#define HIDDEN __attribute__((visibility("hidden"))) +#else +#define HIDDEN +#endif #define X86_ENTRY_SIZE 32 @@ -58,8 +63,8 @@ __asm__(".balign 32\n" #include #include "u_execmem.h" -static const char x86_entry_start[]; -static const char x86_entry_end[]; +extern const char x86_entry_start[] HIDDEN; +extern const char x86_entry_end[] HIDDEN; void entry_patch_public(void) -- 2.30.2