Re: 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 Dimitry,
thanks for your response and patches.
On 09/06/12 14:51, Dimitry Andric wrote:
> On 2012-09-05 16:45, O. Hartmann wrote:
> ...
>> Well, I tried LLVM/CLANG, but Cmake of the sources fairly fails many
>> checks especuially for OpenMP.
>
> Yes, it is currently not supported. I am not sure if there are serious
> attempts to add it.
>
>
>> Using clang++ requisites the usage of the
>> new libc++ (CXXFLAGS+= -stdlib=libc++). But this fails with this error:
> ...
>> /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);
>> ^ ~~~~~~~~~
>
> This is a bug in FreeOCL. The istream::get() function returns an
> istream reference, which can't be cast directly to bool. However, there
> is a negation operator defined for istream, so the line can be changed
> to:
>
> const bool ok = !!in.get(c);
>
> I have attached a patch for the port as I have built it here with clang.
> I didn't add the dependency on atomic_ops yet, but it should be fairly
> trivial.
I fixed that, I forgot the pkg-plist, also. Will followup the PR I sent.
it is a simple line:
BUILD_DEPENDS= ...
>
> Note I also needed a fix for Mk/bsd.cmake.mk, otherwise the required
> ${CPPFLAGS} would not be passed along to CMake, and then the build would
> still fail to find the atomic_ops headers in /usr/local/include.
Is this going to be fixed with your patch in the ports tree?
I'm amazed by the speed you came up with the patches ...;-)
My port request can be found here:
http://www.freebsd.org/cgi/query-pr.cgi?pr=171376
and one for providing the OpenCL header:
http://www.freebsd.org/cgi/query-pr.cgi?pr=171375
Matthieu Volat also stated that there is another promising OpenCL port
"Portable OpenCL", pocl. It seems to have a better LLVM support by design:
http://sourceforge.net/apps/mediawiki/pocl/index.php?title=Main_Page
Attached you'll find my first naiv attempt to build a port-Makefile, but
I fail to fetch(1), since there is an authentication error while trying
to fetch from a HTTPS:// source.
My abilities in depp-insight-development are limited, so I'm happy if
some experienced developers could also look at those software projects
and help making a port ;-)
it would be nice having FreeOCL and portable OCL for comparison purposes
available on FreeBSD. I still have the hope to "lurd" more developers
and scientists back to FreeBSD. Never mind ...
oh
Makefile
(text/plain, 471 B)
PORTNAME= pocl PORTVERSION= 0.6 CATEGORIES= devel MAINTAINER= [email protected] COMMENT= Portable OpenCL - an efficient open source (MIT-licensed) implementation of the OpenCL 1.2 standard. MASTER_SITES= https://launchpad.net/pocl/${PORTVERSION}/0.6.0/+download/ #CONFLICTS= freeocl CXXFLAGS+= -stdlib=libc++ LIB_DEPENDS= ltdl:${PORTSDIR}/devel/libltdl #USE_GMAKE= yes GNU_CONFIGURE= yes USE_LDCONFIG= yes .include <bsd.port.mk>
signature.asc
(application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQEcBAEBAgAGBQJQSK1zAAoJEOgBcD7A/5N8GVUH/A3OIDJSmhXV/QImCnV5nRvp YeumzzpO8WB7LnMVS2L439wZ4WKjiinPOJCV0qA8GLB2GqyLhW0f36dqD200tZmm nObZxm6W6E2o5acleeVVV3RSdA9PklKomUIDs4qMNr83Cmy+gUIOZD/sTGcnc7xc IBnHs2JjMA5nCrIbfZRL5PmVwckPeT8xPY1bvgVSNusxfQa2DjQzig+0J5K77wiL 77wxUaRz6BVRpcfZJW0F8QlCRgaxvBUIGhSpEn48gNfpmg5JpTNJpVJiqSLCZk5E IvCl0Fa4jQx5HCENVXkYwiEb7bhlDaL/MteRBpnIPNuIRoDMMLTCBr65NnpWSJY= =upkW -----END PGP SIGNATURE-----