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

[-- Attachment #1 --]
On 24 Mar 2016, at 23:51, Bryan Drewery <bdrewery@FreeBSD.org> wrote:
> 
> 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:
>>>> 
>>>> Is there any problem with forcing -std=c++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++.
>>> 
>>> Yes, but it already passes -std=c++11 in the correct places, as far as I
>>> know.  E.g. during the clang and libc++ builds.
>>> 
>>> 
>>>> 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=c++11 to
>>>> the lib32 build in CXXFLAGS.
>>> 
>>> 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?
>>> 
>> 
>> libcxxrt.
>> 
>> My fix also includes passing the proper -isystem =/usr/include/c++/v1 path.
>> 
>> I'll try without the -std change.
>> 
>> 
> 
> It fails without -std=c++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


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.29

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

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