Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Marshall <keithmarshall@@users.sf.net>2010-07-26 00:20:46 +0400
committerKeith Marshall <keithmarshall@@users.sf.net>2010-07-26 00:20:46 +0400
commit9411deb401c5c3bdc17fe47ed4a1d8130f803052 (patch)
tree1ef176eed8e52fb3c4640d64f7bf9f08d96300a8 /winsup/mingw
parente3bef3f7d5503d140ec419f87b4b95f53147922d (diff)
Accept that mingwrt headers are not guaranteed to precede GCC's in the system include search path; (issue reported by Mark Brand).
Diffstat (limited to 'winsup/mingw')
-rw-r--r--winsup/mingw/ChangeLog14
-rw-r--r--winsup/mingw/include/float.h36
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_ */