mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
mesa: Fix build when cross compiling with clang
(From OE-Core rev: 69e9b190ff0e8b963bbaea8365917218cf3c2558) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -0,0 +1,116 @@
|
|||||||
|
From 5ec140c17b54c25920091501b665b9aa809cc5e8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Turner <mattst88@gmail.com>
|
||||||
|
Date: Mon, 11 Jul 2016 10:44:25 -0700
|
||||||
|
Subject: mapi: Massage code to allow clang to compile.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
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 <tpgxyz@gmail.com>
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89599
|
||||||
|
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 3799d8d..1ca8359 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 38faccc..c5262a1 100644
|
||||||
|
--- a/src/mapi/entry_x86-64_tls.h
|
||||||
|
+++ b/src/mapi/entry_x86-64_tls.h
|
||||||
|
@@ -25,6 +25,11 @@
|
||||||
|
* Chia-I Wu <olv@lunarg.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#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 46d2ece..231b409 100644
|
||||||
|
--- a/src/mapi/entry_x86_tls.h
|
||||||
|
+++ b/src/mapi/entry_x86_tls.h
|
||||||
|
@@ -27,6 +27,12 @@
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
+#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 ea7bacb..03d9735 100644
|
||||||
|
--- a/src/mapi/entry_x86_tsd.h
|
||||||
|
+++ b/src/mapi/entry_x86_tsd.h
|
||||||
|
@@ -25,6 +25,11 @@
|
||||||
|
* 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
|
||||||
|
|
||||||
|
@@ -58,8 +63,8 @@ __asm__(".balign 32\n"
|
||||||
|
#include <string.h>
|
||||||
|
#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)
|
||||||
|
--
|
||||||
|
cgit v0.10.2
|
||||||
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
Configure checks for compiler to be gcc and then it enables asm_offsets
|
||||||
|
generation. see
|
||||||
|
|
||||||
|
https://cgit.freedesktop.org/mesa/mesa/commit/?id=73c9b4b0e05fc66629ba250846948dc55c0e7a0d
|
||||||
|
|
||||||
|
However, we missed the check when enabling this on cross compilation
|
||||||
|
when architecture for both host and target is x86
|
||||||
|
|
||||||
|
Fixes errors like
|
||||||
|
./gen_matypes > matypes.h
|
||||||
|
/bin/bash: ./gen_matypes: No such file or directory
|
||||||
|
|
||||||
|
-Khem
|
||||||
|
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
Index: mesa-12.0.1/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- mesa-12.0.1.orig/configure.ac
|
||||||
|
+++ mesa-12.0.1/configure.ac
|
||||||
|
@@ -732,7 +732,7 @@ test "x$enable_asm" = xno && AC_MSG_RESU
|
||||||
|
if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
|
||||||
|
case "$host_cpu" in
|
||||||
|
i?86 | x86_64 | amd64)
|
||||||
|
- if test "x$host_cpu" != "x$target_cpu"; then
|
||||||
|
+ if test "x$host_cpu" != "x$target_cpu" -o "x$acv_mesa_CLANG" = xyes; then
|
||||||
|
enable_asm=no
|
||||||
|
AC_MSG_RESULT([no, cross compiling])
|
||||||
|
fi
|
||||||
@@ -2,6 +2,8 @@ require ${BPN}.inc
|
|||||||
|
|
||||||
SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/mesa-${PV}.tar.xz \
|
SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/mesa-${PV}.tar.xz \
|
||||||
file://replace_glibc_check_with_linux.patch \
|
file://replace_glibc_check_with_linux.patch \
|
||||||
|
file://clang-compile-PR89599.patch \
|
||||||
|
file://disable-asm-on-non-gcc.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "972fd5ad5a63aeabf173fb9adefc6522"
|
SRC_URI[md5sum] = "972fd5ad5a63aeabf173fb9adefc6522"
|
||||||
|
|||||||
Reference in New Issue
Block a user