From 7e1bf9831b7273467037ba2ff628ebd385b4949a Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Thu, 6 Jun 2019 21:07:41 +0000 Subject: [PATCH] Update to POCL 1.3. PR: 224584 Submitted by: ohartmann@walstatt.org (maintainer) --- lang/pocl/Makefile | 31 ++++++++++--------- lang/pocl/distinfo | 6 ++-- lang/pocl/files/patch-CMakeLists.txt | 19 +++--------- lang/pocl/files/patch-config.h.in.cmake | 6 ++-- .../pocl/files/patch-lib_CL_devices_cpuinfo.c | 12 +++---- lang/pocl/files/patch-lib_CL_pocl__binary.c | 11 ------- ...atch-tests_regression_test__issue__445.cpp | 11 ------- lang/pocl/pkg-descr | 20 ++++++------ lang/pocl/pkg-plist | 28 +++++++++-------- 9 files changed, 58 insertions(+), 86 deletions(-) delete mode 100644 lang/pocl/files/patch-lib_CL_pocl__binary.c delete mode 100644 lang/pocl/files/patch-tests_regression_test__issue__445.cpp diff --git a/lang/pocl/Makefile b/lang/pocl/Makefile index d40779b6754e..09330cea8e4a 100644 --- a/lang/pocl/Makefile +++ b/lang/pocl/Makefile @@ -1,12 +1,11 @@ # $FreeBSD$ PORTNAME= pocl -PORTVERSION= 0.14 +PORTVERSION= 1.3 +DISTVERSIONPREFIX= v CATEGORIES= lang -MASTER_SITES= SF/pocl \ - http://portablecl.org/downloads/ -MAINTAINER= ohartman@zedat.fu-berlin.de +MAINTAINER= ohartmann@walstatt.org COMMENT= POrtable Computing Language (POCL) LICENSE= MIT @@ -20,26 +19,28 @@ BUILD_DEPENDS= llvm${LLVM_VERSION}>=0:devel/llvm${LLVM_VERSION} \ LIB_DEPENDS= libhwloc.so:devel/hwloc \ libOpenCL.so:devel/ocl-icd \ libltdl.so:devel/libltdl -RUN_DEPENDS= llvm${LLVM_VERSION}>=0:devel/llvm${LLVM_VERSION} +RUN_DEPENDS= ${BUILD_DEPENDS} -LLVM_VERSION= ${MESA_LLVM_VER:U40} +LLVM_VERSION= ${MESA_LLVM_VER:U80} USES= cmake localbase:ldflags ncurses pkgconfig -USE_CXXSTD= gnu++11 + +USE_GITHUB= yes USE_LDCONFIG= yes CMAKE_ARGS= -DWITH_LLVM_CONFIG="${LOCALBASE}/llvm${LLVM_VERSION}/bin/llvm-config" \ -DPOCL_INSTALL_PKGCONFIG_DIR="${PREFIX}/libdata/pkgconfig" \ - -DKERNELLIB_HOST_CPU_VARIANTS="distro" + -DKERNELLIB_HOST_CPU_VARIANTS="distro" \ + -DSINGLE_LLVM_LIB=OFF + PLIST_SUB= OPSYS=${OPSYS:tl} ARCH=${ARCH:S/amd64/x86_64/} -OPTIONS_DEFINE= TEST +OPTIONS_DEFINE= DOCS -TEST_DESC= Tests from the OpenCL book -TEST_CMAKE_OFF= -DENABLE_TESTSUITES="" -TEST_CMAKE_ON= -DENABLE_TESTSUITES="all" -TEST_TARGET= test - -pre-install-TEST-on: do-test +DOCS_DESC= Build documentation (needs sphinx) +DOCS_CMAKE_OFF= -DENABLE_DOCS=OFF +DOCS_CMAKE_ON= -DENABLE_DOCS=ON +DOCS_USES= python +DOCS_BUILD_DEPENDS= ${PY_FLAVOR}-sphinx>0:textproc/py-sphinx@${PY_FLAVOR} .include diff --git a/lang/pocl/distinfo b/lang/pocl/distinfo index dc2fa85f26ec..51c60043cd39 100644 --- a/lang/pocl/distinfo +++ b/lang/pocl/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1491868935 -SHA256 (pocl-0.14.tar.gz) = 2127bf925a91fbbe3daf2f1bac0da5c8aceb16e2a9434977a3057eade974106a -SIZE (pocl-0.14.tar.gz) = 1231630 +TIMESTAMP = 1555268767 +SHA256 (pocl-pocl-v1.3_GH0.tar.gz) = 6527e3f47fab7c21e96bc757c4ae3303901f35e23f64642d6da5cc4c4fcc915a +SIZE (pocl-pocl-v1.3_GH0.tar.gz) = 1414807 diff --git a/lang/pocl/files/patch-CMakeLists.txt b/lang/pocl/files/patch-CMakeLists.txt index b38e48064440..18bed3e1403b 100644 --- a/lang/pocl/files/patch-CMakeLists.txt +++ b/lang/pocl/files/patch-CMakeLists.txt @@ -1,21 +1,12 @@ ---- CMakeLists.txt.orig 2017-04-05 14:15:40 UTC +--- CMakeLists.txt.orig 2019-04-04 12:06:59 UTC +++ CMakeLists.txt -@@ -70,7 +70,7 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "a - set(ARMV6 1) - elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") - set(ARM64 1) --elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i.86|AMD64|x86_64)") -+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i.86|amd64|AMD64|x86_64)") - if(POCL_DEVICE_ADDRESS_BITS MATCHES "32") - set(I386 1) - else() -@@ -318,6 +318,9 @@ include(CheckFunctionExists) - check_function_exists(fork HAVE_FORK) - check_function_exists(vfork HAVE_VFORK) +@@ -546,6 +546,9 @@ else() + set(HAVE_UTIME 0) + endif() +include(CheckIncludeFiles) +check_include_files("sys/types.h;sys/sysctl.h" HAVE_SYSCTL_H) + + ###################################################################################### - if(NOT DEFINED DEFAULT_USE_VECMATHLIB) diff --git a/lang/pocl/files/patch-config.h.in.cmake b/lang/pocl/files/patch-config.h.in.cmake index 897cf7933dc2..7fc415bd14e7 100644 --- a/lang/pocl/files/patch-config.h.in.cmake +++ b/lang/pocl/files/patch-config.h.in.cmake @@ -1,6 +1,6 @@ ---- config.h.in.cmake.orig 2017-04-05 14:15:40 UTC +--- config.h.in.cmake.orig 2019-04-04 12:06:59 UTC +++ config.h.in.cmake -@@ -44,6 +44,8 @@ +@@ -41,6 +41,8 @@ #cmakedefine HAVE_VFORK @@ -8,4 +8,4 @@ + #cmakedefine HAVE_CLOCK_GETTIME - #cmakedefine HAVE_LTTNG_UST + #cmakedefine HAVE_FDATASYNC diff --git a/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c b/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c index 2ec9f99ade04..388e9bbcd8a4 100644 --- a/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c +++ b/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c @@ -1,4 +1,4 @@ ---- lib/CL/devices/cpuinfo.c.orig 2017-04-05 14:15:40 UTC +--- lib/CL/devices/cpuinfo.c.orig 2019-04-04 12:06:59 UTC +++ lib/CL/devices/cpuinfo.c @@ -34,6 +34,12 @@ #include "config.h" @@ -13,7 +13,7 @@ static const char* cpuinfo = "/proc/cpuinfo"; #define MAX_CPUINFO_SIZE 64*1024 //#define DEBUG_POCL_CPUINFO -@@ -153,8 +159,51 @@ pocl_cpuinfo_detect_max_clock_frequency( +@@ -153,8 +159,51 @@ pocl_cpuinfo_detect_max_clock_frequency() } return -1; } @@ -85,7 +85,7 @@ #ifdef POCL_ANDROID -@@ -270,6 +332,7 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_ +@@ -326,6 +388,7 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi * short_name is in the .data anyways.*/ device->long_name = device->short_name; @@ -93,7 +93,7 @@ /* default vendor and vendor_id, in case it cannot be found by other means */ device->vendor = cpuvendor_default; if (device->vendor_id == 0) -@@ -318,7 +381,25 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_ +@@ -425,6 +488,25 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi char *new_name = (char*)malloc (len); snprintf (new_name, len, "%s-%s", device->short_name, start); device->long_name = new_name; @@ -101,7 +101,7 @@ + int mib[2]; + size_t len = 0; + char *model; - ++ + mib[0] = CTL_HW; + mib[1] = HW_MODEL; + if (sysctl(mib, 2, NULL, &len, NULL, 0)) @@ -118,4 +118,4 @@ +#endif } - void + /* diff --git a/lang/pocl/files/patch-lib_CL_pocl__binary.c b/lang/pocl/files/patch-lib_CL_pocl__binary.c deleted file mode 100644 index 93dc7c1f59ee..000000000000 --- a/lang/pocl/files/patch-lib_CL_pocl__binary.c +++ /dev/null @@ -1,11 +0,0 @@ ---- lib/CL/pocl_binary.c.orig 2017-04-05 14:15:40 UTC -+++ lib/CL/pocl_binary.c -@@ -36,7 +36,7 @@ - #include - - #ifndef __APPLE__ -- #include -+ #include - #else - #include - #define htole16(x) OSSwapHostToLittleInt16(x) diff --git a/lang/pocl/files/patch-tests_regression_test__issue__445.cpp b/lang/pocl/files/patch-tests_regression_test__issue__445.cpp deleted file mode 100644 index 4b4b5628fba9..000000000000 --- a/lang/pocl/files/patch-tests_regression_test__issue__445.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- tests/regression/test_issue_445.cpp.orig 2017-04-05 14:15:40 UTC -+++ tests/regression/test_issue_445.cpp -@@ -29,7 +29,7 @@ private_local_array(__global int *__rest - } - )CLC"; - --int main(int, char *) -+int main(int, char **) - { - try { - int N = 9; diff --git a/lang/pocl/pkg-descr b/lang/pocl/pkg-descr index eb101155d3b3..1fbd54e182a3 100644 --- a/lang/pocl/pkg-descr +++ b/lang/pocl/pkg-descr @@ -1,22 +1,22 @@ Portable OpenCL (pocl) ---------------------- -Portable OpenCL aims to be an efficient open source (MIT-licensed) -implementation of the OpenCL 1.2 standard. +Portable OpenCL aims to be an efficient open source (MIT-licensed) +implementation of the OpenCL 1.2 standard. In addition to producing an easily portable open source OpenCL -implementation, another major goal of the project is improving -performance portability of OpenCL programs with compiler -optimizations, reducing the need for target-dependent manual -optimizations. At the core of pocl is a set of LLVM passes +implementation, another major goal of the project is improving +performance portability of OpenCL programs with compiler +optimizations, reducing the need for target-dependent manual +optimizations. At the core of pocl is a set of LLVM passes used to statically parallelize multiple work-items with the kernel -compiler, even in the presence of work-group barriers. This enables -parallelization of the fine-grained static concurrency in the work +compiler, even in the presence of work-group barriers. This enables +parallelization of the fine-grained static concurrency in the work groups in multiple ways (SIMD, VLIW, superscalar,...). The code base is modularized to allow easy adding of new "device drivers" -in the host-device layer. A generic multithreaded "target driver" is -included. It allows running OpenCL applications on a host that supports +in the host-device layer. A generic multithreaded "target driver" is +included. It allows running OpenCL applications on a host that supports the pthread library with multithreading at the work group granularity. WWW: http://portablecl.org/ diff --git a/lang/pocl/pkg-plist b/lang/pocl/pkg-plist index 8361bfe81310..153fd094e24a 100644 --- a/lang/pocl/pkg-plist +++ b/lang/pocl/pkg-plist @@ -1,25 +1,27 @@ bin/poclcc etc/OpenCL/vendors/pocl.icd -include/poclu.h lib/libpocl.so -lib/libpocl.so.1 -lib/libpocl.so.1.7.0 -lib/libpoclu.so -lib/libpoclu.so.1 -lib/libpoclu.so.1.7.0 +lib/libpocl.so.2 +lib/libpocl.so.2.3.0 lib/pocl/libllvmopencl.so libdata/pkgconfig/pocl.pc +%%DATADIR%%/include/_builtin_renames.h +%%DATADIR%%/include/_clang_opencl.h %%DATADIR%%/include/_enable_all_exts.h %%DATADIR%%/include/_kernel.h %%DATADIR%%/include/_kernel_c.h %%DATADIR%%/include/_kernel_constants.h +%%DATADIR%%/include/_pocl_opencl.h %%DATADIR%%/include/pocl.h %%DATADIR%%/include/pocl_device.h +%%DATADIR%%/include/pocl_image_types.h +%%DATADIR%%/include/pocl_spir.h %%DATADIR%%/include/pocl_types.h -%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%-avx.bc -%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%-avx2.bc -%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%-avx512.bc -%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%-avx_fma4.bc -%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%-sse2.bc -%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%-sse41.bc -%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%-ssse3.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-avx.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-avx2.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-avx512.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-avx_f16c.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-avx_fma4.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-sse2.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-sse41.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.2-ssse3.bc