From 33f218fa3f93a3d574d81d65628188921d6f100c Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 19 Apr 2021 14:41:14 +0200 Subject: Fix T86530: crash with Cycles OSL on Arm64 Bug in OSL itself, fix is submitted upstream. --- build_files/build_environment/patches/osl.diff | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'build_files/build_environment') 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 args) + #endif + //llvm_gen_debug_printf (std::string("start ") + std::string(name)); + #if OSL_LLVM_VERSION >= 110 +- OSL_DASSERT(llvm::isa(func)); +- llvm::Value *r = builder().CreateCall(llvm::cast(func), llvm::ArrayRef(args.data(), args.size())); ++ llvm::Value* r = builder().CreateCall( ++ llvm::cast(func->getType()->getPointerElementType()), func, ++ llvm::ArrayRef(args.data(), args.size())); + #else + llvm::Value *r = builder().CreateCall (func, llvm::ArrayRef(args.data(), args.size())); + #endif -- cgit v1.2.3