View | Details | Raw Unified | Return to bug 257449 | Differences between
and this patch

Collapse All | Expand All

(-)b/lang/pocl/Makefile (-20 / +33 lines)
Lines 1-41 Link Here
1
PORTNAME=		pocl
1
PORTNAME=	pocl
2
PORTVERSION=		1.6
2
PORTVERSION=	1.8
3
PORTREVISION=		1
3
DISTVERSIONPREFIX=v
4
DISTVERSIONPREFIX=	v
4
CATEGORIES=	lang
5
CATEGORIES=		lang
6
5
7
MAINTAINER=		ohartmann@walstatt.org
6
MAINTAINER=	ohartmann@freebsd-de.org
8
COMMENT=		POrtable Computing Language (POCL)
7
COMMENT=	POrtable Computing Language (POCL)
9
8
10
LICENSE=		MIT
9
LICENSE=	MIT
11
LICENSE_FILE=		${WRKSRC}/LICENSE
10
LICENSE_FILE=	${WRKSRC}/LICENSE
12
11
13
ONLY_FOR_ARCHS=		amd64 i386
12
ONLY_FOR_ARCHS=	aarch64 amd64 i386
14
ONLY_FOR_ARCHS_REASON=	only tested on x86
13
ONLY_FOR_ARCHS_REASON=	only tested on x86
15
14
16
BUILD_DEPENDS=	llvm${LLVM_VERSION}>=0:devel/llvm${LLVM_VERSION} \
15
BUILD_DEPENDS=	llvm${LLVM_VERSION}>=10:devel/llvm${LLVM_VERSION} \
17
			opencl>=2.2:devel/opencl
16
		opencl>=2.2:devel/opencl
18
LIB_DEPENDS=	libhwloc.so.15:devel/hwloc2 libOpenCL.so:devel/ocl-icd
17
LIB_DEPENDS=	libhwloc.so:devel/hwloc2 libOpenCL.so:devel/ocl-icd
19
RUN_DEPENDS=	${BUILD_DEPENDS}
18
RUN_DEPENDS=	${BUILD_DEPENDS}
20
19
21
USES=		cmake localbase:ldflags ncurses pkgconfig
20
USES=		cmake localbase:ldflags ncurses pkgconfig
22
USE_GITHUB=	yes
21
USE_GITHUB=	yes
23
USE_LDCONFIG=	yes
22
USE_LDCONFIG=	yes
24
23
25
LLVM_VERSION=	${MESA_LLVM_VER:U11}
24
LLVM_VERSION=	${MESA_LLVM_VER:U13}
26
CMAKE_ARGS=	-DWITH_LLVM_CONFIG="${LOCALBASE}/llvm${LLVM_VERSION}/bin/llvm-config" \
25
CMAKE_ARGS=	-DWITH_LLVM_CONFIG="${LOCALBASE}/llvm${LLVM_VERSION}/bin/llvm-config" \
27
		-DPOCL_INSTALL_PKGCONFIG_DIR="${PREFIX}/libdata/pkgconfig" \
26
		-DPOCL_INSTALL_PKGCONFIG_DIR="${PREFIX}/libdata/pkgconfig" \
28
		-DKERNELLIB_HOST_CPU_VARIANTS="distro" \
27
		-DSINGLE_LLVM_LIB=ON \
29
		-DSINGLE_LLVM_LIB=ON
28
		${CMAKE_ARGS_${ARCH}}
