When compiling natively:
checking whether frexp() can be used without linking with libm... yes
checking whether frexp works... no
The failure is with +inf, where frexp mistakenly returns NaN instead of inf.
But when cross-compiling, mingw was omitted from the list of broken platforms.
Installing this:
From: Eric Blake <[EMAIL PROTECTED]>
Date: Tue, 4 Dec 2007 08:40:17 -0700
Subject: [PATCH] Fix frexp on mingw.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Detect mingw bug when
cross-compiling.
* doc/functions/frexp.texi (frexp): Document the bug.
Signed-off-by: Eric Blake <[EMAIL PROTECTED]>
---
ChangeLog | 5 +++++
doc/functions/frexp.texi | 2 +-
m4/frexp.m4 | 3 ++-
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 54a4b12..5abb766 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2007-12-04 Eric Blake <[EMAIL PROTECTED]>
+ Fix frexp on mingw.
+ * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Detect mingw bug when
+ cross-compiling.
+ * doc/functions/frexp.texi (frexp): Document the bug.
+
Make cygwin fseeko check more reliable.
* m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET) [__CYGWIN__]: Use cygwin
version numbers, rather than unrelated feature check.
diff --git a/doc/functions/frexp.texi b/doc/functions/frexp.texi
index cfe5996..f0a791c 100644
--- a/doc/functions/frexp.texi
+++ b/doc/functions/frexp.texi
@@ -13,7 +13,7 @@ This function does not work on denormalized numbers on some
platforms:
NetBSD 3.0.
@item
This function does not work on infinite numbers on some platforms:
-IRIX 6.5.
+IRIX 6.5, mingw.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/m4/frexp.m4 b/m4/frexp.m4
index 524f6d5..ca293b4 100644
--- a/m4/frexp.m4
+++ b/m4/frexp.m4
@@ -1,4 +1,4 @@
-# frexp.m4 serial 4
+# frexp.m4 serial 5
dnl Copyright (C) 2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -126,6 +126,7 @@ int main()
}], [gl_cv_func_frexp_works=yes], [gl_cv_func_frexp_works=no],
[case "$host_os" in
netbsd* | irix*) gl_cv_func_frexp_works="guessing no";;
+ mingw*) gl_cv_func_frexp_works="guessing no";;
*) gl_cv_func_frexp_works="guessing yes";;
esac
])
--
1.5.3.5