diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-04-19 15:41:14 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-04-19 15:41:14 +0300 |
commit | 33f218fa3f93a3d574d81d65628188921d6f100c (patch) | |
tree | 5c81e164070323a60a23c2677973600ad7871552 /build_files | |
parent | c75b2019e101c498ccf65442ed262596639ee8bc (diff) |
Fix T86530: crash with Cycles OSL on Arm64
Bug in OSL itself, fix is submitted upstream.
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/build_environment/patches/osl.diff | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/build_files/build_environment/patches/osl.diff b/build_files/build_environment/patches/osl.diff index badb6c0d9b3..cd1b58bf580 100644 --- a/build_files/build_environment/patches/osl.diff +++ b/build_files/build_environment/patches/osl.diff @@ -63,3 +63,19 @@ diff -Naur org/CMakeLists.txt external_osl/CMakeLists.txt set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem") if (OSL_NO_DEFAULT_TEXTURESYSTEM) +diff --git a/src/liboslexec/llvm_util.cpp b/src/liboslexec/llvm_util.cpp +index 445f6400..3d468de2 100644 +--- a/src/liboslexec/llvm_util.cpp ++++ b/src/liboslexec/llvm_util.cpp +@@ -3430,8 +3430,9 @@ LLVM_Util::call_function (llvm::Value *func, cspan<llvm::Value *> args) + #endif + //llvm_gen_debug_printf (std::string("start ") + std::string(name)); + #if OSL_LLVM_VERSION >= 110 +- OSL_DASSERT(llvm::isa<llvm::Function>(func)); +- llvm::Value *r = builder().CreateCall(llvm::cast<llvm::Function>(func), llvm::ArrayRef<llvm::Value *>(args.data(), args.size())); ++ llvm::Value* r = builder().CreateCall( ++ llvm::cast<llvm::FunctionType>(func->getType()->getPointerElementType()), func, ++ llvm::ArrayRef<llvm::Value*>(args.data(), args.size())); + #else + llvm::Value *r = builder().CreateCall (func, llvm::ArrayRef<llvm::Value *>(args.data(), args.size())); + #endif |