forked from bartvdbraak/blender
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.
This commit is contained in:
parent
031230265c
commit
629ea82a13
@ -759,6 +759,9 @@ if(UNIX AND NOT APPLE)
|
||||
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 @@ if(UNIX AND NOT APPLE)
|
||||
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)
|
||||
|
@ -162,4 +162,4 @@ WITH_BF_OCEANSIM = True
|
||||
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']
|
||||
|
@ -161,4 +161,4 @@ WITH_BF_OCEANSIM = True
|
||||
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']
|
||||
|
@ -147,4 +147,4 @@ WITH_BF_OCEANSIM = True
|
||||
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']
|
||||
|
@ -146,4 +146,4 @@ WITH_BF_OCEANSIM = True
|
||||
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']
|
||||
|
@ -298,3 +298,7 @@ BF_INSTALLDIR='../install/linux'
|
||||
#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']
|
||||
|
||||
|
11
source/creator/blender.map
Normal file
11
source/creator/blender.map
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
/* on Linux we exclude LLVM symbols, they conflict with Mesa llvmpipe */
|
||||
|
||||
{
|
||||
global:
|
||||
*;
|
||||
local:
|
||||
*llvm*;
|
||||
*LLVM*;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user