Accepting request 534468 from home:michalsrb:branches:X11:XOrg
- 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. OBS-URL: https://build.opensuse.org/request/show/534468 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=654
This commit is contained in:
parent
a17739caf7
commit
6bebdfbdba
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
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
|
Thu Oct 12 12:29:38 UTC 2017 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -84,6 +84,7 @@ Patch21: n_Define-GLAPIVAR-separate-from-GLAPI.patch
|
|||||||
Patch31: archlinux_0001-Fix-linkage-against-shared-glapi.patch
|
Patch31: archlinux_0001-Fix-linkage-against-shared-glapi.patch
|
||||||
Patch32: archlinux_glvnd-fix-gl-dot-pc.patch
|
Patch32: archlinux_glvnd-fix-gl-dot-pc.patch
|
||||||
Patch42: u_r600-Add-support-for-B5G5R5A1.patch
|
Patch42: u_r600-Add-support-for-B5G5R5A1.patch
|
||||||
|
Patch43: U_configure.ac-rework-llvm-libs-handling-for-3.9.patch
|
||||||
|
|
||||||
BuildRequires: autoconf >= 2.60
|
BuildRequires: autoconf >= 2.60
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
@ -658,6 +659,7 @@ rm -rf docs/README.{VMS,WIN32,OS2}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch42 -p1
|
%patch42 -p1
|
||||||
|
%patch43 -p1
|
||||||
|
|
||||||
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
|
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
|
||||||
# disabling libglvnd build; ugly ...
|
# disabling libglvnd build; ugly ...
|
||||||
|
107
U_configure.ac-rework-llvm-libs-handling-for-3.9.patch
Normal file
107
U_configure.ac-rework-llvm-libs-handling-for-3.9.patch
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
Git-commit: 13a53c4f5cdd664fd155c9e78fb46a4387af006c
|
||||||
|
Patch-Mainline: Upstream
|
||||||
|
Author: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
Subject: configure.ac: rework llvm libs handling for 3.9+
|
||||||
|
Signed-off-by: Michal Srb <msrb@suse.com>
|
||||||
|
|
||||||
|
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 <Dieter@nuetzel-hh.de>
|
||||||
|
Cc: Michel Dänzer <michel.daenzer@amd.com>
|
||||||
|
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
Reviewed-by: Tobias Droste <tdroste@gmx.de>
|
||||||
|
---
|
||||||
|
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
|
Loading…
Reference in New Issue
Block a user