Accept that mingwrt headers are not guaranteed to precede GCC's in the system include search path; (issue reported by Mark Brand).

This commit is contained in:
Keith Marshall 2010-07-25 20:20:46 +00:00
parent e3bef3f7d5
commit 9411deb401
2 changed files with 40 additions and 10 deletions

View File

@ -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,

View File

@ -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.
*/
#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...
*
*/
#include_next<float.h>
#ifndef _MINGW_FLOAT_H_
#define _MINGW_FLOAT_H_
#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_ */