git: f16fd0420743 - main - lang/pocl: Update to 7.0

From: Zsolt Udvari <uzsolt_at_FreeBSD.org>
Date: Fri, 11 Jul 2025 12:40:53 UTC
The branch main has been updated by uzsolt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f16fd0420743dfe12ef7a709f1f577b18e5b82e3

commit f16fd0420743dfe12ef7a709f1f577b18e5b82e3
Author:     O. Hartmann <ohartmann@walstatt.org>
AuthorDate: 2025-07-11 12:15:15 +0000
Commit:     Zsolt Udvari <uzsolt@FreeBSD.org>
CommitDate: 2025-07-11 12:40:23 +0000

    lang/pocl: Update to 7.0
    
    Introduce new options, pocld remote server with initscript.
    Pet portlint, portfmt.
    
    Changelogs:
    https://portablecl.org/docs/html/notes_7_0.html
    https://portablecl.org/docs/html/notes_6_0.html
    https://portablecl.org/docs/html/notes_5_0.html
    
    PR:             287243
    Approved by:    submitter is maintainer
---
 lang/pocl/Makefile                             | 144 ++++++++++++++++++-------
 lang/pocl/distinfo                             |   6 +-
 lang/pocl/files/patch-CMakeLists.txt           |  12 +--
 lang/pocl/files/patch-config.h.in.cmake        |   8 +-
 lang/pocl/files/patch-lib_CL_devices_cpuinfo.c |  16 +--
 lang/pocl/files/patch-lib_CL_pocl__timing.c    |   4 +-
 lang/pocl/files/patch-pocld_common.cc          |  13 +++
 lang/pocl/files/patch-pocld_daemon.cc          |  12 +++
 lang/pocl/files/patch-pocld_pocld.cc           |  11 ++
 lang/pocl/files/pocld.in                       |  28 +++++
 lang/pocl/pkg-descr                            |  22 ----
 lang/pocl/pkg-message                          |  18 ----
 lang/pocl/pkg-plist                            |  42 +++++++-
 13 files changed, 235 insertions(+), 101 deletions(-)

diff --git a/lang/pocl/Makefile b/lang/pocl/Makefile
index a13e9e87c3ca..42a411b8e653 100644
--- a/lang/pocl/Makefile
+++ b/lang/pocl/Makefile
@@ -1,70 +1,142 @@
 PORTNAME=	pocl
 DISTVERSIONPREFIX=	v
-DISTVERSION=	4.0
+DISTVERSION=	7.0
 CATEGORIES=	lang
 
 MAINTAINER=	ohartmann@walstatt.org
 COMMENT=	POrtable Computing Language (POCL)
-WWW=	http://portablecl.org/
+WWW=		https://portablecl.org/docs/html
 
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-ONLY_FOR_ARCHS=	aarch64 amd64 i386 powerpc64 powerpc64le
+ONLY_FOR_ARCHS=	aarch64 amd64 powerpc64 powerpc64le
 ONLY_FOR_ARCHS_REASON=	only tested on ${ONLY_FOR_ARCHS:tW:S/ /, /g}
-BROKEN_i386=	Unable to access file /wrkdirs/usr/ports/lang/pocl/work/stage/usr/local/share/pocl/kernel-i386-portbld-freebsd13.0-avx.bc:No such file or directory
 
-BUILD_DEPENDS=	llvm${LLVM_VERSION}>=14:devel/llvm${LLVM_VERSION} \
-		opencl>=3:devel/opencl
-LIB_DEPENDS=	libhwloc.so:devel/hwloc2 libOpenCL.so:devel/ocl-icd
+BUILD_DEPENDS=	clang${LLVM_VER}:devel/llvm${LLVM_VER} \
+		opencl>=3:devel/opencl \
+		spirv-llvm-translator-llvm${LLVM_VER}>=${LLVM_VER}:devel/spirv-llvm-translator@llvm${LLVM_VER} \
+		spirv-tools>0:graphics/spirv-tools
 
