Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Mar 2016 23:54:49 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Bryan Drewery <bdrewery@FreeBSD.org>
Cc:        toolchain@FreeBSD.org
Subject:   Re: CXXSTD=c++11
Message-ID:  <7B77010A-B377-4B1A-835A-D48F59E5290D@FreeBSD.org>
In-Reply-To: <56F46F67.2000807@FreeBSD.org>
References:  <56F46BE0.7080909@FreeBSD.org> <43ABA5F3-60E0-4A29-9698-B345A3DA0A8B@FreeBSD.org> <56F46E1B.4010605@FreeBSD.org> <56F46F67.2000807@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_3969F12E-2410-4600-90B7-0A5AB75721AE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

On 24 Mar 2016, at 23:51, Bryan Drewery <bdrewery@FreeBSD.org> wrote:
>=20
> On 3/24/2016 3:45 PM, Bryan Drewery wrote:
>> On 3/24/2016 3:44 PM, Dimitry Andric wrote:
>>> On 24 Mar 2016, at 23:36, Bryan Drewery <bdrewery@FreeBSD.org> =
wrote:
>>>>=20
>>>> Is there any problem with forcing -std=3Dc++11 for all CXX/LIB_CXX =
builds
>>>> now?  We do this when using an external GCC since it doesn't =
default to
>>>> the c++11 standard quite yet.  As far as I understand, we require =
c++11
>>>> to build clang/libc++.
>>>=20
>>> Yes, but it already passes -std=3Dc++11 in the correct places, as =
far as I
>>> know.  E.g. during the clang and libc++ builds.
>>>=20
>>>=20
>>>> It seems to be the problem at
>>>> =
https://lists.freebsd.org/pipermail/freebsd-toolchain/2015-October/001757.=
html
>>>> which I've fixed in an upcoming commit to properly pass -std=3Dc++11 =
to
>>>> the lib32 build in CXXFLAGS.
>>>=20
>>> Hm, is this occuring during the build of libcxxrt, or of libc++?  If =
it
>>> is the former, then it seems that the system headers don't properly
>>> declare _Static_assert() in that case.  I have no clue as to why, =
though
>>> maybe it's picking something up from gcc's famously "fixed" standard
>>> headers?
>>>=20
>>=20
>> libcxxrt.
>>=20
>> My fix also includes passing the proper -isystem =3D/usr/include/c++/v1=
 path.
>>=20
>> I'll try without the -std change.
>>=20
>>=20
>=20
> It fails without -std=3Dc++11 (there's more discussion in that link =
and in
> PR 205453).

Yeah, I also commented on PR 205453 in the past, but I still don't
understand where the external gcc gets its _Static_assert macro from.
Or whether it gets it at all.  Maybe we should place a hack for this in
sys/cdefs.h?  We shouldn't litter contrib code with #ifdef GCC_VERSION
blocks.

-Dimitry


--Apple-Mail=_3969F12E-2410-4600-90B7-0A5AB75721AE
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.29

iEYEARECAAYFAlb0cEEACgkQsF6jCi4glqML/gCg9g21+RV7tUJEfWHwc/pX9sGi
g2kAnA7RPbIL8csRNZw4pkfH1YTwipZk
=HKl4
-----END PGP SIGNATURE-----

--Apple-Mail=_3969F12E-2410-4600-90B7-0A5AB75721AE--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7B77010A-B377-4B1A-835A-D48F59E5290D>