Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Molenkamp <github@lazydodo.com>2018-08-26 04:35:45 +0300
committerRay Molenkamp <github@lazydodo.com>2018-08-26 04:35:45 +0300
commit3f1606cb7cda98921a22bf1e1ee0dd74ceede246 (patch)
tree663ba70e3e94b39d587db17ef6bdad784b8213c7 /build_files
parent94efc651d40fe62417b605e2f400fd364fb0d8ef (diff)
build_environment: osl work around shutdown issues.
there is an issue with objects destructing in a non deterministic way during process shutdown, temporary work around this until osl has a fix in place.
Diffstat (limited to 'build_files')
-rw-r--r--build_files/build_environment/cmake/osl.cmake2
-rw-r--r--build_files/build_environment/patches/osl.diff68
2 files changed, 66 insertions, 4 deletions
diff --git a/build_files/build_environment/cmake/osl.cmake b/build_files/build_environment/cmake/osl.cmake
index e73a4041405..ad679449f36 100644
--- a/build_files/build_environment/cmake/osl.cmake
+++ b/build_files/build_environment/cmake/osl.cmake
@@ -83,7 +83,7 @@ ExternalProject_Add(external_osl
LIST_SEPARATOR ^^
URL_HASH MD5=${OSL_HASH}
PREFIX ${BUILD_DIR}/osl
- PATCH_COMMAND ${PATCH_CMD} -p 3 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff
+ PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff
# ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl_simd_oiio.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${DEFAULT_CMAKE_FLAGS} ${OSL_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/osl
diff --git a/build_files/build_environment/patches/osl.diff b/build_files/build_environment/patches/osl.diff
index fcb5ec4165f..36cda06f394 100644
--- a/build_files/build_environment/patches/osl.diff
+++ b/build_files/build_environment/patches/osl.diff
@@ -1,6 +1,6 @@
-diff -Naur osl/src/external_osl/src/cmake/flexbison.cmake osl_bak/src/external_osl/src/cmake/flexbison.cmake
---- osl/src/external_osl//src/cmake/flexbison.cmake 2016-01-29 11:15:22 -0700
-+++ osl_bak/src/external_osl/src/cmake/flexbison.cmake 2016-02-29 21:26:26 -0700
+diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake external_osl/src/cmake/flexbison.cmake
+--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake 2018-05-01 16:39:02 -0600
++++ external_osl/src/cmake/flexbison.cmake 2018-08-23 15:42:27 -0600
@@ -77,7 +77,7 @@
DEPENDS ${${compiler_headers}}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
@@ -10,3 +10,65 @@ diff -Naur osl/src/external_osl/src/cmake/flexbison.cmake osl_bak/src/external_o
MAIN_DEPENDENCY ${flexsrc}
DEPENDS ${${compiler_headers}}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
+diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej external_osl/src/cmake/flexbison.cmake.rej
+--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej 1969-12-31 17:00:00 -0700
++++ external_osl/src/cmake/flexbison.cmake.rej 2018-08-24 17:42:11 -0600
+@@ -0,0 +1,11 @@
++--- src/cmake/flexbison.cmake 2018-05-01 16:39:02 -0600
+++++ src/cmake/flexbison.cmake 2018-08-24 10:24:03 -0600
++@@ -77,7 +77,7 @@
++ DEPENDS ${${compiler_headers}}
++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
++ ADD_CUSTOM_COMMAND ( OUTPUT ${flexoutputcxx}
++- COMMAND ${FLEX_EXECUTABLE} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
+++ COMMAND ${FLEX_EXECUTABLE} ${FLEX_EXTRA_OPTIONS} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
++ MAIN_DEPENDENCY ${flexsrc}
++ DEPENDS ${${compiler_headers}}
++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
+diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h external_osl/src/include/OSL/llvm_util.h
+--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h 2018-05-01 16:39:02 -0600
++++ external_osl/src/include/OSL/llvm_util.h 2018-08-25 14:05:00 -0600
+@@ -33,6 +33,8 @@
+
+ #include <vector>
+
++#define OSL_HAS_BLENDER_CLEANUP_FIX
++
+ #ifdef LLVM_NAMESPACE
+ namespace llvm = LLVM_NAMESPACE;
+ #endif
+@@ -487,6 +489,7 @@
+ std::string func_name (llvm::Function *f);
+
+ static size_t total_jit_memory_held ();
++ static void Cleanup ();
+
+ private:
+ class MemoryManager;
+diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h external_osl/src/include/OSL/oslnoise.h
+--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h 2018-05-01 16:39:02 -0600
++++ external_osl/src/include/OSL/oslnoise.h 2018-08-24 17:42:11 -0600
+@@ -762,7 +762,7 @@
+ // packed into a float4. We assume T is float and VECTYPE is float4,
+ // but it also works if T is Dual2<float> and VECTYPE is Dual2<float4>.
+ template<typename T, typename VECTYPE>
+-OIIO_FORCEINLINE T bilerp (VECTYPE abcd, T u, T v) {
++OIIO_FORCEINLINE T bilerp (VECTYPE& abcd, T u, T v) {
+ VECTYPE xx = OIIO::lerp (abcd, OIIO::simd::shuffle<1,1,3,3>(abcd), u);
+ return OIIO::simd::extract<0>(OIIO::lerp (xx,OIIO::simd::shuffle<2>(xx), v));
+ }
+diff -Naur OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp
+--- OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp 2018-05-01 16:39:02 -0600
++++ external_osl/src/liboslexec/llvm_util.cpp 2018-08-25 14:04:27 -0600
+@@ -140,7 +140,10 @@
+ };
+
+
+-
++void LLVM_Util::Cleanup ()
++{
++ jitmm_hold.clear();
++}
+
+ size_t
+ LLVM_Util::total_jit_memory_held ()