+2007-05-19 Bruno Haible <bruno@clisp.org>
+
+ * lib/float_.h: New file.
+ * m4/float_h.m4: New file.
+ * modules/float: New file.
+ * modules/isnanl (Dependencies): Add float.
+ * modules/isnanl-nolibm (Dependencies): Likewise.
+ * modules/mathl (Dependencies): Likewise.
+ * modules/printf-frexpl (Dependencies): Likewise.
+ * modules/signbit (Dependencies): Likewise.
+ * modules/vasnprintf (Dependencies): Likewise.
+ * doc/headers/float.texi: Update.
+
2007-05-19 Jim Meyering <jim@meyering.net>
* lib/utimens.c (gl_futimens): Rename from futimens,
POSIX specification: @url{http://www.opengroup.org/susv3xbd/float.h.html}
-Gnulib module: ---
+Gnulib module: float
Portability problems fixed by Gnulib:
@itemize
+@item
+The values of @code{LDBL_*} macros are incorrect on some platforms:
+On BeOS, they are the same as the values of the @code{DBL_*} macros, although
+@samp{long double} is a larger type than @samp{double}.
@end itemize
Portability problems not fixed by Gnulib:
--- /dev/null
+/* A correct <float.h>.
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _GL_FLOAT_H
+#define _GL_FLOAT_H
+
+#if @HAVE_INCLUDE_NEXT@
+# include_next <float.h>
+#else
+# include @ABSOLUTE_FLOAT_H@
+#endif
+
+/* 'long double' properties. */
+#if defined __i386__ && defined __BEOS__
+/* Number of mantissa units, in base FLT_RADIX. */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 64
+/* Number of decimal digits that sufficient for representing a number. */
+# undef LDBL_DIG
+# define LDBL_DIG 18
+/* x-1 where x is the smallest representable number > 1. */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 1.0842021724855044340E-19L
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP 16384
+/* Minimum positive normalized number. */
+# undef LDBL_MIN
+# define LDBL_MIN 3.3621031431120935063E-4932L
+/* Maximum representable finite number. */
+# undef LDBL_MAX
+# define LDBL_MAX 1.1897314953572317650E+4932L
+/* Minimum e such that 10^e is in the range of normalized numbers. */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers. */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+#endif /* _GL_FLOAT_H */
--- /dev/null
+# float_h.m4 serial 1
+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,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FLOAT_H],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ FLOAT_H=
+ case "$host_os" in
+ beos*)
+ FLOAT_H=float.h
+ gl_ABSOLUTE_HEADER([float.h])
+ ABSOLUTE_FLOAT_H=\"$gl_cv_absolute_float_h\"
+ AC_SUBST([ABSOLUTE_FLOAT_H])
+ ;;
+ esac
+ AC_SUBST([FLOAT_H])
+])
--- /dev/null
+Description:
+A correct <float.h>.
+
+Files:
+lib/float_.h
+m4/float_h.m4
+
+Depends-on:
+absolute-header
+
+configure.ac:
+gl_FLOAT_H
+
+Makefile.am:
+BUILT_SOURCES += $(FLOAT_H)
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+float.h: float_.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''ABSOLUTE_FLOAT_H''@|$(ABSOLUTE_FLOAT_H)|g' \
+ -e 's/@''HAVE_INCLUDE_NEXT''@/$(HAVE_INCLUDE_NEXT)/g' \
+ < $(srcdir)/float_.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += float.h float.h-t
+
+Include:
+<float.h>
+
+License:
+LGPL
+
+Maintainer:
+all