Re: missing isinf declaration on solaris

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: missing isinf declaration on solaris
Дата
Msg-id 13871.1411561534@sss.pgh.pa.us
обсуждение исходный текст
Ответ на missing isinf declaration on solaris  (Oskari Saarenmaa <os@ohmu.fi>)
Ответы Re: missing isinf declaration on solaris  (Oskari Saarenmaa <os@ohmu.fi>)
Re: missing isinf declaration on solaris  (Andres Freund <andres@2ndquadrant.com>)
Список pgsql-hackers
Oskari Saarenmaa <os@ohmu.fi> writes:
> GCC 4.9 build on Solaris 10 shows these warnings about isinf:
> float.c: In function 'is_infinite':
> float.c:178:2: warning: implicit declaration of function 'isinf' 

Ugh.

> isinf declaration is in <iso/math_c99.h> which is included by <math.h>, 
> but it's surrounded by #if defined(_STDC_C99) || _XOPEN_SOURCE - 0 >= 
> 600 || defined(__C99FEATURES__).  A couple of quick Google searches 
> suggests that some other projects have worked around this by always 
> defining __C99FEATURES__ even if compiling in C89 mode.  __C99FEATURES__ 
> is only used by math.h and fenv.h in /usr/include.

> Should we just add -D__C99FEATURES__ to CPPFLAGS in 
> src/template/solaris, add our own declaration of isinf() or do something 
> else about the warning?

I'm worried that __C99FEATURES__ might do other, not-so-C89-compatible
things in later Solaris releases.  Possibly that risk could be addressed
by having src/template/solaris make an OS version check before adding the
switch, but it'd be a bit painful probably.

Based on the #if you show, I'd be more inclined to think about defining
_XOPEN_SOURCE to get the result.  There is precedent for that in
src/template/hpux which doesCPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
I forget what-all _XOPEN_SOURCE_EXTENDED enables exactly, but if memory
serves there were a nontrivial number of now-considered-standard features
turned on by that in ancient HPUX releases.  If you want to pursue this
route, you'd need to do a bit of digging to see what else _XOPEN_SOURCE
controls in Solaris and if there is some front-end feature macro (like
_XOPEN_SOURCE_EXTENDED) that you're supposed to set instead of touching
it directly.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: better atomics - v0.6
Следующее
От: Andres Freund
Дата:
Сообщение: Re: better atomics - v0.6