29
30
CMAKE_ARGS_aarch64=	-DLLC_HOST_CPU=cortex-a53
31
CMAKE_ARGS_amd64=	-DKERNELLIB_HOST_CPU_VARIANTS="distro"
30
32
31
PLIST_SUB=	CONFIGURE_TARGET=${CONFIGURE_TARGET:S/amd64/x86_64/}
33
PLIST_SUB=	CONFIGURE_TARGET=${CONFIGURE_TARGET:S/amd64/x86_64/}
32
34
33
OPTIONS_DEFINE=	DOCS
35
OPTIONS_DEFINE=	DOCS
34
36
35
DOCS_DESC=		Build documentation (needs sphinx)
37
DOCS_DESC=	Build documentation (needs sphinx)
36
DOCS_CMAKE_OFF=		-DENABLE_DOCS=OFF
38
DOCS_CMAKE_OFF=	-DENABLE_DOCS=OFF
37
DOCS_CMAKE_ON=		-DENABLE_DOCS=ON
39
DOCS_CMAKE_ON=	-DENABLE_DOCS=ON
38
DOCS_USES=		python:3.6+
40
DOCS_USES=	python:3.6+
39
DOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR}
41
DOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR}
40
42
43
.include <bsd.port.options.mk>
44
45
.if ${ARCH} == aarch64
46
PLIST_SUB+=     AARCH64=""
47
PLIST_SUB+=	X86="@comment "
48
.else
49
PLIST_SUB+=     AARCH64="@comment"
50
PLIST_SUB+=	X86=""
51
.endif
52
PLIST_SUB+=	CONFIGURE_TARGET=${CONFIGURE_TARGET:S/amd64/x86_64/}
53
41
.include <bsd.port.mk>
54
.include <bsd.port.mk>
(-)b/lang/pocl/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1608358712
1
TIMESTAMP = 1634367852
2
SHA256 (pocl-pocl-v1.6_GH0.tar.gz) = b0a4c0c056371b6f0db726b88fbb76bbee94948fb2abd4dbc8d958f7c42f766c
2
SHA256 (pocl-pocl-v1.8_GH0.tar.gz) = 0f63377ae1826e16e90038fc8e7f65029be4ff6f9b059f6907174b5c0d1f8ab2
3
SIZE (pocl-pocl-v1.6_GH0.tar.gz) = 1595212
3
SIZE (pocl-pocl-v1.8_GH0.tar.gz) = 1614545
(-)b/lang/pocl/files/patch-lib_CL_devices_cpuinfo.c (-19 / +21 lines)
Lines 1-5 Link Here
1
--- lib/CL/devices/cpuinfo.c.orig	2020-12-16 13:02:13 UTC
1
--- lib/CL/devices/cpuinfo.c.orig	2021-10-12 16:33:15.000000000 +0200
2
+++ lib/CL/devices/cpuinfo.c
2
+++ lib/CL/devices/cpuinfo.c	2021-10-16 09:29:13.414668000 +0200
3
@@ -34,6 +34,12 @@
3
@@ -34,6 +34,12 @@
4
 #include "config.h"
4
 #include "config.h"
5
 #include "cpuinfo.h"
5
 #include "cpuinfo.h"
Lines 13-19 Link Here
13
 static const char* cpuinfo = "/proc/cpuinfo";
13
 static const char* cpuinfo = "/proc/cpuinfo";
14
 #define MAX_CPUINFO_SIZE 64*1024
14
 #define MAX_CPUINFO_SIZE 64*1024
15
 //#define DEBUG_POCL_CPUINFO
15
 //#define DEBUG_POCL_CPUINFO
16
@@ -41,9 +47,6 @@ static const char* cpuinfo = "/proc/cpuinfo";
16
@@ -41,9 +47,6 @@
17
 //Linux' cpufrec interface
17
 //Linux' cpufrec interface
18
 static const char* cpufreq_file="/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq";
18
 static const char* cpufreq_file="/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq";
19
 
19
 
Lines 23-29 Link Here
23
 /* Strings to parse in /proc/cpuinfo. Else branch is for x86, x86_64 */
23
 /* Strings to parse in /proc/cpuinfo. Else branch is for x86, x86_64 */
24
 #if   defined  __powerpc__
24
 #if   defined  __powerpc__
25
  #define FREQSTRING "clock"
25
  #define FREQSTRING "clock"
26
@@ -156,8 +159,51 @@ pocl_cpuinfo_detect_max_clock_frequency()
26
@@ -156,8 +159,51 @@
27
     } 
27
     } 
28
   return -1;  
28
   return -1;  
29
 }
29
 }
Lines 75-81 Link Here
75
 /**
75
 /**
76
  * Detects the number of parallel hardware threads supported by
76
  * Detects the number of parallel hardware threads supported by
77
  * the CPU by parsing the cpuinfo.
77
  * the CPU by parsing the cpuinfo.
78
@@ -235,6 +281,19 @@ pocl_cpuinfo_detect_compute_unit_count()
78
@@ -235,6 +281,19 @@
79
     } 
79
     } 
80
   return -1;  
80
   return -1;  
81
 }
81
 }
Lines 95-101 Link Here
95
 
95
 
96
 #if __arm__ || __aarch64__
96
 #if __arm__ || __aarch64__
97
 enum
97
 enum
98
@@ -302,6 +361,7 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi
98
@@ -302,6 +361,7 @@
99
    * short_name is in the .data anyways.*/
99
    * short_name is in the .data anyways.*/
100
   device->long_name = device->short_name;
100
   device->long_name = device->short_name;
101
 
101
 
Lines 103-109 Link Here
103
   /* default vendor and vendor_id, in case it cannot be found by other means */
