diff options
-rw-r--r-- | build_files/cmake/platform/platform_apple.cmake | 5 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_unix.cmake | 14 | ||||
-rw-r--r-- | source/creator/blender.map | 82 | ||||
-rw-r--r-- | source/creator/osx_locals.map | 64 |
4 files changed, 137 insertions, 28 deletions
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index 11889fc7a87..620a078f412 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -449,10 +449,13 @@ if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5) # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024") endif() -# Get rid of eventually clashes, we export some symbols explicitly as local + +# Avoid conflicts with Luxrender, and other plug-ins that may use the same +# libraries as Blender with a different version or build options. set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'" ) +set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -fvisibility=hidden") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -stdlib=libc++") diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index dcb6b9d34f9..c034e7028af 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -405,13 +405,6 @@ if(WITH_LLVM) endif() endif() -if(WITH_LLVM OR WITH_SDL_DYNLOAD) - # Fix for conflict with Mesa llvmpipe - set(PLATFORM_LINKFLAGS - "${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'" - ) -endif() - if(WITH_OPENSUBDIV) find_package_wrapper(OpenSubdiv) @@ -601,3 +594,10 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") endif() + +# Avoid conflicts with Mesa llvmpipe, Luxrender, and other plug-ins that may +# use the same libraries as Blender with a different version or build options. +set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -fvisibility=hidden") +set(PLATFORM_LINKFLAGS + "${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'" +) diff --git a/source/creator/blender.map b/source/creator/blender.map index 4c34dea3338..3e447ec9e89 100644 --- a/source/creator/blender.map +++ b/source/creator/blender.map @@ -6,21 +6,71 @@ { global: - *; - *_boost*; + *; + *_boost*; local: - *default_error_condition*; - *llvm*; - *LLVM*; - decodeInstruction; - ForceStackAlign; - _Jv_RegisterClasses; - Name; - NumNamedVarArgParams; - X86CompilationCallback*; - *boost*; - *SDL*; - *embree*; - cu*; + al*; + *Alembic*; + av*; + blosc*; + *boost*; + *ceres*; + *cineon*; + *COLLADA*; + cu*; + decodeInstruction; + *default_error_condition*; + *dpx*; + *embree*; + ff_*; + fftw*; + FLAC*; + ForceStackAlign; + FT_*; + *GeneratedSaxParser*; + *google*; + gsm*; + Gsm*; + html*; + id3tag*; + *Iex*; + *Ilm*; + *Imath*; + *Imf*; + jack_*; + jpeg_*; + jsimd**; + _Jv_RegisterClasses; + lame_*; + *llvm*; + *LLVM*; + *MathML*; + *mkldnn*; + Name; + NumNamedVarArgParams; + oc_*; + ogg*; + *oidn*; + *OpenColorIO*; + *OpenImageIO*; + *OpenSubdiv*; + *openvdb*; + opj_*; + opus_*; + *OSL*; + png_*; + *SDL*; + *squish*; + *tbb*; + *TIFF*; + *tinyformat*; + vorbis*; + vp8*; + vp9*; + vpx*; + x264_*; + X86CompilationCallback*; + xml*; + xvid*; + *YAML*; }; - diff --git a/source/creator/osx_locals.map b/source/creator/osx_locals.map index 3382ac954e2..908bfdae6cb 100644 --- a/source/creator/osx_locals.map +++ b/source/creator/osx_locals.map @@ -1,10 +1,66 @@ ## The symbols will be treated as if they were marked as __private_extern__ ## (aka visibility=hidden) and will not be global in the output file +al* +*Alembic* +av* +blosc* *boost* -*__ZNSt6vector* +*ceres* +*cineon* +*COLLADA* +cu* +decodeInstruction +*default_error_condition* +*dpx* +*embree* +ff_* +fftw* +FLAC* +ForceStackAlign +FT_* +*GeneratedSaxParser* +*google* +gsm* +Gsm* +html* +id3tag* +*Iex* +*Ilm* +*Imath* +*Imf* +jack_* +jpeg_* +jsimd** +_Jv_RegisterClasses +lame_* *llvm* *LLVM* +*MathML* +*mkldnn* +Name +NumNamedVarArgParams +oc_* +ogg* +*oidn* +*OpenColorIO* +*OpenImageIO* +*OpenSubdiv* +*openvdb* +opj_* +opus_* *OSL* -*embree* -cu* - +png_* +*SDL* +*squish* +*tbb* +*TIFF* +*tinyformat* +vorbis* +vp8* +vp9* +vpx* +x264_* +X86CompilationCallback* +xml* +xvid* +*YAML* |