[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52453] trunk/blender: Fix 33149: LLVM caused startup crash on linux systems using Mesa llvmpipe.

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Nov 21 23:28:17 CET 2012


Revision: 52453
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52453
Author:   blendix
Date:     2012-11-21 22:28:15 +0000 (Wed, 21 Nov 2012)
Log Message:
-----------
Fix 33149: LLVM caused startup crash on linux systems using Mesa llvmpipe.
Now we hide the LLVM symbols with an ld version script to avoid conflicts.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/build_files/buildbot/config/user-config-glibc211-i686.py
    trunk/blender/build_files/buildbot/config/user-config-glibc211-x86_64.py
    trunk/blender/build_files/buildbot/config/user-config-glibc27-i686.py
    trunk/blender/build_files/buildbot/config/user-config-glibc27-x86_64.py
    trunk/blender/build_files/scons/config/linux-config.py

Added Paths:
-----------
    trunk/blender/source/creator/blender.map

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2012-11-21 21:42:07 UTC (rev 52452)
+++ trunk/blender/CMakeLists.txt	2012-11-21 22:28:15 UTC (rev 52453)
@@ -759,6 +759,9 @@
 		else()
 			message(FATAL_ERROR "LLVM not found.")
 		endif()
+
+		# Fix for conflict with Mesa llvmpipe
+		set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/source/creator/blender.map")
 	endif()
 
 	if(WITH_CYCLES_OSL)
@@ -821,7 +824,7 @@
 		endif()
 	endif()
 
-	set(PLATFORM_LINKFLAGS "-pthread")
+	set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -pthread")
 
 	# lfs on glibc, all compilers should use
 	add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE)

Modified: trunk/blender/build_files/buildbot/config/user-config-glibc211-i686.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-glibc211-i686.py	2012-11-21 21:42:07 UTC (rev 52452)
+++ trunk/blender/build_files/buildbot/config/user-config-glibc211-i686.py	2012-11-21 22:28:15 UTC (rev 52453)
@@ -162,4 +162,4 @@
 BF_DEBUG = False
 REL_CCFLAGS = ['-O2', '-msse', '-msse2']  # C & C++
 PLATFORM_LINKFLAGS = ['-lrt']
-BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive']
+BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive', '-Wl,--version-script=source/creator/blender.map']

Modified: trunk/blender/build_files/buildbot/config/user-config-glibc211-x86_64.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-glibc211-x86_64.py	2012-11-21 21:42:07 UTC (rev 52452)
+++ trunk/blender/build_files/buildbot/config/user-config-glibc211-x86_64.py	2012-11-21 22:28:15 UTC (rev 52453)
@@ -161,4 +161,4 @@
 BF_DEBUG = False
 REL_CCFLAGS = ['-O2', '-msse', '-msse2']  # C & C++
 PLATFORM_LINKFLAGS = ['-lrt']
-BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive']
+BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive', '-Wl,--version-script=source/creator/blender.map']

Modified: trunk/blender/build_files/buildbot/config/user-config-glibc27-i686.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-glibc27-i686.py	2012-11-21 21:42:07 UTC (rev 52452)
+++ trunk/blender/build_files/buildbot/config/user-config-glibc27-i686.py	2012-11-21 22:28:15 UTC (rev 52453)
@@ -147,4 +147,4 @@
 BF_DEBUG = False
 REL_CCFLAGS = ['-O2']  # C & C++
 PLATFORM_LINKFLAGS = ['-L/home/sources/staticlibs/lib32']
-BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive']
+BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive', '-Wl,--version-script=source/creator/blender.map']

Modified: trunk/blender/build_files/buildbot/config/user-config-glibc27-x86_64.py
===================================================================
--- trunk/blender/build_files/buildbot/config/user-config-glibc27-x86_64.py	2012-11-21 21:42:07 UTC (rev 52452)
+++ trunk/blender/build_files/buildbot/config/user-config-glibc27-x86_64.py	2012-11-21 22:28:15 UTC (rev 52453)
@@ -146,4 +146,4 @@
 BF_DEBUG = False
 REL_CCFLAGS = ['-O2', '-msse', '-msse2']  # C & C++
 PLATFORM_LINKFLAGS = ['-L/home/sources/staticlibs/lib64']
-BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive']
+BF_PROGRAM_LINKFLAGS = ['-Wl,--whole-archive', '-loslexec', '-Wl,--no-whole-archive', '-Wl,--version-script=source/creator/blender.map']

Modified: trunk/blender/build_files/scons/config/linux-config.py
===================================================================
--- trunk/blender/build_files/scons/config/linux-config.py	2012-11-21 21:42:07 UTC (rev 52452)
+++ trunk/blender/build_files/scons/config/linux-config.py	2012-11-21 22:28:15 UTC (rev 52453)
@@ -298,3 +298,7 @@
 #Link against pthread
 PLATFORM_LINKFLAGS = ['-pthread']
 
+#Fix for LLVM conflict with Mesa llvmpipe
+if WITH_BF_LLVM:
+    PLATFORM_LINKFLAGS += ['-Wl,--version-script=source/creator/blender.map']
+

Added: trunk/blender/source/creator/blender.map
===================================================================
--- trunk/blender/source/creator/blender.map	                        (rev 0)
+++ trunk/blender/source/creator/blender.map	2012-11-21 22:28:15 UTC (rev 52453)
@@ -0,0 +1,11 @@
+
+/* on Linux we exclude LLVM symbols, they conflict with Mesa llvmpipe */
+
+blender {
+global:
+	*;
+local:
+	*llvm*;
+	*LLVM*;
+};
+




More information about the Bf-blender-cvs mailing list