From owner-freebsd-ports@FreeBSD.ORG Thu Sep 6 10:16:51 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D1D331065690 for ; Thu, 6 Sep 2012 10:16:51 +0000 (UTC) (envelope-from mazhe@alkumuna.eu) Received: from smtp1-g21.free.fr (smtp1-g21.free.fr [IPv6:2a01:e0c:1:1599::10]) by mx1.freebsd.org (Postfix) with ESMTP id 3D60A8FC08 for ; Thu, 6 Sep 2012 10:16:49 +0000 (UTC) Received: from yggdrasil.alkumuna.eu (unknown [IPv6:2a01:e35:8a74:6e70:232:36ff:fe5c:3a87]) by smtp1-g21.free.fr (Postfix) with ESMTP id 613B794003E; Thu, 6 Sep 2012 12:16:42 +0200 (CEST) Received: from freedom.alkumuna.eu ([192.168.10.100]) (authenticated bits=0) by yggdrasil.alkumuna.eu (8.14.5/8.14.5) with ESMTP id q86AGeAB001143 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 6 Sep 2012 12:16:40 +0200 (CEST) (envelope-from mazhe@alkumuna.eu) Date: Thu, 6 Sep 2012 12:16:39 +0200 From: Matthieu Volat To: freebsd-ports@freebsd.org Message-Id: <20120906121639.4b7d894d089b2ddeb42f31b4@alkumuna.eu> In-Reply-To: <5047659D.8000107@mail.zedat.fu-berlin.de> References: <5047659D.8000107@mail.zedat.fu-berlin.de> X-Mailer: Sylpheed 3.2.0 (GTK+ 2.24.10; amd64-portbld-freebsd9.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: "O. Hartmann" Subject: Re: Help. Porting "FreeOCL" fails (atomic_ops.h missing, CLANG++ libc++ issues ...) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Sep 2012 10:16:51 -0000 On Wed, 05 Sep 2012 16:45:49 +0200 "O. Hartmann" wrote: > Hello. > > FreeBSD has fallen back far behind the standards of modern scientific > computing and I dsperately look for solutions having OpenCL support on > FreeBSD anyway. > > I stumbled into this project recently: > > FreeOCL at > http://code.google.com/p/freeocl/ > > or the sources located at > > http://code.google.com/p/freeocl/downloads/detail?name=FreeOCL-0.3.6-src.tar.gz&can=2&q= > > For your convenience, please find my naive attempt of a port attached to > this email. > > Well, I tried LLVM/CLANG, but Cmake of the sources fairly fails many > checks especuially for OpenMP. Using clang++ requisites the usage of the > new libc++ (CXXFLAGS+= -stdlib=libc++). But this fails with this error: > > > [...] > [ 17%] Building CXX object src/CMakeFiles/FreeOCL.dir/codebuilder.cpp.o > In file included from > /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/codebuilder.cpp:26: > /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/parser/parser.h:118:15: > error: no viable conversion from 'std::__1::basic_istream' to > 'const bool' > const bool ok = in.get(c); > ^ ~~~~~~~~~ > /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/codebuilder.cpp:444:13: > warning: 70 enumeration values not handled in switch: 'VOID', 'BOOL', > 'HALF'... [-Wswitch] > switch(native->get_type_id()) > ^ > 1 warning and 1 error generated. > *** [src/CMakeFiles/FreeOCL.dir/codebuilder.cpp.o] Error code 1 > [..] > > > I tried also setting USE_GCC= 4.7+ using gcc-4.7 I installed, but that > fails with > > [...] > -- Build files have been written to: > /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source > ===> Building for freeocl-0.3.6 > Scanning dependencies of target FreeOCL > [ 1%] Building CXX object src/CMakeFiles/FreeOCL.dir/freeocl.cpp.o > In file included from > /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/freeocl.cpp:18:0: > /usr/ports/devel/freeocl/work/FreeOCL-0.3.6-Source/src/freeocl.h:71:2: > error: 'u_int64_t' does not name a type > *** [src/CMakeFiles/FreeOCL.dir/freeocl.cpp.o] Error code 1 > [...] > > I think patches are required. > > More disturbing is the use of gcc-4.6 via > > USE_GCC= 4.6+ > > The error is then a compalin about a missing include file > > atomic_ops.h > > which is located in the abandoned KSE facility of the kernel, so the > includes seem not to be installed anymore - but since I'm not involved > in the development, I can only guess and ask the people here. > > Maybe some experienced freeBSD developers with the same need for OpenCl > is willing to pick up this and help a bit. > > Well, as far as I see, the FreeOCL project of Roland Borchard is a > OpenCL library for CPU usage. As far as I can understand, if we on > FreeBSd could have a library "libOpenCL" as this is usually installed by > the nVidia BLOB drivers on Linux for the use of OpenCL/GPGPU support > with their GPUs, this would fill a still painfull open gap in FreeBSD as > a scientific development platform. > > There is still no suitable compiler for OpenCL out here for freeBSD, but > I have still the hope that LLVM can provide such a thing in the near future. > > I cross post this posting also to "performance" in the hope finding some > people attracted and "lurd" into this subject. > > Regards, > > O. Hartmann Hello, I've taken a quick look in that implementation : it seems to depends on devel/libatomic_ops even if the devs did not write any CMake checks for that (grrr). After installing it, I was able to build the port with gcc-46 without problems, if I find some time, I will try to test it later. Btw, did you had a look to poCL too (http://sourceforge.net/apps/mediawiki/pocl/index.php?title=Main_Page)? I know the Debian people were considering it for a base implementation, but I'm a bit clueless about all those foss versions coming. A comparison could be helpful ^^ -- Matthieu Volat