Date: Sat, 26 Oct 2013 22:46:21 -0400 From: David Chisnall <theraven@FreeBSD.org> To: Raphael Kubo da Costa <rakuco@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r253260 - head/lib/msun/src Message-ID: <6EA02AB7-4DE5-4B67-BD7C-78E8F8975E4B@FreeBSD.org> In-Reply-To: <868uxfd0rt.fsf@orwell.Elisa> References: <201307121103.r6CB3qrh068782@svn.freebsd.org> <86d2mrd10h.fsf__46266.7496213273$1382832829$gmane$org@orwell.Elisa> <868uxfd0rt.fsf@orwell.Elisa>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26 Oct 2013, at 20:18, Raphael Kubo da Costa <rakuco@FreeBSD.org> = wrote: > Raphael Kubo da Costa <rakuco@FreeBSD.org> writes: >=20 >> David Chisnall <theraven@FreeBSD.org> writes: >>=20 >>> Author: theraven >>> Date: Fri Jul 12 11:03:51 2013 >>> New Revision: 253260 >>> URL: http://svnweb.freebsd.org/changeset/base/253260 >>>=20 >>> Log: >>> Fix the build with C++ where __builtin_types_compatible_p is not = allowed. >>>=20 >>> Modified: >>> head/lib/msun/src/math.h >>>=20 >>> Modified: head/lib/msun/src/math.h >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/msun/src/math.h Fri Jul 12 10:07:48 2013 = (r253259) >>> +++ head/lib/msun/src/math.h Fri Jul 12 11:03:51 2013 = (r253260) >>> @@ -81,12 +81,13 @@ extern const union __nan_un { >>> #define FP_SUBNORMAL 0x08 >>> #define FP_ZERO 0x10 >>>=20 >>> -#if __STDC_VERSION__ >=3D 201112L && defined(__clang__) >>> +#if (__STDC_VERSION__ >=3D 201112L && defined(__clang__)) || \ >>> + __has_extension(c_generic_selections) >>> #define __fp_type_select(x, f, d, ld) _Generic((x), \ >>> float: f(x), \ >>> double: d(x), \ >>> long double: ld(x)) >>=20 >> One of the things that's making cad/brlcad fail with clang is some C >> code that calls isnan() and isinf() with -std=3Dgnu89, -Werror and >> -Wc11-extensions: >=20 > (To be fair, it's -pedantic that brings in -Wc11-extensions) The issue is probably a clang bug. The use of _Generic() is in a system = header and so ought to be immune to warnings, but apparently the fact = that it's instantiated outside of the system header. If you can file a = clang bug (http://llvm.org/bugs/enter_bug.cgi?product=3Dclang) I'll take = a look (I'm at vBSDCon now, so I'll lose it otherwise). Ports definitely shouldn't be using -Werror though. I've heard -Werror = described as the flag meaning 'fail to compile with any newer compiler = than the one I'm using' - it's a great idea for trunk, but it should be = turned off for releases. Sticking -Wno-error on the end will fix it. David
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6EA02AB7-4DE5-4B67-BD7C-78E8F8975E4B>