Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Mar 2014 12:30:25 +0100
From:      =?ISO-8859-1?Q?Jean-S=E9bastien_P=E9dron?= <dumbbell@FreeBSD.org>
To:        freebsd-toolchain@freebsd.org
Cc:        Koop Mast <kwm@FreeBSD.org>
Subject:   Various issues with Clang and libc++ while playing with OpenCL (FYI)
Message-ID:  <53170AD1.4090506@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--QDV5WFf1Xs5Qkq47TOCi0qhIRjdPHel1u
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hello!

[Note: I'm not subscribed to this list]

I'm trying to make OpenCL work on FreeBSD, using Mesa 10.1 release
candidate.

The implementation of libOpenCL.so in Mesa, called Clover, is in C++. In
the configure.ac script, they require GCC 4.7+, but I think it's mainly
for C++11 support. When building Mesa with Clang 3.4 and 11-CURRENT's
libc++, I had the following issues:

1. Clang 3.4 fails to build Clover, see this PR:
   https://bugs.freedesktop.org/show_bug.cgi?id=3D74098

   In the last comment, there's a patch to Clover, working around the
   problem. Its author opened a ticket on LLVM bug tracker:
   http://llvm.org/bugs/show_bug.cgi?id=3D18645

2. Mesa's configure script is looking for stddef.h here:
   /usr/local/llvm34/lib/clang/3.4/include

   LLVM/Clang ports don't install this file. I just added a symlink to
   /usr/include/stddef.h and Mesa was happy. I still need to check how
   it goes if I remove the check and the symlink. But perhaps Mesa is
   right to expect this header (and maybe other) in this directory, I
   don't know.

3. Our base libc++ has a bug in the <functional> header. I posted a PR
   on Mesa bug tracker here, before I found out it was a problem with
   libc++:
   https://bugs.freedesktop.org/show_bug.cgi?id=3D75505

   Apparently, it's fixed in libc++ upstream, in r199848.

4. At runtime, any OpenCL program segfaults in libc++ (I don't have the
   stack trace at hand and can't remember what it was... Something with
   basic_string).

When using libc++ from ports (devel/libc++, r200683) and the work around
for problem #1, Clover builds and OpenCL programs run fine.

This is mostly a "FYI" report, I think we can live with libc++ from
ports for Mesa.

--=20
Jean-S=E9bastien P=E9dron


--QDV5WFf1Xs5Qkq47TOCi0qhIRjdPHel1u
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (FreeBSD)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJTFwrZAAoJEDnpl2Gl/ZTMNEQP/iPjLUvmvma+BeGvOWwsL7Oj
UnrjUNTYVQ9QTuFdzUONJxRVEwlcx0rUejHWKZEe7sgHZjJlawITs6kVJNA0cEz3
r5gKfib2GCH5Mc0YUDEsIEEDJs5vbFCE6aONYZ3X5SK5vDRap7H86X/4PKR4K8p/
+plrHWLtovITGvn83sOlzu6zyPZfhEOJuze/vdgJYu0JhXdkoUqyP4ZCqSjHltDd
rD3E3rDXWDKfJ97NY9WAH8/chZb8XntCSCdfApl6Vocy9vJFkzHCfnIJpJjF5cSx
P/20C55Zxmix41Ls5NycWbtLjJ7FSoOV+dM0sBaAHe545dXZhEjF32oIQUUmQqRZ
wNVlZY6GWCVBf6+fmhrkuXgAzmm3cMdj9pRgBXTmEoFG7VerulQ6uEQTwbQakU83
47MMHiQEscXo3Lhxxwqxz3MpTsDUWN7rUxZtDx//akpgGDvktP2ytuD0wCZF9+ol
cELlr9E1+m13b2DObSq4qwT7j6v+nCb3eLrYokwEZACFKnzWa8thlOOYrks/efT+
GxIEsVpEnVoD4XbtVG6aK9NYUiIjNO2rVQWNsAnMMwQr69Nt1gWxI0R1fljmxEj3
k0mAUZiDjk2qy2Vb29ueoIkDJ55rIH01EhCXBlVUke8/xJ6D4q2yb5nQrfmMd4rU
8UJCKh+Q6WvOGyth1Jo4
=IbRs
-----END PGP SIGNATURE-----

--QDV5WFf1Xs5Qkq47TOCi0qhIRjdPHel1u--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53170AD1.4090506>