diff options
author | Keith Marshall <keithmarshall@@users.sf.net> | 2010-07-25 20:20:46 +0000 |
---|---|---|
committer | Keith Marshall <keithmarshall@@users.sf.net> | 2010-07-25 20:20:46 +0000 |
commit | 9411deb401c5c3bdc17fe47ed4a1d8130f803052 (patch) | |
tree | 1ef176eed8e52fb3c4640d64f7bf9f08d96300a8 | |
parent | e3bef3f7d5503d140ec419f87b4b95f53147922d (diff) | |
download | cygnal-9411deb401c5c3bdc17fe47ed4a1d8130f803052.tar.gz cygnal-9411deb401c5c3bdc17fe47ed4a1d8130f803052.tar.bz2 cygnal-9411deb401c5c3bdc17fe47ed4a1d8130f803052.zip |
Accept that mingwrt headers are not guaranteed to precede GCC's in the system include search path; (issue reported by Mark Brand).
-rw-r--r-- | winsup/mingw/ChangeLog | 14 | ||||
-rw-r--r-- | winsup/mingw/include/float.h | 36 |
2 files changed, 40 insertions, 10 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index fe84a5160..5f106e6ef 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,17 @@ +2010-07-25 Keith Marshall <keithmarshall@users.sourceforge.net> + + Accept that mingwrt headers are not guaranteed to precede GCC's in the + system include search path; (issue reported by Mark Brand). + + * include/float.h: Add multiple inclusion guard around... + [! defined _FLOAT_H___]: ...include_next <float.h> for GCC's version, + only when this define does not indicate that it has already been seen; + update comments to document rationale; move it within the scope of... + [! defined _MINGW_FLOAT_H_]: ...this multiple inclusion guard, so that + GCC's float.h, after an appropriate complementary modification, need + not perform a further include path search when this implementation + specific extension has already been processed. + 2010-07-22 Ozkan Sezer <sezero@users.sourceforge.net> * include/io.h (_findfirst, _findnext, _findclose, _findfirst32, diff --git a/winsup/mingw/include/float.h b/winsup/mingw/include/float.h index 97a2c1cd4..d5f22151e 100644 --- a/winsup/mingw/include/float.h +++ b/winsup/mingw/include/float.h @@ -1,5 +1,7 @@ +#ifndef _MINGW_FLOAT_H_ /* * float.h + * * This file has no copyright assigned and is placed in the Public Domain. * This file is a part of the mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within the package. @@ -9,17 +11,31 @@ * Also included here are some non-ANSI bits for accessing the floating * point controller. * - * NOTE: GCC provides float.h, but it doesn't include the non-standard - * stuff for accessing the fp controller. We include_next the - * GCC-supplied header and just define the MS-specific extensions - * here. - * */ - -#include_next<float.h> - -#ifndef _MINGW_FLOAT_H_ #define _MINGW_FLOAT_H_ +/* + * NOTE: + * + * GCC provides float.h, but it doesn't include the non-standard stuff for + * accessing the fp controller. We parse the GCC-supplied header, for its + * standard content, and then define the MS-specific extensions here. + * + * In a MinGW standard Win32 hosted environment, this should be the float.h + * found by a system include path search, but this can't be guaranteed; for + * a cross-compiler setup, the GCC-supplied header, which is guarded by the + * _FLOAT_H___ macro, may be found first, thus... + * + */ +#ifndef _FLOAT_H___ + /* + * ...when we didn't find the GCC-supplied header first, we want to pull + * it in now; include_next should achieve this, (and we must rely on the + * GCC header maintainers to extend us the same courtesy, to get this one + * pulled in, when the GCC-supplied header is found first). + * + */ +# include_next <float.h> +#endif /* All the headers include this file. */ #include <_mingw.h> @@ -148,5 +164,5 @@ _CRTIMP int __cdecl __MINGW_NOTHROW _isnan (double); #endif /* Not __STRICT_ANSI__ */ -#endif /* _FLOAT_H_ */ +#endif /* _MINGW_FLOAT_H_ */ |