aboutsummaryrefslogtreecommitdiff
path: root/lang/pocl
diff options
context:
space:
mode:
authorMatthew Rezny <rezny@FreeBSD.org>2017-05-12 17:08:26 +0000
committerMatthew Rezny <rezny@FreeBSD.org>2017-05-12 17:08:26 +0000
commit988cb03c8ea3a962563d94e4bc542314d8860599 (patch)
tree505b6ed528efd8b56d0f98d47fa961aea84fafd0 /lang/pocl
parent6538c93db231c09fe2bd6afb3539395f2fcb90cf (diff)
downloadports-988cb03c8ea3a962563d94e4bc542314d8860599.tar.gz
ports-988cb03c8ea3a962563d94e4bc542314d8860599.zip
Update to 0.14 and switch to llvm40 by default
PR: 218332 Reviewed by: jbeich Approved by: swills (mentor), maintainer (timeout) Differential Revision: https://reviews.freebsd.org/D10508
Notes
Notes: svn path=/head/; revision=440691
Diffstat (limited to 'lang/pocl')
-rw-r--r--lang/pocl/Makefile53
-rw-r--r--lang/pocl/distinfo6
-rw-r--r--lang/pocl/files/patch-CMakeLists.txt21
-rw-r--r--lang/pocl/files/patch-Makefile.in25
-rw-r--r--lang/pocl/files/patch-config.h.in.cmake11
-rw-r--r--lang/pocl/files/patch-lib_CL_devices_cpuinfo.c133
-rw-r--r--lang/pocl/files/patch-lib_CL_pocl__binary.c11
-rw-r--r--lang/pocl/files/patch-scripts_Makefile.in21
-rw-r--r--lang/pocl/files/patch-tests_regression_test__issue__445.cpp11
-rw-r--r--lang/pocl/pkg-plist26
10 files changed, 168 insertions, 150 deletions
diff --git a/lang/pocl/Makefile b/lang/pocl/Makefile
index 676a518a9d32..8f9845745c9b 100644
--- a/lang/pocl/Makefile
+++ b/lang/pocl/Makefile
@@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= pocl
-PORTVERSION= 0.13
-PORTREVISION= 1
+PORTVERSION= 0.14
CATEGORIES= lang
MASTER_SITES= SF/pocl \
http://portablecl.org/downloads/
@@ -10,7 +9,7 @@ MASTER_SITES= SF/pocl \
MAINTAINER= ohartman@zedat.fu-berlin.de
COMMENT= POrtable Computing Language (POCL)
-LICENSE= GPLv3
+LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= llvm${LLVM_VERSION}>=0:devel/llvm${LLVM_VERSION} \
@@ -20,46 +19,28 @@ LIB_DEPENDS= libhwloc.so:devel/hwloc \
libltdl.so:devel/libltdl
RUN_DEPENDS= llvm${LLVM_VERSION}>=0:devel/llvm${LLVM_VERSION}
-CONFLICTS= freeocl[0-9]*
-
BROKEN_FreeBSD_10= pocl is not supported on 10.x
-ONLY_FOR_ARCHS= amd64
-ONLY_FOR_ARCHS_REASON_amd64= only tested on amd64
+ONLY_FOR_ARCHS= i386 amd64
+ONLY_FOR_ARCHS_REASON= only tested on x86
-LLVM_VERSION= 38
+LLVM_VERSION= ${MESA_LLVM_VER:U40}
-GNU_CONFIGURE= yes
USE_LDCONFIG= yes
-USE_GL= yes
-USES= gmake localbase ncurses pathfix pkgconfig libtool:keepla
-
-INSTALL_TARGET= install-strip
-
-MAKE_ARGS+= PKGCONFIGDIR=${PREFIX}/libdata/pkgconfig
-
-CONFIGURE_ENV= LLVM_CONFIG="${LOCALBASE}/llvm${LLVM_VERSION}/bin/llvm-config" \
- CLANGXX_FLAGS=-std=gnu++11
-# needed for the libltdl configure check
-LDFLAGS+= -L${LOCALBASE}/lib
-PLIST_SUB= OPSYS=${OPSYS:tl} ARCH=${ARCH}
-
-ALL_TARGET= all
-
-OCL_ICD_VENDORS?= ${PREFIX}/etc/OpenCL/vendors
-
-OPTIONS_DEFINE= DEBUG
-
-OPTIONS_GROUP= TEST
-OPTIONS_GROUP_TEST= OCLBOOK
+USE_CXXSTD= gnu++11
+USES= cmake localbase:ldflags ncurses pkgconfig
-OCLBOOK_DESC= Tests from the OpenCL book
-DEBUG_DESC= Debug build of pocl
+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/}
-OCLBOOK_CONFIGURE_ENABLE= enable_testsuites="opencl-book-samples,cloverleaf,opencl_book_samples,halide,vexcl"
-OCLBOOK_ALL_TARGET= check
+OPTIONS_DEFINE= TEST
-DEBUG_CONFIGURE_ENABLE= debug
+TEST_DESC= Tests from the OpenCL book
+TEST_CMAKE_OFF= -DENABLE_TESTSUITES=""
+TEST_CMAKE_ON= -DENABLE_TESTSUITES="all"
+TEST_TARGET= test
-TEST_TARGET= check
+pre-install-TEST-on: do-test
.include <bsd.port.mk>
diff --git a/lang/pocl/distinfo b/lang/pocl/distinfo
index 7f1bf982386c..dc2fa85f26ec 100644
--- a/lang/pocl/distinfo
+++ b/lang/pocl/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1479738879
-SHA256 (pocl-0.13.tar.gz) = a17f37d8f26819c0c8efc6de2b57f67a0c8a81514fc9cd5005434e49d67499f9
-SIZE (pocl-0.13.tar.gz) = 1901208
+TIMESTAMP = 1491868935
+SHA256 (pocl-0.14.tar.gz) = 2127bf925a91fbbe3daf2f1bac0da5c8aceb16e2a9434977a3057eade974106a
+SIZE (pocl-0.14.tar.gz) = 1231630
diff --git a/lang/pocl/files/patch-CMakeLists.txt b/lang/pocl/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..b38e48064440
--- /dev/null
+++ b/lang/pocl/files/patch-CMakeLists.txt
@@ -0,0 +1,21 @@
+--- CMakeLists.txt.orig 2017-04-05 14:15:40 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)
+
++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-Makefile.in b/lang/pocl/files/patch-Makefile.in
deleted file mode 100644
index 49fa57e1e446..000000000000
--- a/lang/pocl/files/patch-Makefile.in
+++ /dev/null
@@ -1,25 +0,0 @@
-First part: this is false, this was due to a libtool bug, which is fixed now
-Second part: cmp --quiet is long for the -s option, use that since FreeBSD
-cmp doesn't have the long option.
-
---- Makefile.in.orig 2016-09-13 22:57:13.327123000 +0200
-+++ Makefile.in 2016-09-13 23:01:18.738696000 +0200
-@@ -116,8 +116,7 @@
- @POCL_ANDROID_FALSE@am__append_1 = scripts examples tests
-
- #TODO: this naming scheme is used on other platforms (primarly BSDs?) too
--@BUILD_ICD_TRUE@@FREEBSD_HOST_OS_TRUE@am__append_2 = -e 's,so.VER,so.$(LIB_CURRENT_VERSION),g'
--@BUILD_ICD_TRUE@@FREEBSD_HOST_OS_FALSE@am__append_3 = -e 's,so.VER,so.$(LIB_FIRST_VERSION).$(LIB_AGE_VERSION).$(LIB_REVISION_VERSION),g'
-+@BUILD_ICD_TRUE@am__append_3 = -e 's,so.VER,so.$(LIB_FIRST_VERSION).$(LIB_AGE_VERSION).$(LIB_REVISION_VERSION),g'
- @BUILD_ICD_TRUE@am__append_4 = pocl.icd
- @BUILD_ICD_TRUE@am__append_5 = pocl.icd
- subdir = .
-@@ -1076,7 +1075,7 @@
- echo "#define PKGDATADIR \"${pkgdatadir}\"" > $@.new
- echo "#define PKGLIBEXECDIR \"${pkglibexecdir}\"" >> $@.new
- echo "#define PKGINCLUDEDIR \"${pkgincludedir}\"" >> $@.new
-- @if cmp --quiet $@.new $@ ; then \
-+ @if cmp -s $@.new $@ ; then \
- : "Paths not changed" ;\
- $(RM) $@.new ;\
- else \
diff --git a/lang/pocl/files/patch-config.h.in.cmake b/lang/pocl/files/patch-config.h.in.cmake
new file mode 100644
index 000000000000..897cf7933dc2
--- /dev/null
+++ b/lang/pocl/files/patch-config.h.in.cmake
@@ -0,0 +1,11 @@
+--- config.h.in.cmake.orig 2017-04-05 14:15:40 UTC
++++ config.h.in.cmake
+@@ -44,6 +44,8 @@
+
+ #cmakedefine HAVE_VFORK
+
++#cmakedefine HAVE_SYSCTL_H
++
+ #cmakedefine HAVE_CLOCK_GETTIME
+
+ #cmakedefine HAVE_LTTNG_UST
diff --git a/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c b/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c
index 1b7ce29b8034..2ec9f99ade04 100644
--- a/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c
+++ b/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c
@@ -1,90 +1,121 @@
---- lib/CL/devices/cpuinfo.c.orig 2016-11-20 11:31:19.521203000 +0100
-+++ lib/CL/devices/cpuinfo.c 2016-11-20 11:29:24.502817000 +0100
-@@ -31,9 +31,13 @@
- # include "vccompat.hpp"
- #endif
-
-+#include <sys/types.h>
-+#include <sys/sysctl.h>
-+
+--- lib/CL/devices/cpuinfo.c.orig 2017-04-05 14:15:40 UTC
++++ lib/CL/devices/cpuinfo.c
+@@ -34,6 +34,12 @@
#include "config.h"
#include "cpuinfo.h"
-+#if 0
- const char* cpuinfo = "/proc/cpuinfo";
++#ifdef HAVE_SYSCTL_H
++# include <sys/types.h>
++# include <sys/sysctl.h>
++#endif
++
++#ifdef __linux__
+ static const char* cpuinfo = "/proc/cpuinfo";
#define MAX_CPUINFO_SIZE 64*1024
//#define DEBUG_POCL_CPUINFO
-@@ -152,8 +156,29 @@ pocl_cpuinfo_detect_max_clock_frequency(
+@@ -153,8 +159,51 @@ pocl_cpuinfo_detect_max_clock_frequency(
}
return -1;
}
-+#endif
-+
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
+/**
-+ * Detects the number of parallel hardware threads supported by
-+ * the CPU.
++ * Detects the maximum clock frequency of the CPU.
+ *
-+ * @return The number of hardware threads.
++ * Assumes all cores have the same max clock freq.
++ *
++ * @return The clock frequency in MHz.
+ */
-+ int
-+pocl_cpuinfo_detect_compute_unit_count()
++int
++pocl_cpuinfo_detect_max_clock_frequency()
+{
-+ int mib[2], nocpus;
-+ size_t len;
-
-+ mib[0] = CTL_HW;
-+ mib[1] = HW_NCPU;
-+ len = sizeof(nocpus);
-+ sysctl(mib, 2, &nocpus, &len, NULL, 0);
++ const char mib1[] = "dev.cpu.0.freq_levels";
++ const char mib2[] = "hw.clockrate";
++ int clockrate = 0;
++ size_t size = 0;
++ char *value = NULL;
-+ return nocpus;
++ if (!sysctlbyname(mib1, NULL, &size, NULL, 0) &&
++ (value = (char*)malloc(++size)) &&
++ !sysctlbyname(mib1, (void*)value, &size, NULL, 0))
++ {
++ value[size] = '\0';
++ sscanf(value, "%d/%*d", &clockrate);
++ }
++ else
++ {
++ size = sizeof(clockrate);
++ sysctlbyname(mib2, (void*)&clockrate, &size, NULL, 0);
++ }
++ if (value)
++ free(value);
++ return clockrate;
+}
-+
-+#if 0
++#else
++/**
++ * Unimplemented for other platforms.
++ */
++ int
++pocl_cpuinfo_detect_max_clock_frequency()
++{
++ return 0;
++}
++#endif
+
++#ifdef __linux__
/**
* Detects the number of parallel hardware threads supported by
* the CPU by parsing the cpuinfo.
-@@ -231,6 +256,27 @@ pocl_cpuinfo_detect_compute_unit_count()
+@@ -232,6 +281,19 @@ pocl_cpuinfo_detect_compute_unit_count()
}
return -1;
}
-+#endif
-+
++#else
+/**
-+ * Detects the maximum clock frequency of the CPU.
-+ *
-+ * Assumes all cores have the same max clock freq.
++ * Detects the number of parallel hardware threads supported by
++ * the CPU.
+ *
-+ * @return The clock frequency in MHz.
++ * @return The number of hardware threads.
+ */
-+int
-+pocl_cpuinfo_detect_max_clock_frequency()
++ int
++pocl_cpuinfo_detect_compute_unit_count()
+{
-+ //XXX PLEASE NOTE, THIS IS NOT TOO PORTABLE (AND/OR ACCURATE)!
-+ const char mib[] = "hw.clockrate";
-+ size_t size = sizeof(int);
-+ int clockrate;
-+
-+ sysctlbyname(mib, (void *)&clockrate, &size, NULL, 0);
-+
-+ return clockrate;
-+ }
++ return sysconf(_SC_NPROCESSORS_ONLN);
++}
++#endif
#ifdef POCL_ANDROID
-@@ -269,6 +315,7 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_
+@@ -270,6 +332,7 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_
* short_name is in the .data anyways.*/
device->long_name = device->short_name;
-+#if 0
++#ifdef __linux__
/* default vendor and vendor_id, in case it cannot be found by other means */
device->vendor = cpuvendor_default;
if (device->vendor_id == 0)
-@@ -317,6 +364,7 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_
+@@ -318,7 +381,25 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_
char *new_name = (char*)malloc (len);
snprintf (new_name, len, "%s-%s", device->short_name, start);
device->long_name = new_name;
-+#endif
++#elif defined(HAVE_SYSCTL_H)
++ 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))
++ return;
++ if (!(model = (char*)malloc(++len)))
++ return;
++ if (sysctl(mib, 2, (void*)model, &len, NULL, 0))
++ free(model);
++ else
++ {
++ model[len] = '\0';
++ device->long_name = model;
++ }
++#endif
}
+ void
diff --git a/lang/pocl/files/patch-lib_CL_pocl__binary.c b/lang/pocl/files/patch-lib_CL_pocl__binary.c
new file mode 100644
index 000000000000..93dc7c1f59ee
--- /dev/null
+++ b/lang/pocl/files/patch-lib_CL_pocl__binary.c
@@ -0,0 +1,11 @@
+--- lib/CL/pocl_binary.c.orig 2017-04-05 14:15:40 UTC
++++ lib/CL/pocl_binary.c
+@@ -36,7 +36,7 @@
+ #include <libgen.h>
+
+ #ifndef __APPLE__
+- #include <endian.h>
++ #include <sys/endian.h>
+ #else
+ #include <libkern/OSByteOrder.h>
+ #define htole16(x) OSSwapHostToLittleInt16(x)
diff --git a/lang/pocl/files/patch-scripts_Makefile.in b/lang/pocl/files/patch-scripts_Makefile.in
deleted file mode 100644
index 49cc3878bd53..000000000000
--- a/lang/pocl/files/patch-scripts_Makefile.in
+++ /dev/null
@@ -1,21 +0,0 @@
-dirty hack, pocl-standalone will be installed into stage with
-r-xr-xr-x permissions. So writing to it is problemetic. give the file write
-permission and take it away after.
-
-Upstream (pre 0.14) will be using cmake so this hack is only temporary.
-
---- scripts/Makefile.in.orig 2016-09-13 22:10:48.091956000 +0200
-+++ scripts/Makefile.in 2016-09-13 22:13:33.388168000 +0200
-@@ -651,10 +651,11 @@
-
- install-exec-hook: $(bin_SCRIPTS)
- for f in $(bin_SCRIPTS) ; do \
-+ chmod +w "$(DESTDIR)$(bindir)/$$f" ; \
- sed -e '/^# BEGIN REMOVE ONCE INSTALLED$$/,/^# END REMOVE ONCE INSTALLED$$/d' \
- > "$(DESTDIR)$(bindir)/$$f" \
- < "$$f" && \
-- chmod +x "$(DESTDIR)$(bindir)/$$f" ; \
-+ chmod +x-w "$(DESTDIR)$(bindir)/$$f" ; \
- done
-
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/lang/pocl/files/patch-tests_regression_test__issue__445.cpp b/lang/pocl/files/patch-tests_regression_test__issue__445.cpp
new file mode 100644
index 000000000000..4b4b5628fba9
--- /dev/null
+++ b/lang/pocl/files/patch-tests_regression_test__issue__445.cpp
@@ -0,0 +1,11 @@
+--- 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-plist b/lang/pocl/pkg-plist
index ab25e32ad3bd..81b48cce7312 100644
--- a/lang/pocl/pkg-plist
+++ b/lang/pocl/pkg-plist
@@ -1,27 +1,25 @@
-bin/pocl-standalone
+bin/poclcc
etc/OpenCL/vendors/pocl.icd
include/poclu.h
-lib/libpocl.a
-lib/libpocl.la
lib/libpocl.so
lib/libpocl.so.1
-lib/libpocl.so.1.6.0
-lib/libpoclu.a
-lib/libpoclu.la
+lib/libpocl.so.1.7.0
lib/libpoclu.so
lib/libpoclu.so.1
-lib/libpoclu.so.1.6.0
-lib/pocl/llvmopencl.a
-lib/pocl/llvmopencl.la
-lib/pocl/llvmopencl.so
-lib/pocl/llvmopencl.so.7
-lib/pocl/llvmopencl.so.7.0.0
+lib/libpoclu.so.1.7.0
+lib/pocl/libllvmopencl.so
libdata/pkgconfig/pocl.pc
+%%DATADIR%%/include/_enable_all_exts.h
%%DATADIR%%/include/_kernel.h
%%DATADIR%%/include/_kernel_c.h
%%DATADIR%%/include/_kernel_constants.h
%%DATADIR%%/include/pocl.h
%%DATADIR%%/include/pocl_device.h
-%%DATADIR%%/include/pocl_tests.h
%%DATADIR%%/include/pocl_types.h
-%%DATADIR%%/kernel-%%ARCH%%-portbld-%%OPSYS%%%%OSREL%%.bc
+%%DATADIR%%/kernel-%%ARCH%%-unknown-%%OPSYS%%%%OSREL%%-avx.bc
+%%DATADIR%%/kernel-%%ARCH%%-unknown-%%OPSYS%%%%OSREL%%-avx2.bc
+%%DATADIR%%/kernel-%%ARCH%%-unknown-%%OPSYS%%%%OSREL%%-avx512.bc
+%%DATADIR%%/kernel-%%ARCH%%-unknown-%%OPSYS%%%%OSREL%%-avx_fma4.bc
+%%DATADIR%%/kernel-%%ARCH%%-unknown-%%OPSYS%%%%OSREL%%-sse2.bc
+%%DATADIR%%/kernel-%%ARCH%%-unknown-%%OPSYS%%%%OSREL%%-sse41.bc
+%%DATADIR%%/kernel-%%ARCH%%-unknown-%%OPSYS%%%%OSREL%%-ssse3.bc