diff --git a/graphics/openshadinglanguage/files/patch-CMakeLists.txt b/graphics/openshadinglanguage/files/patch-CMakeLists.txt index d7d0a67c8952..7cc39ae8d1bf 100644 --- a/graphics/openshadinglanguage/files/patch-CMakeLists.txt +++ b/graphics/openshadinglanguage/files/patch-CMakeLists.txt @@ -1,18 +1,18 @@ ---- CMakeLists.txt.orig 2024-02-20 23:53:17 UTC +--- CMakeLists.txt.orig 2025-12-01 12:53:35 UTC +++ CMakeLists.txt -@@ -294,13 +294,13 @@ configure_package_config_file ("${PROJECT_SOURCE_DIR}/ +@@ -323,13 +323,13 @@ install (FILES "${OSL_PROJECT_CONFIG}" "${OSL_VERSION_ install (FILES "${OSL_PROJECT_CONFIG}" "${OSL_VERSION_CONFIG}" DESTINATION "${OSL_CONFIG_INSTALL_DIR}") -install (FILES src/cmake/llvm_macros.cmake DESTINATION cmake) +install (FILES src/cmake/llvm_macros.cmake DESTINATION ${OSL_CONFIG_INSTALL_DIR}) set (PERMISSION_FLAGS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ) install (FILES src/build-scripts/serialize-bc.py - DESTINATION build-scripts + DESTINATION %%DATADIR%%/build-scripts PERMISSIONS ${PERMISSION_FLAGS}) # install targets files diff --git a/graphics/openshadinglanguage/files/patch-src_cmake_externalpackages.cmake b/graphics/openshadinglanguage/files/patch-src_cmake_externalpackages.cmake new file mode 100644 index 000000000000..3f331362b151 --- /dev/null +++ b/graphics/openshadinglanguage/files/patch-src_cmake_externalpackages.cmake @@ -0,0 +1,11 @@ +--- src/cmake/externalpackages.cmake.orig 2025-12-01 12:53:35 UTC ++++ src/cmake/externalpackages.cmake +@@ -58,7 +58,7 @@ checked_find_package (LLVM REQUIRED + # LLVM library setup + checked_find_package (LLVM REQUIRED + VERSION_MIN 11.0 +- VERSION_MAX 21.9 ++ VERSION_MAX 22.9 + PRINT LLVM_SYSTEM_LIBRARIES CLANG_LIBRARIES + LLVM_SHARED_MODE) + # ensure include directory is added (in case of non-standard locations diff --git a/graphics/openshadinglanguage/files/patch-src_cmake_modules_FindLLVM.cmake b/graphics/openshadinglanguage/files/patch-src_cmake_modules_FindLLVM.cmake new file mode 100644 index 000000000000..a54616f72632 --- /dev/null +++ b/graphics/openshadinglanguage/files/patch-src_cmake_modules_FindLLVM.cmake @@ -0,0 +1,12 @@ +--- src/cmake/modules/FindLLVM.cmake.orig 2025-12-01 12:53:35 UTC ++++ src/cmake/modules/FindLLVM.cmake +@@ -116,7 +116,8 @@ foreach (COMPONENT clangFrontend clangDriver clangSeri + foreach (COMPONENT clangFrontend clangDriver clangSerialization + clangParse clangSema clangAnalysis clangAST + clangASTMatchers clangEdit clangLex +- clangSupport clangAPINotes clangBasic) ++ clangSupport clangAPINotes clangBasic ++ clangOptions clangAnalysisLifetimeSafety) + find_library ( _CLANG_${COMPONENT}_LIBRARY + NAMES ${COMPONENT} + PATHS ${LLVM_LIB_DIR} diff --git a/graphics/openshadinglanguage/files/patch-src_liboslcomp_oslcomp.cpp b/graphics/openshadinglanguage/files/patch-src_liboslcomp_oslcomp.cpp new file mode 100644 index 000000000000..7b3db1c9dc6f --- /dev/null +++ b/graphics/openshadinglanguage/files/patch-src_liboslcomp_oslcomp.cpp @@ -0,0 +1,18 @@ +--- src/liboslcomp/oslcomp.cpp.orig 2025-12-01 12:53:35 UTC ++++ src/liboslcomp/oslcomp.cpp +@@ -200,8 +200,15 @@ OSLCompilerImpl::preprocess_buffer(const std::string& + + inst.setTarget(target); + ++#if OSL_LLVM_VERSION >= 220 ++ inst.createVirtualFileSystem(); ++#endif + inst.createFileManager(); ++#if OSL_LLVM_VERSION >= 220 ++ inst.createSourceManager(); ++#else + inst.createSourceManager(inst.getFileManager()); ++#endif + clang::SourceManager& sm = inst.getSourceManager(); + sm.setMainFileID(sm.createFileID(std::move(mbuf), clang::SrcMgr::C_User)); + diff --git a/graphics/openshadinglanguage/files/patch-src_liboslexec_llvm__util.cpp b/graphics/openshadinglanguage/files/patch-src_liboslexec_llvm__util.cpp new file mode 100644 index 000000000000..3d811151a6e7 --- /dev/null +++ b/graphics/openshadinglanguage/files/patch-src_liboslexec_llvm__util.cpp @@ -0,0 +1,47 @@ +--- src/liboslexec/llvm_util.cpp.orig 2025-12-01 12:53:35 UTC ++++ src/liboslexec/llvm_util.cpp +@@ -718,7 +718,7 @@ LLVM_Util::debug_setup_compilation_unit(const char* co + osl_identity, // Identify the producer of debugging information and code. Usually this is a compiler version string. + true, // isOptimized + "", // This string lists command line options. This string is directly embedded in debug info output which may be used by a tool analyzing generated debugging information. +- OSL_VERSION, // This indicates runtime version for languages like Objective-C ++ 0, // This indicates runtime version for languages like Objective-C + llvm::StringRef(), // SplitName = he name of the file that we'll split debug info out into. + llvm::DICompileUnit::DebugEmissionKind:: + LineTablesOnly, // DICompileUnit::DebugEmissionKind +@@ -1581,7 +1581,11 @@ LLVM_Util::make_jit_execengine(std::string* err, Targe + // TODO: investigate if reciprocals can be disabled by other means. + // Perhaps enable UnsafeFPMath, then modify creation of DIV instructions + // to remove the arcp (allow reciprocal) flag on that instructions ++#if OSL_LLVM_VERSION < 220 ++ // UnsafeFPMath was removed from TargetOptions in LLVM 22; FP math ++ // control is now handled via per-instruction fast-math flags in IR. + options.UnsafeFPMath = false; ++#endif + // Since there are OSL language functions isinf and isnan, + // we cannot assume there will not be infs and NANs + options.NoInfsFPMath = false; +@@ -1846,7 +1850,11 @@ LLVM_Util::nvptx_target_machine() + // N.B. 'Standard' only allow fusion of 'blessed' ops (currently just + // fmuladd). To truly disable FMA and never fuse FP-ops, we need to + // instead use llvm::FPOpFusion::Strict. ++#if OSL_LLVM_VERSION < 220 ++ // UnsafeFPMath was removed from TargetOptions in LLVM 22; FP math ++ // control is now handled via per-instruction fast-math flags in IR. + options.UnsafeFPMath = 1; ++#endif + options.NoInfsFPMath = 1; + options.NoNaNsFPMath = 1; + options.HonorSignDependentRoundingFPMathOption = 0; +@@ -1862,7 +1870,11 @@ LLVM_Util::nvptx_target_machine() + // Verify that the NVPTX target has been initialized + std::string error; + const llvm::Target* llvm_target ++#if OSL_LLVM_VERSION >= 220 ++ = llvm::TargetRegistry::lookupTarget(ModuleTriple, error); ++#else + = llvm::TargetRegistry::lookupTarget(ModuleTriple.str(), error); ++#endif + OSL_ASSERT(llvm_target + && "PTX compile error: LLVM Target is not initialized"); + diff --git a/graphics/openshadinglanguage/files/patch-src_liboslquery_py__osl.h b/graphics/openshadinglanguage/files/patch-src_liboslquery_py__osl.h index be1a19d203b8..b95e41a1af43 100644 --- a/graphics/openshadinglanguage/files/patch-src_liboslquery_py__osl.h +++ b/graphics/openshadinglanguage/files/patch-src_liboslquery_py__osl.h @@ -1,16 +1,16 @@ ---- src/liboslquery/py_osl.h.orig 2022-01-08 02:36:45 UTC +--- src/liboslquery/py_osl.h.orig 2025-12-01 12:53:35 UTC +++ src/liboslquery/py_osl.h -@@ -31,6 +31,13 @@ - # include - #endif +@@ -29,6 +29,13 @@ + + #include +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif + #include #include #include diff --git a/graphics/openshadinglanguage/files/patch-src_shaders_CMakeLists.txt b/graphics/openshadinglanguage/files/patch-src_shaders_CMakeLists.txt index df69185dfcf3..15c975a42a94 100644 --- a/graphics/openshadinglanguage/files/patch-src_shaders_CMakeLists.txt +++ b/graphics/openshadinglanguage/files/patch-src_shaders_CMakeLists.txt @@ -1,8 +1,8 @@ ---- src/shaders/CMakeLists.txt.orig 2022-09-30 23:43:53 UTC +--- src/shaders/CMakeLists.txt.orig 2025-12-01 12:53:35 UTC +++ src/shaders/CMakeLists.txt -@@ -63,4 +63,4 @@ install (FILES ${shader_headers} ${shader_source} ${sh +@@ -52,4 +52,4 @@ install (FILES ${shader_headers} ${shader_source} ${sh SOURCES ${shader_source} ${shader_headers}) install (FILES ${shader_headers} ${shader_source} ${shader_objs} - DESTINATION ${OSL_SHADER_INSTALL_DIR}) -+ DESTINATION %%DATADIR%%/shaders) ++ DESTINATION %%DATADIR%%/shaders)