103
   /* default vendor and vendor_id, in case it cannot be found by other means */
104
   device->vendor = cpuvendor_default;
104
   device->vendor = cpuvendor_default;
105
   if (device->vendor_id == 0)
105
   if (device->vendor_id == 0)
106
@@ -404,7 +464,26 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi
106
@@ -404,7 +464,26 @@
107
   char *new_name = (char*)malloc (len);
107
   char *new_name = (char*)malloc (len);
108
   snprintf (new_name, len, "%s-%s", device->short_name, start);
108
   snprintf (new_name, len, "%s-%s", device->short_name, start);
109
   device->long_name = new_name;
109
   device->long_name = new_name;
Lines 130-154 Link Here
130
   /* If the vendor_id field is still empty, we should get the PCI ID associated
130
   /* If the vendor_id field is still empty, we should get the PCI ID associated
131
    * with the CPU vendor (if there is one), to be ready for the (currently
131
    * with the CPU vendor (if there is one), to be ready for the (currently
132
    * provisional) OpenCL 3.0 specification that has finally clarified the
132
    * provisional) OpenCL 3.0 specification that has finally clarified the
133
@@ -415,10 +494,20 @@ pocl_cpuinfo_get_cpu_name_and_vendor(cl_device_id devi
133
@@ -415,13 +494,23 @@
134
    */
134
    */
135
   if (!device->vendor_id)
135
   if (!device->vendor_id)
136
     {
136
     {
137
-      f = fopen (pci_bus_root_vendor_file, "r");
137
-      f = fopen (pci_bus_root_vendor_file, "r");
138
-      num_read = fscanf (f, "%x", &device->vendor_id);
138
+#if		defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
139
+#if 	defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
139
+		/*
140
+			/*
140
+		*	Future work: try to extract vendor ID from PCI root bus from MIB
141
+			 * Future work: try to extract vendor ID from PCI root bus from MIB
141
+		*/
142
+			*/
143
+#elif	defined(__linux__)
142
+#elif	defined(__linux__)
144
+      FILE *f = fopen (pci_bus_root_vendor_file, "r");
143
+      FILE *f = fopen (pci_bus_root_vendor_file, "r");
145
+      int num_read = fscanf (f, "%x", &device->vendor_id);
144
       if (f)
146
       fclose (f);
145
         {
147
       /* no error checking, if it failed we just won't have the info */
146
           /* no error checking, if it failed we just won't have the info */
147
           num_read = fscanf (f, "%x", &device->vendor_id);
148
           fclose (f);
149
         }
148
+#else
150
+#else
149
+			/*
151
+		/*
150
+			 *	Other aliens ...
152
+		*		Other aliens ...
151
+			*/
153
+		*/
152
+#endif
154
+#endif
153
     }
155
     }
154
 }
156
 }
(-)b/lang/pocl/pkg-plist (-9 / +10 lines)
Lines 2-8 bin/poclcc Link Here
2
etc/OpenCL/vendors/pocl.icd
2
etc/OpenCL/vendors/pocl.icd
3
lib/libpocl.so
3
lib/libpocl.so
4
lib/libpocl.so.2
4
lib/libpocl.so.2
5
lib/libpocl.so.2.6.0
5
lib/libpocl.so.2.8.0
6
lib/pocl/libllvmopencl.so
6
lib/pocl/libllvmopencl.so
7
lib/pocl/libpocl-devices-basic.so
7
lib/pocl/libpocl-devices-basic.so
8
lib/pocl/libpocl-devices-pthread.so
8
lib/pocl/libpocl-devices-pthread.so
Lines 21-31 libdata/pkgconfig/pocl.pc Link Here
21
%%DATADIR%%/include/pocl_image_types.h
21
%%DATADIR%%/include/pocl_image_types.h
22
%%DATADIR%%/include/pocl_spir.h
22
%%DATADIR%%/include/pocl_spir.h
23
%%DATADIR%%/include/pocl_types.h
23
%%DATADIR%%/include/pocl_types.h
24
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx.bc
24
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx.bc
25
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx2.bc
25
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx2.bc
26
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx512.bc
26
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx512.bc
27
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx_f16c.bc
27
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx_f16c.bc
28
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx_fma4.bc
28
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-avx_fma4.bc
29
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-sse2.bc
29
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-sse2.bc
30
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-sse41.bc
30
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-sse41.bc
31
%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-ssse3.bc
31
%%X86%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-ssse3.bc
32
%%AARCH64%%%%DATADIR%%/kernel-%%CONFIGURE_TARGET%%-cortex-a53.bc

Return to bug 257449