[arch-commits] Commit in openshadinglanguage/trunk (PKGBUILD clang7.patch)

Sven-Hendrik Haase svenstaro at archlinux.org
Mon Sep 24 03:18:58 UTC 2018


    Date: Monday, September 24, 2018 @ 03:18:57
  Author: svenstaro
Revision: 384297

upgpkg: openshadinglanguage 1.9.10-3

Added:
  openshadinglanguage/trunk/clang7.patch
Modified:
  openshadinglanguage/trunk/PKGBUILD

--------------+
 PKGBUILD     |    9 +-
 clang7.patch |  173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 179 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-09-24 03:16:42 UTC (rev 384296)
+++ PKGBUILD	2018-09-24 03:18:57 UTC (rev 384297)
@@ -1,7 +1,7 @@
 # Maintainer: Sven-Hendrik Haase <sh at lutzhaase.com>
 pkgname=openshadinglanguage
 pkgver=1.9.10
-pkgrel=2
+pkgrel=3
 pkgdesc="Advanced shading language for production GI renderers"
 arch=(x86_64)
 url="https://github.com/imageworks/OpenShadingLanguage"
@@ -9,8 +9,10 @@
 depends=('boost-libs' 'openimageio' 'openexr' 'intel-tbb' 'freetype2' 'libpng'
          'libtiff' 'zlib' 'ncurses')
 makedepends=('boost' 'cmake' 'python' 'llvm' 'clang')
