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>
