Mesa (master): targets/opencl: Fix (static) linking with LLVM (v2)

Emil Velikov evelikov at kemper.freedesktop.org
Sun May 25 22:22:41 UTC 2014


Module: Mesa
Branch: master
Commit: 97aa256b199644dbf16ae8371ad339fef1a25d91
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=97aa256b199644dbf16ae8371ad339fef1a25d91

Author: Kai Wasserbäch <kai at dev.carbon-project.org>
Date:   Mon May 19 17:02:49 2014 +0200

targets/opencl: Fix (static) linking with LLVM (v2)

Without this, I get linking failures (static linking).

The static linking is sort of required for me, because otherwise Steam and
applications using the Steam runtime regularily fail because my LLVM was
compiled and linked against a newer libgcc_s, libstdc++, etc. and uses
features from those newer versions. And instead of Steam just not
starting, my X starts crashing, whenever libGL fails to load a (32 bit)
driver.

Since I hate crashes of X and I don't think Valve/Steam will behave like
a proper distribution soon (rebuilds versus current Debian Testing, since
they base their Steam OS off that), I need a radeonsi which carries its
own LLVM within and doesn't care about what the runtime sets. This means
linking Mesa statically.

v1 → v2: Move logic to configure.ac

Acked-by: Emil Velikov <emil.l.velikov at gmail.com>
Signed-off-by: Kai Wasserbäch <kai at dev.carbon-project.org>

---

 configure.ac |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/configure.ac b/configure.ac
index 7397341..bee85a1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1728,6 +1728,13 @@ if test "x$enable_gallium_llvm" = xyes; then
             if $LLVM_CONFIG --components | grep -qw 'option'; then
                 LLVM_COMPONENTS="${LLVM_COMPONENTS} option"
             fi
+            # Current OpenCL/Clover and LLVM 3.5 require ObjCARCOpts and ProfileData
+            if $LLVM_CONFIG --components | grep -qw 'objcarcopts'; then
+                LLVM_COMPONENTS="${LLVM_COMPONENTS} objcarcopts"
+            fi
+            if $LLVM_CONFIG --components | grep -qw 'profiledata'; then
+                LLVM_COMPONENTS="${LLVM_COMPONENTS} profiledata"
+            fi
         fi
         DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
         MESA_LLVM=1




More information about the mesa-commit mailing list