-source=(https://github.com/imageworks/OpenShadingLanguage/archive/Release-${pkgver}.tar.gz)
-sha512sums=('61c52cb673863bd67e257aef2c37026a49c392de9a41739e07926f8dd878f6c90ac2da6224eb3f78b8ba8e6ca121502ba41c65a6c3353f3cb7fec631a43f016b')
+source=(https://github.com/imageworks/OpenShadingLanguage/archive/Release-${pkgver}.tar.gz
+        clang7.patch)
+sha512sums=('61c52cb673863bd67e257aef2c37026a49c392de9a41739e07926f8dd878f6c90ac2da6224eb3f78b8ba8e6ca121502ba41c65a6c3353f3cb7fec631a43f016b'
+            'c6a9ba70e38f5fc93e99912fed1ac853521c4125e77f316eb2dfdf6ec2ee3ac34af2ed91bf144d09d25b1bfc06e736d1a9a10954f83d45950a1c83990fed4498')
 
 prepare() {
   cd OpenShadingLanguage-Release-$pkgver
@@ -18,6 +20,7 @@
   # Add system libraries needed to link against LLVM components (zlib, ncurses)
   # This is required in order to statically link against LLVM
   #patch -Np1 < $srcdir/llvm-static-system-libs.patch
+  patch -Np1 -i "$srcdir"/clang7.patch
 }
 
 build() {

Added: clang7.patch
===================================================================
--- clang7.patch	                        (rev 0)
+++ clang7.patch	2018-09-24 03:18:57 UTC (rev 384297)
@@ -0,0 +1,173 @@
+From 8fbbe7dc32e2a418cc259ff8392bd29045d228f8 Mon Sep 17 00:00:00 2001
+From: Larry Gritz <lg at larrygritz.com>
+Date: Sun, 23 Sep 2018 13:19:49 -0700
+Subject: [PATCH] Support clang7 and llvm7
+
+(backported from master)
+---
+ CHANGES.md                                    |   2 +-
+ INSTALL.md                                    |   2 +-
+ site/spi/Makefile-bits                        |  24 +++++++++++++--
+ src/liboslcomp/oslcomp.cpp                    |   6 ++++
+ src/liboslexec/llvm_util.cpp                  |  28 +++++++++++++++---
+ .../render-background/ref/out-clang7mac.exr   | Bin 0 -> 345516 bytes
+ 6 files changed, 53 insertions(+), 9 deletions(-)
+ create mode 100644 testsuite/render-background/ref/out-clang7mac.exr
+
+diff --git a/site/spi/Makefile-bits b/site/spi/Makefile-bits
+index fc7dd5542..3ec6a4270 100644
+--- a/site/spi/Makefile-bits
++++ b/site/spi/Makefile-bits
+@@ -18,7 +18,7 @@ ifeq ($(SP_OS), rhel7)
+ 
+     ## If not overridden, here is our preferred LLVM installation
+     ## (may be changed as new versions are rolled out to the facility)
+-    LLVM_DIRECTORY ?= /shots/spi/home/lib/arnold/rhel7/llvm_5.0.0
++    LLVM_DIRECTORY ?= /shots/spi/home/lib/arnold/rhel7/llvm_7.0.0
+ 
+     # A variety of tags can be used to try specific versions of gcc or
+     # clang from the site-specific places we have installed them.
+@@ -28,14 +28,26 @@ ifeq ($(SP_OS), rhel7)
+            -DCMAKE_CXX_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_4.0_final/bin/clang++
+     else ifeq (${COMPILER}, clang5)
+         MY_CMAKE_FLAGS += \
+-           -DCMAKE_C_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_5.0.0/bin/clang \
+-           -DCMAKE_CXX_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_5.0.0/bin/clang++
++           -DCMAKE_C_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_5.0.1/bin/clang \
++           -DCMAKE_CXX_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_5.0.1/bin/clang++
++    else ifeq (${COMPILER}, clang6)
++        MY_CMAKE_FLAGS += \
++           -DCMAKE_C_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_6.0.1/bin/clang \
++           -DCMAKE_CXX_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_6.0.1/bin/clang++
++    else ifeq (${COMPILER}, clang7)
++        MY_CMAKE_FLAGS += \
++           -DCMAKE_C_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_7.0.0/bin/clang \
++           -DCMAKE_CXX_COMPILER=/shots/spi/home/lib/arnold/rhel7/llvm_7.0.0/bin/clang++
+     else ifeq (${COMPILER},clang)
+         MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
+     else ifeq (${COMPILER}, gcc490)
+       MY_CMAKE_FLAGS += \
+          -DCMAKE_C_COMPILER=/net/soft_scratch/apps/arnold/tools/gcc-4.9-20130512-test/bin/gcc \
+          -DCMAKE_CXX_COMPILER=/net/soft_scratch/apps/arnold/tools/gcc-4.9-20130512-test/bin/g++
++    else ifeq (${COMPILER}, gcc6)
++      MY_CMAKE_FLAGS += \
++         -DCMAKE_C_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/gcc \
++         -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/g++
+     else ifeq (${COMPILER},gcc)
+         MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
+     else ifeq (${COMPILER},)
+@@ -43,8 +55,12 @@ ifeq ($(SP_OS), rhel7)
+         MY_CMAKE_FLAGS += \
+            -DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
+            -DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
++        MY_CMAKE_FLAGS += -DCMAKE_C_FLAGS="--gcc-toolchain=/usr" \
++                          -DCMAKE_CXX_FLAGS="--gcc-toolchain=/usr" \
++			  -DTOOLCHAIN_FLAGS="--gcc-toolchain=/usr"
+     endif
+ 
++
+     MY_CMAKE_FLAGS += \
+ 	-DOPENEXR_CUSTOM_INCLUDE_DIR=/usr/include/OpenEXR2 \
+ 	-DOPENEXR_CUSTOM_LIB_DIR=/usr/lib64/OpenEXR2 \
+@@ -93,6 +109,8 @@ else ifeq (${platform}, macosx)
+         MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=clang-3.5 -DCMAKE_CXX_COMPILER=clang++-3.5
+     else ifeq (${COMPILER},clang40)
+         MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=/usr/local/opt/llvm at 4/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm at 4/bin/clang++
++    else ifeq (${COMPILER},clang7)
++        MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=/usr/local/Cellar/llvm/7.0.0/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/Cellar/llvm/7.0.0/bin/clang++
+     else ifeq (${COMPILER},clang)
+         MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
+     else ifeq (${COMPILER},gcc)
+diff --git a/src/liboslcomp/oslcomp.cpp b/src/liboslcomp/oslcomp.cpp
+index 56baa05dc..308d88cad 100644
+--- a/src/liboslcomp/oslcomp.cpp
++++ b/src/liboslcomp/oslcomp.cpp
+@@ -331,6 +331,12 @@ OSLCompilerImpl::preprocess_buffer (const std::string &buffer,
+ 
+     inst.getPreprocessorOutputOpts().ShowCPP = 1;
+     inst.getPreprocessorOutputOpts().ShowMacros = 0;
++#if OSL_LLVM_VERSION >= 40
++    inst.getPreprocessorOutputOpts().ShowComments = 0;
++    inst.getPreprocessorOutputOpts().ShowLineMarkers = 1;
++    inst.getPreprocessorOutputOpts().ShowMacroComments = 0;
++    inst.getPreprocessorOutputOpts().ShowIncludeDirectives = 0;
++#endif
+ 
+     clang::HeaderSearchOptions &headerOpts = inst.getHeaderSearchOpts();
+     headerOpts.UseBuiltinIncludes = 0;
+diff --git a/src/liboslexec/llvm_util.cpp b/src/liboslexec/llvm_util.cpp
+index ca8b3585d..041f6cd0d 100644
+--- a/src/liboslexec/llvm_util.cpp
++++ b/src/liboslexec/llvm_util.cpp
+@@ -88,6 +88,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #  include <llvm/Transforms/Scalar/GVN.h>
+ #endif
+ 
++#if OSL_LLVM_VERSION >= 70
++#include <llvm/Transforms/Utils.h>
++#include <llvm/Transforms/InstCombine/InstCombine.h>
++#endif
++
+ OSL_NAMESPACE_ENTER
+ 
+ namespace pvt {
+@@ -1353,6 +1358,10 @@ LLVM_Util::op_memset (llvm::Value *ptr, int val, int len, int align)
+ void
+ LLVM_Util::op_memset (llvm::Value *ptr, int val, llvm::Value *len, int align)
+ {
++#if OSL_LLVM_VERSION >= 70
++    builder().CreateMemSet (ptr, builder().getInt8((unsigned char)val),
++                            len, (unsigned)align);
++#else
+     // memset with i32 len
+     // and with an i8 pointer (dst) for LLVM-2.8
+     llvm::Type* types[] = {
+@@ -1381,6 +1390,7 @@ LLVM_Util::op_memset (llvm::Value *ptr, int val, llvm::Value *len, int align)
+     };
+     builder().CreateCall (func, llvm::ArrayRef<llvm::Value*>(args, 5));
+ 
++#endif
+ #endif
+ }
+ 
+@@ -1389,6 +1399,10 @@ LLVM_Util::op_memset (llvm::Value *ptr, int val, llvm::Value *len, int align)
+ void
+ LLVM_Util::op_memcpy (llvm::Value *dst, llvm::Value *src, int len, int align)
+ {
++#if OSL_LLVM_VERSION >= 70
++    builder().CreateMemCpy (dst, (unsigned)align, src, (unsigned)align,
++                            uint64_t(len));
++#else
+     // i32 len
+     // and with i8 pointers (dst and src) for LLVM-2.8
+     llvm::Type* types[] = {
+@@ -1412,6 +1426,7 @@ LLVM_Util::op_memcpy (llvm::Value *dst, llvm::Value *src, int len, int align)
+     };
+     builder().CreateCall (func, llvm::ArrayRef<llvm::Value*>(args, 5));
+ #endif
++#endif
+ }
+ 
+ 
+@@ -1713,12 +1728,17 @@ LLVM_Util::write_bitcode_file (const char *filename, std::string *err)
+     std::string local_error;
+     llvm::raw_fd_ostream out (filename, err ? *err : local_error, llvm::sys::fs::F_None);
+ #endif
+-    llvm::WriteBitcodeToFile (module(), out);
+-
++    if (! out.has_error()) {
++#if OSL_LLVM_VERSION >= 70
++        llvm::WriteBitcodeToFile (*module(), out);
++#else
++        llvm::WriteBitcodeToFile (module(), out);
++#endif
+ #if OSL_LLVM_VERSION >= 36
+-    if (err && local_error)
+-        *err = local_error.message ();
++        if (err && local_error)
++            *err = local_error.message ();
+ #endif
++    }
+ }
+ 
+ 



More information about the arch-commits mailing list