From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Aug 12 20:40:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 26BC0854 for ; Mon, 12 Aug 2013 20:40:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 052042A0B for ; Mon, 12 Aug 2013 20:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CKe04n000557 for ; Mon, 12 Aug 2013 20:40:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r7CKe0RC000556; Mon, 12 Aug 2013 20:40:00 GMT (envelope-from gnats) Resent-Date: Mon, 12 Aug 2013 20:40:00 GMT Resent-Message-Id: <201308122040.r7CKe0RC000556@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "O. Hartmann" Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C17517EE for ; Mon, 12 Aug 2013 20:37:02 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ADB4429E8 for ; Mon, 12 Aug 2013 20:37:02 +0000 (UTC) Received: from oldred.freebsd.org ([127.0.1.6]) by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r7CKb2Ms055818 for ; Mon, 12 Aug 2013 20:37:02 GMT (envelope-from nobody@oldred.freebsd.org) Received: (from nobody@localhost) by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r7CKb2Nh055815; Mon, 12 Aug 2013 20:37:02 GMT (envelope-from nobody) Message-Id: <201308122037.r7CKb2Nh055815@oldred.freebsd.org> Date: Mon, 12 Aug 2013 20:37:02 GMT From: "O. Hartmann" To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/181243: New port: devel/opencl-icd Khronos OpenCL Installable Client Driver X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 20:40:01 -0000 >Number: 181243 >Category: ports >Synopsis: New port: devel/opencl-icd Khronos OpenCL Installable Client Driver >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Aug 12 20:40:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: O. Hartmann >Release: >Organization: FU Berlin >Environment: >Description: This port provides the Khronos OpenCL Installable Client Driver, which acts as a proxy for different OpenCL platforms. This software has been extracted from the POCL project and can be choosen as the ICD for devel/pocl. >How-To-Repeat: >Fix: Patch attached with submission follows: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # ./opencl-icd # ./opencl-icd/files # ./opencl-icd/files/patch-test-loader_test-icd_test_match.c # ./opencl-icd/files/patch-CMakeLists.txt # ./opencl-icd/files/patch-icd_linux.c # ./opencl-icd/pkg-plist # ./opencl-icd/Makefile # ./opencl-icd/distinfo # ./opencl-icd/pkg-descr # ./opencl-icd/pkg-message # echo c - ./opencl-icd mkdir -p ./opencl-icd > /dev/null 2>&1 echo c - ./opencl-icd/files mkdir -p ./opencl-icd/files > /dev/null 2>&1 echo x - ./opencl-icd/files/patch-test-loader_test-icd_test_match.c sed 's/^X//' >./opencl-icd/files/patch-test-loader_test-icd_test_match.c << '352a0fcd228fea1bcd4e5b0d7d7658d3' X--- test/loader_test/icd_test_match.c.orig 2013-05-26 11:03:02.000000000 +0200 X+++ test/loader_test/icd_test_match.c 2013-05-26 11:03:44.000000000 +0200 X@@ -1,6 +1,10 @@ X #include X #include X+#ifdef __FreeBSD__ X+#include X+#else X #include X+#endif X #include X X int test_icd_match() 352a0fcd228fea1bcd4e5b0d7d7658d3 echo x - ./opencl-icd/files/patch-CMakeLists.txt sed 's/^X//' >./opencl-icd/files/patch-CMakeLists.txt << 'f7e660cc75d5fc09c5036c8c1c577569' X--- CMakeLists.txt.orig 2012-08-27 16:44:45.000000000 +0200 X+++ CMakeLists.txt 2013-05-26 11:01:21.000000000 +0200 X@@ -9,6 +9,8 @@ X X if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") X list (APPEND OPENCL_ICD_LOADER_SOURCES icd_linux.c icd_exports.map) X+elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") X+ list (APPEND OPENCL_ICD_LOADER_SOURCES icd_linux.c icd_exports.map) X else () X list (APPEND OPENCL_ICD_LOADER_SOURCES icd_windows.c OpenCL.def) X include_directories ($ENV{DXSDK_DIR}/Include) X@@ -23,6 +25,8 @@ X X if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") X set_target_properties (OpenCL PROPERTIES LINK_FLAGS "-Wl,--version-script -Wl,../icd_exports.map") X+elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") X+ set_target_properties (OpenCL PROPERTIES LINK_FLAGS "-Wl,--version-script -Wl,./icd_exports.map") X endif () X X target_link_libraries (OpenCL ${CMAKE_DL_LIBS}) f7e660cc75d5fc09c5036c8c1c577569 echo x - ./opencl-icd/files/patch-icd_linux.c sed 's/^X//' >./opencl-icd/files/patch-icd_linux.c << 'dcdf3f2fc208cba8674164215ba45f59' X--- icd_linux.c.orig 2012-08-06 08:53:39.000000000 +0200 X+++ icd_linux.c 2013-05-28 23:15:43.116526383 +0200 X@@ -52,12 +52,22 @@ X * X */ X X+#ifdef __FreeBSD__ X+#define ETC_ICD_VENDORS "%%PREFIX%%/etc/OpenCL/vendors" X+#else X+#define ETC_ICD_VENDORS "/etc/OpenCL/vendors" X+#endif X+ X // go through the list of vendors in the two configuration files X void khrIcdOsVendorsEnumerate(void) X { X DIR *dir = NULL; X struct dirent *dirEntry = NULL; X- char *vendorPath = "/etc/OpenCL/vendors/"; X+ char *vendorPath = getenv("OCL_ICD_VENDORS"); X+ if (vendorPath == NULL || strncmp(vendorPath, "", 1) == 0) X+ { X+ vendorPath = ETC_ICD_VENDORS; X+ } X X // open the directory X dir = opendir(vendorPath); X@@ -85,21 +95,21 @@ X // make sure the file name ends in .icd X if (strlen(extension) > strlen(dirEntry->d_name) ) X { X- break; X+ continue; X } X if (strcmp(dirEntry->d_name + strlen(dirEntry->d_name) - strlen(extension), extension) ) X { X- break; X+ continue; X } X X // allocate space for the full path of the vendor library name X- fileName = malloc(strlen(dirEntry->d_name) + strlen(vendorPath) + 1); X+ fileName = malloc(strlen(dirEntry->d_name) + strlen(vendorPath) + 2); X if (!fileName) X { X KHR_ICD_TRACE("Failed allocate space for ICD file path\n"); X break; X } X- sprintf(fileName, "%s%s", vendorPath, dirEntry->d_name); X+ sprintf(fileName, "%s/%s", vendorPath, dirEntry->d_name); X X // open the file and read its contents X fin = fopen(fileName, "r"); dcdf3f2fc208cba8674164215ba45f59 echo x - ./opencl-icd/pkg-plist sed 's/^X//' >./opencl-icd/pkg-plist << 'f03fb7fc7ab667c57943586b50f969e4' Xlib/libIcdLog.so Xlib/libOpenCL.so Xlib/libOpenCL.so.1 Xlib/libOpenCLDriverStub.so f03fb7fc7ab667c57943586b50f969e4 echo x - ./opencl-icd/Makefile sed 's/^X//' >./opencl-icd/Makefile << '5286b374cbf28348a9e2de6403dfd3f6' XPORTNAME= opencl-icd XPORTVERSION= 1.2.11.0 XCATEGORIES= devel X XSUFFIX= so X XMAINTAINER= ohartman@zedat.fu-berlin.de XCOMMENT= Khronos OpenCL Installable Client Driver X XMASTER_SITES= http://www.khronos.org/registry/cl/specs/ XEXTRACT_SUFX= .tgz X XWRKSRC= ${WRKDIR}/icd X XCONFLICTS= freeocl* ocl-icd* X XCFLAGS+= -I${LOCALBASE}/include XLDFLAGS+= -L${LOCALBASE}/lib X XBUILD_DEPENDS+= ${LOCALBASE}/include/CL/cl.h:${PORTSDIR}/devel/opencl X XUSES= cmake XUSE_LDCONFIG= yes XCMAKE_BUILD_TYPE= Release X XLIBFILES= libIcdLog.so libOpenCLDriverStub.so libOpenCL.so.1 libOpenCL.so X Xpost-configure: X ${REINPLACE_CMD} -e 's:%%PREFIX%%:${PREFIX}:g' ${WRKSRC}/icd_linux.c X Xdo-install: X.for f in ${LIBFILES} X ${INSTALL_LIB} ${WRKSRC}/bin/$f ${PREFIX}/lib/$f X.endfor X X.include 5286b374cbf28348a9e2de6403dfd3f6 echo x - ./opencl-icd/distinfo sed 's/^X//' >./opencl-icd/distinfo << '1cf4e8e5b066e7c454bccc55aa53d2cd' XSHA256 (opencl-icd-1.2.11.0.tgz) = bb82a4bfec8d2fe3839c1f079554990af2229bbd52f31acec31d0c4e11e99048 XSIZE (opencl-icd-1.2.11.0.tgz) = 51373 1cf4e8e5b066e7c454bccc55aa53d2cd echo x - ./opencl-icd/pkg-descr sed 's/^X//' >./opencl-icd/pkg-descr << '11118c6d8165a7e309dd26718d5712d9' XOpenCL 1.2 Installable Client Driver (ICD) Loader. X XThe related cl_khr_icd extension allows multiple Ximplementations of OpenCL to co-exist on the same Xsystem. The ICD Loader allows applications to Xchoose a platform from the list of installed Xplatforms and dispatches OpenCL API calls to the Xunderlying implementation. Consult LICENSE.txt in Xthe tarball for full terms and conditions. X XSee X Xhttp://www.khronos.org/registry/cl/ 11118c6d8165a7e309dd26718d5712d9 echo x - ./opencl-icd/pkg-message sed 's/^X//' >./opencl-icd/pkg-message << '78308e6168a395897395246408c0cdad' XYou have to set the global variable X XOCL_ICD_VENDORS X Xto point to the directory where the multiple Xplatform ICD config files are stored, for FreeBSD Xby default X Xcsh/tcsh: X Xsetenv OCL_ICD_VENDORS /usr/local/etc/OpenCL/vendors X Xsh/ksh/bash: X Xexport OCL_ICD_VENDORS=/usr/local/etc/OpenCL/vendors 78308e6168a395897395246408c0cdad exit >Release-Note: >Audit-Trail: >Unformatted: