Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Jul 2013 16:04:28 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        David Chisnall <theraven@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, Tijl Coosemans <tijl@coosemans.org>, src-committers@FreeBSD.org
Subject:   Re: svn commit: r253563 - head/contrib/libstdc++/include/c_std
Message-ID:  <20130726140428.GB14175@stack.nl>
In-Reply-To: <B2D786F9-E807-4F9D-89BA-A2B244B87C99@FreeBSD.org>
References:  <201307231023.r6NANhGf065713@svn.freebsd.org> <20130725201948.2f5ae808@kalimero.tijl.coosemans.org> <7D9DA326-0F32-44D2-92F9-EED0751F9AE0@FreeBSD.org> <20130726122654.19448832@kalimero.tijl.coosemans.org> <B2D786F9-E807-4F9D-89BA-A2B244B87C99@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jul 26, 2013 at 11:51:43AM +0100, David Chisnall wrote:
> On 26 Jul 2013, at 11:26, Tijl Coosemans <tijl@coosemans.org> wrote:

> > On Fri, 26 Jul 2013 10:43:07 +0100 David Chisnall wrote:
> >> On 25 Jul 2013, at 19:19, Tijl Coosemans <tijl@coosemans.org> wrote:
> >>> This also broke compilation of C code with -D_XOPEN_SOURCE=500.

> >> Do you have a test case for this?

> > % cc -c test.c -D_XOPEN_SOURCE=500 -Wall -std=gnu89
> > test.c:5:10: warning: implicit declaration of function 'isnan'
> >      [-Wimplicit-function-declaration]
> >        return( isnan( d ));
> >                ^
> > 1 warning generated.

> > The isnan function is part of SUSv2:
> > http://pubs.opengroup.org/onlinepubs/7990989775/xsh/isnan.html

> > _XOPEN_SOURCE is handled in sys/cdefs.h. It sets the following macros:
> > #define __XSI_VISIBLE           500
> > #define __POSIX_VISIBLE         199506
> > #define __ISO_C_VISIBLE         1990

> So, isnan and isinf should be visible in functions when in
> __ISO_C_VISIBLE < 1999 and __XSI_VISIBLE < 600, and __XSI_VISIBLE  >=
> 500?

This is cosmetic, but
http://pubs.opengroup.org/onlinepubs/000095399/functions/isnan.html says
that isnan() appeared in Issue 3. This is before _XOPEN_SOURCE == 500. A
simple solution is to expose it when __XSI_VISIBLE > 0 && __XSI_VISIBLE
< 600 && __ISO_C_VISIBLE < 1999. However, <sys/cdefs.h> has no support
for _XOPEN_SOURCE < 500 and there is no point in adding such support
now.

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130726140428.GB14175>