Index: lang/pocl/Makefile =================================================================== --- lang/pocl/Makefile (revision 503504) +++ lang/pocl/Makefile (working copy) @@ -1,45 +1,48 @@ # $FreeBSD$ -PORTNAME= pocl -PORTVERSION= 0.14 -CATEGORIES= lang -MASTER_SITES= SF/pocl \ - http://portablecl.org/downloads/ +PORTNAME= pocl +PORTVERSION= 1.3 +DISTVERSIONPREFIX= v +CATEGORIES= lang -MAINTAINER= ohartman@zedat.fu-berlin.de -COMMENT= POrtable Computing Language (POCL) +MAINTAINER= ohartmann@walstatt.org +COMMENT= POrtable Computing Language (POCL) -LICENSE= MIT -LICENSE_FILE= ${WRKSRC}/LICENSE +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= only tested on x86 +BROKEN_FreeBSD_10= pocl is not supported on 10.x + BUILD_DEPENDS= llvm${LLVM_VERSION}>=0:devel/llvm${LLVM_VERSION} \ - opencl>=2.1:devel/opencl + opencl>=2.1:devel/opencl 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} + libOpenCL.so:devel/ocl-icd \ + libltdl.so:devel/libltdl +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 +USES= cmake localbase:ldflags ncurses pkgconfig + +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" -PLIST_SUB= OPSYS=${OPSYS:tl} ARCH=${ARCH:S/amd64/x86_64/} +CMAKE_ARGS= -DWITH_LLVM_CONFIG="${LOCALBASE}/llvm${LLVM_VERSION}/bin/llvm-config" \ + -DPOCL_INSTALL_PKGCONFIG_DIR="${PREFIX}/libdata/pkgconfig" \ + -DKERNELLIB_HOST_CPU_VARIANTS="distro" \ + -DSINGLE_LLVM_LIB=OFF -OPTIONS_DEFINE= TEST +PLIST_SUB= OPSYS=${OPSYS:tl} ARCH=${ARCH:S/amd64/x86_64/} -TEST_DESC= Tests from the OpenCL book -TEST_CMAKE_OFF= -DENABLE_TESTSUITES="" -TEST_CMAKE_ON= -DENABLE_TESTSUITES="all" -TEST_TARGET= test +OPTIONS_DEFINE= DOCS -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 Index: lang/pocl/distinfo =================================================================== --- lang/pocl/distinfo (revision 503504) +++ lang/pocl/distinfo (working copy) @@ -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 Index: lang/pocl/files/patch-CMakeLists.txt =================================================================== --- lang/pocl/files/patch-CMakeLists.txt (revision 503504) +++ lang/pocl/files/patch-CMakeLists.txt (working copy) @@ -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) Index: lang/pocl/files/patch-config.h.in.cmake =================================================================== --- lang/pocl/files/patch-config.h.in.cmake (revision 503504) +++ lang/pocl/files/patch-config.h.in.cmake (working copy) @@ -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 Index: lang/pocl/files/patch-lib_CL_devices_cpuinfo.c =================================================================== --- lang/pocl/files/patch-lib_CL_devices_cpuinfo.c (revision 503504) +++ lang/pocl/files/patch-lib_CL_devices_cpuinfo.c (working copy) @@ -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 + /* Index: lang/pocl/pkg-descr =================================================================== --- lang/pocl/pkg-descr (revision 503504) +++ lang/pocl/pkg-descr (working copy) @@ -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/ Index: lang/pocl/pkg-plist =================================================================== --- lang/pocl/pkg-plist (revision 503504) +++ lang/pocl/pkg-plist (working copy) @@ -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%%.0-avx.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.0-avx2.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.0-avx512.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.0-avx_f16c.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.0-avx_fma4.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.0-sse2.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.0-sse41.bc +%%DATADIR%%/kernel-%%ARCH%%-portbld-%%PYTHON_PLATFORM%%.0-ssse3.bc