-USES=		cmake localbase:ldflags ncurses pkgconfig
+LIB_DEPENDS=	libhwloc.so:devel/hwloc2 \
+		libLLVM-${LLVM_VER}.so:devel/llvm${LLVM_VER} \
+		libOpenCL.so:devel/ocl-icd
+RUN_DEPENDS=	${BUILD_DEPENDS}
+
+USES=		cmake:noninja gmake localbase:ldflags ncurses pkgconfig python
 USE_GITHUB=	yes
 USE_LDCONFIG=	yes
 
-LLVM_VERSION=	${MESA_LLVM_VER:U16}
-CMAKE_ARGS=	-DWITH_LLVM_CONFIG="${LOCALBASE}/llvm${LLVM_VERSION}/bin/llvm-config" \
+LLVM_VER=	20
+CMAKE_ARGS=	${CMAKE_ARGS_${ARCH}} \
+		-DENABLE_HOST_CPU_DEVICES=ON \
+		-DENABLE_HOST_CPU_DEVICES_OPENMP=ON \
+		-DENABLE_ICD=ON \
+		-DENABLE_LATEST_CXX_STD=YES \
+		-DENABLE_POCL_BUILDING=OFF \
+		-DENABLE_SPIRV=ON \
+		-DHAVE_OCL_ICD_30_COMPATIBLE=ON \
+		-DHOST_COMPILER_SUPPORTS_FLOAT16:BOOL=OFF \
+		-DKERNELLIB_HOST_CPU_VARIANTS=distro \
+		-DLLVM_CONFIG_LOCATION=${LOCALBASE}/bin/llvm-config${LLVM_VER}/ \
+		-DPOCL_ICD_ABSOLUTE_PATH=ON \
 		-DPOCL_INSTALL_PKGCONFIG_DIR="${PREFIX}/libdata/pkgconfig" \
-		-DSINGLE_LLVM_LIB=ON \
-		${CMAKE_ARGS_${ARCH}}
+		-DWITH_LLVM_CONFIG="${LOCALBASE}/llvm${LLVM_VER}/bin/llvm-config"
 
 CMAKE_ARGS_aarch64=	-DLLC_HOST_CPU=cortex-a53
-CMAKE_ARGS_powerpc64=	-DLLC_HOST_CPU=ppc64
-CMAKE_ARGS_powerpc64le=	-DLLC_HOST_CPU=ppc64le
-CMAKE_ARGS_amd64=	-DKERNELLIB_HOST_CPU_VARIANTS="distro"
+CMAKE_ARGS_powerpc64=	-DLLC_HOST_CPU=ppc64 \
+			-DKERNELLIB_HOST_CPU_VARIANTS=distro
+CMAKE_ARGS_powerpc64le=	-DLLC_HOST_CPU=ppc64le \
+			-DKERNELLIB_HOST_CPU_VARIANTS=distro
+CMAKE_ARGS_amd64=	-DKERNELLIB_HOST_CPU_VARIANTS=distro
 
 PLIST_SUB=	CONFIGURE_TARGET=${CONFIGURE_TARGET:S/amd64/x86_64/}
 
-OPTIONS_DEFINE=	DOCS
+OPTIONS_DEFINE=		CONFORMANCE DEBUG DOCS DOCS_PDF LTTNG OMP REMOTE \
+			SHARED_LIBS STATIC_LLVM TESTS
+OPTIONS_DEFAULT=	OMP SHARED_LIBS TESTS
+OPTIONS_SUB=		yes
+
+CONFORMANCE_DESC=	Conformant pocl build (defaults to OFF)
+DEBUG_DESC=		Build POCL with DEBUG messages
+DOCS_DESC=		Build documentation (needs textproc/py-sphinx)
+DOCS_PDF_DESC=		Build PDF alongside with standard HTML docs
+LTTNG_DESC=		Trace both server and client lib with lttng
+OMP_DESC=		Enable OpenMP on CPU driver
+REMOTE_DESC=		Enable pocld, a remote server
+SHARED_LIBS_DESC=	Build shared libs
+STATIC_LLVM_DESC=	Have static libLLVM
+TESTS_DESC=		Enable compilation of internal tests
+
+CONFORMANCE_CMAKE_ON=	-DENABLE_CONFORMANCE=ON
+CONFORMANCE_CMAKE_OFF=	-DENABLE_CONFORMANCE=OFF
+
+DEBUG_CMAKE_ON=		-DPOCL_DEBUG_MESSAGES=ON
+DEBUG_CMAKE_OFF=	-DPOCL_DEBUG_MESSAGES=OFF
 
