http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46155
--- Comment #12 from Dr. David Kirkby <david.kirkby at onetel dot net> 2010-10-26 17:59:38 UTC --- (In reply to comment #11) > (In reply to comment #7) > > In your opinion, are IBM wrong to define fprnd_t in /usr/include/float.h? > > IBM's definition of fprnd_t in <float.h> is within #ifdef _ALL_SOURCE. I > presume _ALL_SOURCE is not defined when IBM's compiler is used in ISO C > conforming mode. AFAIK, adding non-standard definitions to standard header > files in non-conforming modes is a common practice. > > The <float.h> that GCC installed on AIX is identical to gcc/ginclude/float.h > in > the GCC 4.2.4 sources. I can understand if GCC developers don't want to > introduce OS-specific sections in it. Whist you can understand the developers not wanting to introduce OS-specific sections to the library, it should be realised it breaks code which will compile with the IBM compiler. IMHO, it would be sensible to preserve the IBM definitions in the file. The 'mkheaders' script is I believe written to work around what gcc considers buggy header files, yet by doing this you remove definitions that can be important on AIX systems. I can see your point about perhaps the GSL developers should use the C99 features in preference to other ones, but the GSL code is very portable, so I suspect will work with pre-C99 systems. I know GSL builds on AIX, HP-UX, FreeBSD and Cygwin - 4 less common operating systems. Anyway, I can work around this, but my own feeling is the IBM definitions should be preserved. Dave