2011-10-09 Bruno Haible <bruno@clisp.org>
+ *printf: Fix for platforms where 'long double' == 'double'.
+ * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Require
+ gl_LONG_DOUBLE_VS_DOUBLE. Don't blindly assume 80-bit 'long double'.
+ * modules/dprintf-posix (Files): Add m4/math_h.m4.
+ * modules/fprintf-posix (Files): Likewise.
+ * modules/obstack-printf-posix (Files): Likewise.
+ * modules/snprintf-posix (Files): Likewise.
+ * modules/sprintf-posix (Files): Likewise.
+ * modules/vasnprintf (Files): Likewise.
+ * modules/vasnprintf-posix (Files): Likewise.
+ * modules/vasprintf-posix (Files): Likewise.
+ * modules/vdprintf-posix (Files): Likewise.
+ * modules/vfprintf-posix (Files): Likewise.
+ * modules/vsnprintf-posix (Files): Likewise.
+ * modules/vsprintf-posix (Files): Likewise.
+ * modules/unistdio/u8-vasnprintf (Files): Likewise.
+ * modules/unistdio/u8-u8-vasnprintf (Files): Likewise.
+ * modules/unistdio/u16-vasnprintf (Files): Likewise.
+ * modules/unistdio/u16-u16-vasnprintf (Files): Likewise.
+ * modules/unistdio/u32-vasnprintf (Files): Likewise.
+ * modules/unistdio/u32-u32-vasnprintf (Files): Likewise.
+ * modules/unistdio/ulc-vasnprintf (Files): Likewise.
+
isnanl[-nolibm]: Fix for platforms where 'long double' == 'double'.
* lib/isnan.c (rpl_isnanl): Don't blindly assume 80-bit 'long double'.
* m4/isnanl.m4 (gl_PREREQ_ISNANL): Require gl_LONG_DOUBLE_VS_DOUBLE.
-# printf.m4 serial 45
+# printf.m4 serial 46
dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([gl_BIGENDIAN])
+ AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
dnl The user can set or unset the variable gl_printf_safe to indicate
dnl that he wishes a safe handling of non-IEEE-754 'long double' values.
if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
|| !strisnan (buf, 0, strlen (buf)))
result |= 1;
-#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
/* Representation of an 80-bit 'long double' as an initializer for a sequence
of 'unsigned int' words. */
# ifdef WORDS_BIGENDIAN