Help. Porting "FreeOCL" fails (atomic_ops.h missing, CLANG++ libc++ issues ...)
"O. Hartmann" <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.ports,gmane.os.freebsd.performance |
|---|---|
| Message-ID | <[email protected]> |
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<char>' 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
Makefile
(text/plain, 567 B)
PORTNAME= freeocl PORTVERSION= 0.3.6 CATEGORIES= devel MAINTAINER= [email protected] COMMENT= FreeOCL - a free OpenCL implementation for CPU #MASTER_SITES= http://freeocl.googlecode.com/files/FreeOCL-0.3.6-src.tar.gz MASTER_SITES= http://freeocl.googlecode.com/files/ DISTNAME= FreeOCL-${PORTVERSION}-src WRKSRC= ${WRKDIR}/FreeOCL-${PORTVERSION}-Source USE_CMAKE= YES CMAKE_BUILD_TYPE= Release USE_GCC= 4.7+ #CXXFLAGS+= -stdlib=libc++ .include <bsd.port.mk>
signature.asc
(application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQEcBAEBAgAGBQJQR2WjAAoJEOgBcD7A/5N8Ih4H/2yb0SMUgrJSiSls0jGuFaD3 P/B28GTeIvnaHHSZyvamY7itARkMx48WAfXRf1Nw5hVT+DLDCmt8T2lDnVmpysrJ GSFSCPNy1/zQ1zmaS6DnLNRV5HPWCSu/YsPbWbDTq3pKPKBRm6zxfifE6XojXiwk a4d4RwvFJ3K9a6riN3ND3N0nK3+fNyRzhVTlYPeVu1yLTNzrYd1OypisuhK5oabl TochS9hr7sKvoAvrlcrR0AUhmhD06CC+DT5MthAFWCumlkCCRq71ZOLp0YBdYToF LRFiHW/0SPYUdJ4UBfRkHUrSqnYB8V/bIrRIl5YhxgR/fmPN9dI66HtK9umJKx4= =m4Px -----END PGP SIGNATURE-----