mapi: Massage code to allow clang to compile.

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 <tpgxyz@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89599
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
Matt Turner 2016-07-11 10:44:25 -07:00
parent 6bc5491193
commit 5ec140c17b
4 changed files with 23 additions and 6 deletions

View file

@ -226,6 +226,7 @@ AX_GCC_FUNC_ATTRIBUTE([packed])
AX_GCC_FUNC_ATTRIBUTE([pure]) AX_GCC_FUNC_ATTRIBUTE([pure])
AX_GCC_FUNC_ATTRIBUTE([returns_nonnull]) AX_GCC_FUNC_ATTRIBUTE([returns_nonnull])
AX_GCC_FUNC_ATTRIBUTE([unused]) AX_GCC_FUNC_ATTRIBUTE([unused])
AX_GCC_FUNC_ATTRIBUTE([visibility])
AX_GCC_FUNC_ATTRIBUTE([warn_unused_result]) AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
AX_GCC_FUNC_ATTRIBUTE([weak]) AX_GCC_FUNC_ATTRIBUTE([weak])

View file

@ -25,6 +25,11 @@
* Chia-I Wu <olv@lunarg.com> * Chia-I Wu <olv@lunarg.com>
*/ */
#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY
#define HIDDEN __attribute__((visibility("hidden")))
#else
#define HIDDEN
#endif
__asm__(".text\n" __asm__(".text\n"
".balign 32\n" ".balign 32\n"
@ -54,8 +59,8 @@ entry_patch_public(void)
{ {
} }
static char extern char
x86_64_entry_start[]; x86_64_entry_start[] HIDDEN;
mapi_func mapi_func
entry_get_public(int slot) entry_get_public(int slot)

View file

@ -27,6 +27,12 @@
#include <string.h> #include <string.h>
#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY
#define HIDDEN __attribute__((visibility("hidden")))
#else
#define HIDDEN
#endif
__asm__(".text"); __asm__(".text");
__asm__("x86_current_tls:\n\t" __asm__("x86_current_tls:\n\t"
@ -71,8 +77,8 @@ __asm__(".text");
extern unsigned long extern unsigned long
x86_current_tls(); x86_current_tls();
static char x86_entry_start[]; extern char x86_entry_start[] HIDDEN;
static char x86_entry_end[]; extern char x86_entry_end[] HIDDEN;
void void
entry_patch_public(void) entry_patch_public(void)

View file

@ -25,6 +25,11 @@
* Chia-I Wu <olv@lunarg.com> * Chia-I Wu <olv@lunarg.com>
*/ */
#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY
#define HIDDEN __attribute__((visibility("hidden")))
#else
#define HIDDEN
#endif
#define X86_ENTRY_SIZE 32 #define X86_ENTRY_SIZE 32
@ -58,8 +63,8 @@ __asm__(".balign 32\n"
#include <string.h> #include <string.h>
#include "u_execmem.h" #include "u_execmem.h"
static const char x86_entry_start[]; extern const char x86_entry_start[] HIDDEN;
static const char x86_entry_end[]; extern const char x86_entry_end[] HIDDEN;
void void
entry_patch_public(void) entry_patch_public(void)