Skip site navigation (1)Skip section navigation (2)
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>