diff --git a/Mesa.changes b/Mesa.changes index 9b087a9..4e66ddb 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Tue Oct 17 13:55:17 UTC 2017 - msrb@suse.com + +- U_configure.ac-rework-llvm-libs-handling-for-3.9.patch + * llvm-config 3.9 and higher works properly, use its values + instead of guessing. Fixes build against llvm built as single + shared library. + +------------------------------------------------------------------- +Thu Oct 12 12:29:38 UTC 2017 - schwab@suse.de + +- svga is x86-only +- u_svga-Fix-build-on-ppc64le.patch: Remove + +------------------------------------------------------------------- +Wed Oct 11 13:26:07 UTC 2017 - msrb@suse.com + +- Add build dependency on clang-devel-static. + * Required with new llvm4 build mode (bnc#1049703). + * Also rename dependency llvm-clang-devel to clang-devel. The + llvm-clang-devel is old name kept around for compatibility. + ------------------------------------------------------------------- Wed Oct 4 09:51:03 UTC 2017 - sndirsch@suse.com diff --git a/Mesa.spec b/Mesa.spec index fd774db..74c92f4 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -84,7 +84,7 @@ Patch21: n_Define-GLAPIVAR-separate-from-GLAPI.patch Patch31: archlinux_0001-Fix-linkage-against-shared-glapi.patch Patch32: archlinux_glvnd-fix-gl-dot-pc.patch Patch42: u_r600-Add-support-for-B5G5R5A1.patch -Patch43: u_svga-Fix-build-on-ppc64le.patch +Patch43: U_configure.ac-rework-llvm-libs-handling-for-3.9.patch BuildRequires: autoconf >= 2.60 BuildRequires: automake @@ -163,8 +163,9 @@ BuildRequires: ncurses-devel %endif %if 0%{with_opencl} +BuildRequires: clang-devel +BuildRequires: clang-devel-static BuildRequires: libclc -BuildRequires: llvm-clang-devel %endif %if 0%{?libglvnd} @@ -391,8 +392,8 @@ applications using the OpenGL|ES 3.x APIs. %package -n libOSMesa8 Summary: Mesa Off-screen rendering extension -# Wrongly named package shipped .so.8 Group: System/Libraries +# Wrongly named package shipped .so.8 Obsoletes: libOSMesa9 < %{version}-%{release} Provides: libOSMesa9 = %{version}-%{release} @@ -498,8 +499,8 @@ implementation of Mesa. %package libd3d Summary: Mesa Direct3D9 state tracker -# Manually provide d3d library (bnc#918294) Group: System/Libraries +# Manually provide d3d library (bnc#918294) %ifarch x86_64 s390x ppc64le aarch64 Provides: d3dadapter9.so.1()(64bit) %else @@ -727,7 +728,7 @@ autoreconf -fvi %ifarch ppc64 ppc64le --enable-xa \ --with-dri-drivers=nouveau \ - --with-gallium-drivers=r300,r600,nouveau,swrast,svga \ + --with-gallium-drivers=r300,r600,nouveau,swrast \ %endif %ifarch ia64 ppc hppa s390 s390x --with-dri-drivers=swrast \ diff --git a/U_configure.ac-rework-llvm-libs-handling-for-3.9.patch b/U_configure.ac-rework-llvm-libs-handling-for-3.9.patch new file mode 100644 index 0000000..c1a26b2 --- /dev/null +++ b/U_configure.ac-rework-llvm-libs-handling-for-3.9.patch @@ -0,0 +1,107 @@ +Git-commit: 13a53c4f5cdd664fd155c9e78fb46a4387af006c +Patch-Mainline: Upstream +Author: Emil Velikov +Subject: configure.ac: rework llvm libs handling for 3.9+ +Signed-off-by: Michal Srb + +Earlier versions need different quirks, but as of LLVM 3.9 llvm-config +provides --link-shared/link-static toggles. + +The output of which seems to be reliable - looking at LLVM 3.9, 4.0 and +5.0. + +Note that there are earlier code will be used for pre LLVM 3.9 and is +unchanged. + +This effectively fixes LLVM static linking, while providing a clearer +and more robust solution for future versions. + +Mildly interesting side notes: + + - build-mode (introduced with 3.8) was buggy with 3.8 +It shows "static" when build with -DLLVM_LINK_LLVM_DYLIB=ON, yet it was +consistent with --libs. The latter shows the static libraries. + + - libnames and libfiles are broken with LVM 3.9 +The library prefix and extension is printed twice liblibLLVM-3.9.so.so + +v2: Invoke llvm-config twice, instead of using sed, to combine the two +lines into one (Tobias) + +Cc: mesa-stable@lists.freedesktop.org +Cc: Dieter Nützel +Cc: Michel Dänzer +Signed-off-by: Emil Velikov +Reviewed-by: Tobias Droste +--- + configure.ac | 30 ++++++++++++++++++++---------- + 1 file changed, 20 insertions(+), 10 deletions(-) + +Index: mesa-17.2.2/configure.ac +=================================================================== +--- mesa-17.2.2.orig/configure.ac ++++ mesa-17.2.2/configure.ac +@@ -2684,44 +2684,28 @@ if test "x$enable_llvm" = xyes; then + if ! $LLVM_CONFIG --libs ${LLVM_COMPONENTS} >/dev/null; then + AC_MSG_ERROR([Calling ${LLVM_CONFIG} failed]) + fi +- LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" +- +- dnl llvm-config may not give the right answer when llvm is a built as a +- dnl single shared library, so we must work the library name out for +- dnl ourselves. +- dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823) +- if test "x$enable_llvm_shared_libs" = xyes; then +- dnl We can't use $LLVM_VERSION because it has 'svn' stripped out, +- LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version` +- AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes]) +- +- if test "x$llvm_have_one_so" = xyes; then +- dnl LLVM was built using auto*, so there is only one shared object. +- LLVM_LIBS="-l$LLVM_SO_NAME" ++ if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 9; then ++ if test "x$enable_llvm_shared_libs" = xyes; then ++ LLVM_LIBS="`$LLVM_CONFIG --link-shared --libs ${LLVM_COMPONENTS}`" + else +- dnl If LLVM was built with CMake, there will be one shared object per +- dnl component. +- AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"], +- [AC_MSG_ERROR([Could not find llvm shared libraries: +- Please make sure you have built llvm with the --enable-shared option +- and that your llvm libraries are installed in $LLVM_LIBDIR +- If you have installed your llvm libraries to a different directory you +- can use the --with-llvm-prefix= configure flag to specify this directory. +- NOTE: Mesa is attempting to use llvm shared libraries by default. +- If you do not want to build with llvm shared libraries and instead want to +- use llvm static libraries then add --disable-llvm-shared-libs to your configure +- invocation and rebuild.])]) +- +- dnl We don't need to update LLVM_LIBS in this case because the LLVM +- dnl install uses a shared object for each component and we have +- dnl already added all of these objects to LLVM_LIBS. ++ dnl Invoking llvm-config with both -libs and --system-libs produces the ++ dnl two separate lines - each for the set of libraries. ++ dnl Call the program twice, effectively folding them into a single line. ++ LLVM_LIBS="`$LLVM_CONFIG --link-static --libs ${LLVM_COMPONENTS}`" ++ dnl We need to link to llvm system libs when using static libs ++ LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --link-static --system-libs`" + fi + else +- AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues]) +- dnl We need to link to llvm system libs when using static libs +- dnl However, only llvm 3.5+ provides --system-libs +- if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then +- LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`" ++ LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" ++ if test "x$enable_llvm_shared_libs" = xyes; then ++ detect_old_buggy_llvm ++ else ++ AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues]) ++ dnl We need to link to llvm system libs when using static libs ++ dnl However, only llvm 3.5+ provides --system-libs ++ if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then ++ LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`" ++ fi + fi + fi + fi diff --git a/u_svga-Fix-build-on-ppc64le.patch b/u_svga-Fix-build-on-ppc64le.patch deleted file mode 100644 index 3872ce8..0000000 --- a/u_svga-Fix-build-on-ppc64le.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 96b59b70573b8fafc377b4ac04fe46a2474180da Mon Sep 17 00:00:00 2001 -From: Stefan Dirsch -Date: Thu, 7 Sep 2017 11:53:21 +0200 -Subject: [PATCH glx/glxglvnd] svga: Fix build on ppc64le. - -This let us compile the code on ppc64le, but it no-ops the log function. ---- - src/gallium/drivers/svga/svga_msg.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gallium/drivers/svga/svga_msg.c b/src/gallium/drivers/svga/svga_msg.c -index e0346dee75..611abb70f4 100755 ---- a/src/gallium/drivers/svga/svga_msg.c -+++ b/src/gallium/drivers/svga/svga_msg.c -@@ -57,7 +57,7 @@ - #define HIGH_WORD(X) ((X & 0xFFFF0000) >> 16) - - --#if defined(PIPE_CC_GCC) && (PIPE_CC_GCC_VERSION > 502) -+#if defined(PIPE_CC_GCC) && (PIPE_CC_GCC_VERSION > 502) && !defined(USE_PPC64LE_ASM) - - /** - * Hypervisor-specific bi-directional communication channel. Should never --- -2.13.5 -