-DOCS_DESC=	Build documentation (needs textproc/py-sphinx)
-DOCS_CMAKE_ON=	-DENABLE_DOCS=ON
-DOCS_CMAKE_OFF=	-DENABLE_DOCS=OFF
-DOCS_USES=	python
 DOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR}
+DOCS_CMAKE_ON=		-DENABLE_DOCS=ON
+DOCS_CMAKE_OFF=		-DENABLE_DOCS=OFF
+
+DOCS_PDF_IMPLIES=	DOCS
+DOCS_PDF_BROKEN=	TeX error: Unicode character ≈ (U+2248) not set up for use with LaTeX.
+
+LTTNG_LIB_DEPENDS=	liblttng-ust.so:sysutils/lttng-ust
+LTTNG_CMAKE_ON=		-DENABLE_LTTNG=YES
+LTTNG_CMAKE_OFF=	-DENABLE_LTTNG=NO
+
+OMP_CMAKE_ON=	-DENABLE_HOST_CPU_DEVICES_OPENMP=YES
+OMP_CMAKE_OFF=	-DENABLE_HOST_CPU_DEVICES_OPENMP=NO
+
+REMOTE_BROKEN=		Not compiling. FreeBSD lacks sockettype AF_VSOCK
+REMOTE_CMAKE_ON=	-DENABLE_REMOTE_SERVER=ON
+REMOTE_CMAKE_OFF=	-DENABLE_REMOTE_SERVER=OFF
+
+SHARED_LIBS_CMAKE_ON=	-DBUILD_SHARED_LIBS=ON
+SHARED_LIBS_CMAKE_OFF=	-DBUILD_SHARED_LIBS=OFF
+
+STATIC_LLVM_CMAKE_ON=	-DSTATIC_LLVM_LLVM=ON
+STATIC_LLVM_CMAKE_OFF=	-DSTATIC_LLVM_LLVM=OFF
+
+TESTS_CMAKE_ON=		-DENABLE_TESTS=ON
+TESTS_CMAKE_OFF=	-DENABLE_TESTS=OFF
+
+do-build-DOCS-on:
+	${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/doc/sphinx html dirhtml
+do-build-DOCS_PDF-on:
+	${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/doc/sphinx latex
+	${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/doc/sphinx/build/latex all-pdf
+post-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${MKDIR} ${STAGEDIR}${DOCSDIR}/html
+	${INSTALL_DATA} ${WRKSRC}/doc/sphinx/build/html/*.html ${STAGEDIR}${DOCSDIR}/html/
+post-install-DOCS_PDF-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${MKDIR} ${STAGEDIR}${DOCSDIR}/html
+	${INSTALL_DATA} ${WRKSRC}/doc/sphinx/build/latex/*.pdf ${STAGEDIR}${DOCSDIR}
 
 .include <bsd.port.options.mk>
 
 .if ${ARCH} == aarch64
-PLIST_SUB+=	AARCH64=""
-PLIST_SUB+=	PPC64="@comment "
-PLIST_SUB+=	PPC64LE="@comment "
-PLIST_SUB+=	X86="@comment "
+PLIST_SUB+=	AARCH64="" \
+		PPC64="@comment " \
+		PPC64LE="@comment " \
+		X86="@comment "
 .elif ${ARCH} == amd64 || ${ARCH} == i386
-PLIST_SUB+=	AARCH64="@comment "
-PLIST_SUB+=	PPC64="@comment "
-PLIST_SUB+=	PPC64LE="@comment "
-PLIST_SUB+=	X86=""
+PLIST_SUB+=	AARCH64="@comment " \
+		PPC64="@comment " \
+		PPC64LE="@comment " \
+		X86=""
 .elif ${ARCH} == powerpc64
-PLIST_SUB+=	AARCH64="@comment "
-PLIST_SUB+=	PPC64=""
-PLIST_SUB+=	PPC64LE="@comment "
-PLIST_SUB+=	X86="@comment "
+PLIST_SUB+=	AARCH64="@comment " \
+		PPC64="" \
+		PPC64LE="@comment " \
+		X86="@comment "
 .else
-PLIST_SUB+=	AARCH64="@comment "
-PLIST_SUB+=	PPC64="@comment "
-PLIST_SUB+=	PPC64LE=""
-PLIST_SUB+=	X86="@comment "
+PLIST_SUB+=	AARCH64="@comment " \
+		PPC64="@comment " \
+		PPC64LE="" \
+		X86="@comment "
 .endif
 
 .include <bsd.port.mk>
diff --git a/lang/pocl/distinfo b/lang/pocl/distinfo
index aaa5e1c12075..8860b0ec290e 100644
--- a/lang/pocl/distinfo
+++ b/lang/pocl/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1687856826
-SHA256 (pocl-pocl-v4.0_GH0.tar.gz) = 7f4e8ab608b3191c2b21e3f13c193f1344b40aba7738f78762f7b88f45e8ce03
-SIZE (pocl-pocl-v4.0_GH0.tar.gz) = 2140919
+TIMESTAMP = 1748010431
+SHA256 (pocl-pocl-v7.0_GH0.tar.gz) = f55caba8c3ce12bec7b683ce55104c7555e19457fc2ac72c6f035201e362be08
+SIZE (pocl-pocl-v7.0_GH0.tar.gz) = 3766036
diff --git a/lang/pocl/files/patch-CMakeLists.txt b/lang/pocl/files/patch-CMakeLists.txt
index ac4253d87ac6..1b1987ab6288 100644
--- a/lang/pocl/files/patch-CMakeLists.txt
+++ b/lang/pocl/files/patch-CMakeLists.txt
@@ -1,12 +1,12 @@
---- CMakeLists.txt.orig	2022-06-10 10:09:05 UTC
+--- CMakeLists.txt.orig	2025-05-21 11:53:16 UTC
 +++ CMakeLists.txt
-@@ -394,6 +394,9 @@ find_package(Hwloc)
-       set(ENABLE_HWLOC ON CACHE BOOL "Hwloc" FORCE)
+@@ -466,6 +466,9 @@ endfunction()
    endif()
+ endfunction()
  
 +include(CheckIncludeFiles)
-+check_include_files("sys/types.h;sys/sysctl.h" HAVE_SYSCTL_H)
++check_include_files("sys/sysctl.h" HAVE_SYSCTL_H)
 +
  
- include(sanitizers)
- 
+ function(rename_if_different SRC DST EXEC)
+   if(EXISTS "${DST}")
diff --git a/lang/pocl/files/patch-config.h.in.cmake b/lang/pocl/files/patch-config.h.in.cmake
index 6f507f989de8..d6b0d26ce2a7 100644
--- a/lang/pocl/files/patch-config.h.in.cmake
+++ b/lang/pocl/files/patch-config.h.in.cmake
@@ -1,11 +1,11 @@
---- config.h.in.cmake.orig	2022-06-10 10:09:05 UTC
+--- config.h.in.cmake.orig	2025-05-21 11:53:16 UTC
 +++ config.h.in.cmake
-@@ -57,6 +57,8 @@
+@@ -88,6 +88,8 @@
  
- #cmakedefine HAVE_VFORK
+ #cmakedefine HAVE_LINUX_VSOCK_H
  
 +#cmakedefine HAVE_SYSCTL_H
 +
  #cmakedefine HAVE_CLOCK_GETTIME
  
- #cmakedefine HAVE_FDATASYNC
+ #cmakedefine HOST_COMPILER_SUPPORTS_FLOAT16
diff --git a/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c b/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c
index ce0187187300..7702df8abd81 100644
--- a/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c
+++ b/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c
@@ -1,10 +1,10 @@
---- lib/CL/devices/cpuinfo.c.orig	2022-06-10 10:09:05 UTC
+--- lib/CL/devices/cpuinfo.c.orig	2025-05-21 11:53:16 UTC
 +++ lib/CL/devices/cpuinfo.c
 @@ -34,6 +34,12 @@
  #include "config.h"
  #include "cpuinfo.h"
  
-+#ifdef HAVE_SYSCTL_H
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 +#  include <sys/types.h>
 +#  include <sys/sysctl.h>
 +#endif
@@ -76,8 +76,8 @@
   * Detects the number of parallel hardware threads supported by
   * the CPU by parsing the cpuinfo.
 @@ -235,6 +281,19 @@ pocl_cpuinfo_detect_compute_unit_count()
-     } 
-   return -1;  
+     }
+   return -1;
  }
 +#else
 +/**
@@ -103,9 +103,9 @@
    /* default vendor and vendor_id, in case it cannot be found by other means */
    device->vendor = cpuvendor_default;
    if (device->vendor_id == 0)
-@@ -404,7 +464,26 @@ 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);
+@@ -408,7 +468,26 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi
+   snprintf (new_name, len, "%s-%s-%s", device->short_name,
+             (device->llvm_cpu ? device->llvm_cpu : ""), start);
    device->long_name = new_name;
 +#elif defined(HAVE_SYSCTL_H)
 +  int mib[2];
@@ -130,7 +130,7 @@
    /* If the vendor_id field is still empty, we should get the PCI ID associated
     * with the CPU vendor (if there is one), to be ready for the (currently
     * provisional) OpenCL 3.0 specification that has finally clarified the
-@@ -415,13 +494,23 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi
+@@ -419,13 +498,23 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi
     */
    if (!device->vendor_id)
      {
diff --git a/lang/pocl/files/patch-lib_CL_pocl__timing.c b/lang/pocl/files/patch-lib_CL_pocl__timing.c
index 5450f1b75652..2c307fffca44 100644
--- a/lang/pocl/files/patch-lib_CL_pocl__timing.c
+++ b/lang/pocl/files/patch-lib_CL_pocl__timing.c
@@ -1,6 +1,6 @@
---- lib/CL/pocl_timing.c.orig	2022-06-10 10:09:05 UTC
+--- lib/CL/pocl_timing.c.orig	2025-05-21 11:53:16 UTC
 +++ lib/CL/pocl_timing.c
-@@ -69,8 +69,8 @@ uint64_t pocl_gettimemono_ns() {
+@@ -74,8 +74,8 @@ uint64_t pocl_gettimemono_ns() {
    struct timespec timespec;
  # ifdef CLOCK_MONOTONIC_RAW /* Linux */
    clock_gettime(CLOCK_MONOTONIC_RAW, &timespec);
diff --git a/lang/pocl/files/patch-pocld_common.cc b/lang/pocl/files/patch-pocld_common.cc
new file mode 100644
index 000000000000..2a6c2b17aee0
--- /dev/null
+++ b/lang/pocl/files/patch-pocld_common.cc
@@ -0,0 +1,13 @@
+--- pocld/common.cc.orig	2025-06-02 18:01:19 UTC
++++ pocld/common.cc
+@@ -35,6 +35,10 @@
+ #include <sys/uio.h>
+ #include <unistd.h>
+ 
++#ifdef __FreeBSD__
++#include <netinet/in.h>
++#endif
++
+ void replyID(Reply *rep, ReplyMessageType t, uint32_t id) {
+   rep->rep.message_type = t;
+   rep->rep.failed = 0;
diff --git a/lang/pocl/files/patch-pocld_daemon.cc b/lang/pocl/files/patch-pocld_daemon.cc
new file mode 100644
index 000000000000..a7699b30d32d
--- /dev/null
+++ b/lang/pocl/files/patch-pocld_daemon.cc
@@ -0,0 +1,12 @@
+--- pocld/daemon.cc.orig	2025-06-02 18:16:16 UTC
++++ pocld/daemon.cc
+@@ -28,6 +28,9 @@
+ #include <net/if.h>
+ #include <netdb.h>
+ #include <netinet/tcp.h>
++#ifdef __FreeBSD__
++#include <netinet/in.h>
++#endif
+ #include <numeric>
+ #include <random>
+ #include <set>
diff --git a/lang/pocl/files/patch-pocld_pocld.cc b/lang/pocl/files/patch-pocld_pocld.cc
new file mode 100644
index 000000000000..6e1a3c78dcdf
--- /dev/null
+++ b/lang/pocl/files/patch-pocld_pocld.cc
@@ -0,0 +1,11 @@
+--- pocld/pocld.cc.orig	2025-05-21 11:53:16 UTC
++++ pocld/pocld.cc
+@@ -27,7 +27,7 @@
+ #include <unistd.h>
+ #include <CL/opencl.hpp>
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #include <sys/resource.h>
+ #endif
+ 
diff --git a/lang/pocl/files/pocld.in b/lang/pocl/files/pocld.in
new file mode 100644
index 000000000000..20f97cf3a892
--- /dev/null
+++ b/lang/pocl/files/pocld.in
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+#
+
+# PROVIDE: pocld
+# REQUIRE: NETWORKING sysctl
+# KEYWORD: shutdown
+#
+# To enable this service, place
+# pocld_enable="YES"
+# in /etc/rc.conf[.local]
+
+. /etc/rc.subr
+
+name="pocld"
+rcvar=pocld_enable
+
+# read settings, set defaults
+load_rc_config ${name}
+
+: ${pocld_enable:="NO"}
+#: ${pocld_args:="-a localhost -p 6060"}
+
+command="/usr/local/bin/${name}"
+pidfile="/var/run/${name}.pid"
+extra_commands="reload"
+
+run_rc_command "$1"
diff --git a/lang/pocl/pkg-descr b/lang/pocl/pkg-descr
index 8c09ff01267d..bbb8b1c2a56c 100644
--- a/lang/pocl/pkg-descr
+++ b/lang/pocl/pkg-descr
@@ -1,28 +1,6 @@
-[
-{	type: install
-	message: <<EOM
 Portable OpenCL (pocl)
 ----------------------
 
 Portable OpenCL (>= 3.0) aims to be an efficient open source
 (MIT-licensed) implementation of the OpenCL 2.X standard with
 adaptions of OpenCL 3.0.
-
-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
-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
-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
-the pthread library with multithreading at the work group granularity.
-
-EOM
-}
-]
diff --git a/lang/pocl/pkg-message b/lang/pocl/pkg-message
deleted file mode 100644
index 802c2dee25b1..000000000000
--- a/lang/pocl/pkg-message
+++ /dev/null
@@ -1,18 +0,0 @@
-[
-{ 	type:	install
-	message: <<EOM
-
-Deadlocks (freezes) on FreeBSD:
-
-OpenCL applications using pocl on FreeBSD must be compiled with 
-options CFLAGS+=-pthread or CXXFLAGS+=-pthread, otherwise someone risk
-that a library may not initialize the threading on BSD independently, 
-even if an ICD loader is used.
-
-See: 
-	http://www.freebsd.org/cgi/query-pr.cgi?pr=163512
-
-(Source: http://portablecl.org/docs/html/faq.html?highlight=freebsd)
-EOM
-}
-]
diff --git a/lang/pocl/pkg-plist b/lang/pocl/pkg-plist
index 9a1ad0efaa8d..69b54bb8e7b6 100644
--- a/lang/pocl/pkg-plist
+++ b/lang/pocl/pkg-plist
@@ -2,17 +2,54 @@ bin/poclcc
 etc/OpenCL/vendors/pocl.icd
 lib/libpocl.so
 lib/libpocl.so.2
-lib/libpocl.so.2.11.0
+lib/libpocl.so.2.14.0
 lib/pocl/libpocl-devices-basic.so
 lib/pocl/libpocl-devices-pthread.so
 libdata/pkgconfig/pocl.pc
+%%DOCS_PDF%%%%PORTDOCS%%%%DOCSDIR%%/PortableComputingLanguagepocl.pdf
+%%PORTDOCS%%%%DOCSDIR%%/html/almaif.html
+%%PORTDOCS%%%%DOCSDIR%%/html/android.html
+%%PORTDOCS%%%%DOCSDIR%%/html/conformance.html
+%%PORTDOCS%%%%DOCSDIR%%/html/cpu.html
+%%PORTDOCS%%%%DOCSDIR%%/html/cuda.html
+%%PORTDOCS%%%%DOCSDIR%%/html/dbk.html
+%%PORTDOCS%%%%DOCSDIR%%/html/debug.html
+%%PORTDOCS%%%%DOCSDIR%%/html/design.html
+%%PORTDOCS%%%%DOCSDIR%%/html/development.html
+%%PORTDOCS%%%%DOCSDIR%%/html/driver_design.html
+%%PORTDOCS%%%%DOCSDIR%%/html/drivers.html
+%%PORTDOCS%%%%DOCSDIR%%/html/extensions.html
+%%PORTDOCS%%%%DOCSDIR%%/html/faq.html
+%%PORTDOCS%%%%DOCSDIR%%/html/features.html
+%%PORTDOCS%%%%DOCSDIR%%/html/genindex.html
+%%PORTDOCS%%%%DOCSDIR%%/html/host_library.html
+%%PORTDOCS%%%%DOCSDIR%%/html/hsa.html
+%%PORTDOCS%%%%DOCSDIR%%/html/index.html
+%%PORTDOCS%%%%DOCSDIR%%/html/install.html
+%%PORTDOCS%%%%DOCSDIR%%/html/kernel_compiler.html
+%%PORTDOCS%%%%DOCSDIR%%/html/level0.html
+%%PORTDOCS%%%%DOCSDIR%%/html/macos.html
+%%PORTDOCS%%%%DOCSDIR%%/html/memory_management.html
+%%PORTDOCS%%%%DOCSDIR%%/html/notes_5_0.html
+%%PORTDOCS%%%%DOCSDIR%%/html/notes_6_0.html
+%%PORTDOCS%%%%DOCSDIR%%/html/notes_7_0.html
+%%PORTDOCS%%%%DOCSDIR%%/html/opencl_status.html
+%%PORTDOCS%%%%DOCSDIR%%/html/pocl_binary.html
+%%PORTDOCS%%%%DOCSDIR%%/html/proxy.html
+%%PORTDOCS%%%%DOCSDIR%%/html/%%CMAKE_BUILD_TYPE%%_notes.html
+%%PORTDOCS%%%%DOCSDIR%%/html/remote.html
+%%PORTDOCS%%%%DOCSDIR%%/html/search.html
+%%PORTDOCS%%%%DOCSDIR%%/html/sycl_dpcpp.html
+%%PORTDOCS%%%%DOCSDIR%%/html/sycl_with_pocl_arm.html
+%%PORTDOCS%%%%DOCSDIR%%/html/using.html
+%%PORTDOCS%%%%DOCSDIR%%/html/vulkan.html
+%%PORTDOCS%%%%DOCSDIR%%/html/windows.html
 %%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/_libclang_versions_checks.h
 %%DATADIR%%/include/opencl-c-base.h
 %%DATADIR%%/include/opencl-c.h
 %%DATADIR%%/include/pocl.h
@@ -25,6 +62,7 @@ libdata/pkgconfig/pocl.pc
 %%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx512.bc
 %%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx_f16c.bc
 %%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx_fma4.bc
+%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-generic.bc
 %%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-sse2.bc
 %%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-sse41.bc
 %%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-ssse3.bc