From c5d4f8b1cc872fbd3be75e160fd0483fc9181caf Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 22 Dec 2010 15:13:59 -0800
Subject: [PATCH] doc: document Solaris printf bug with large float precisions

* doc/posix-functions/dprintf.texi (dprintf):
* doc/posix-functions/fprintf.texi (fprintf):
* doc/posix-functions/printf.texi (printf):
* doc/posix-functions/snprintf.texi (snprintf):
* doc/posix-functions/sprintf.texi (sprintf):
* doc/posix-functions/vdprintf.texi (vdprintf):
* doc/posix-functions/vfprintf.texi (vfprintf):
* doc/posix-functions/vprintf.texi (vprintf):
* doc/posix-functions/vsnprintf.texi (vsnprintf):
* doc/posix-functions/vsprintf.texi (vsprintf):
Mention that these functions mishandle large floating point
precisions on Solaris 10.  The same bug is also present in Solaris
8, and I assume earlier.  This causes "cd gnulib-tests; make
check" to fail on Solaris 8 (and I assume, later) when building
the latest coreutils, in test-vasprintf-posix's call to
my_asprintf (&result, "%.4000f %d", 1.0, 99).  I have not checked
the wide flavors (e.g., wprintf) so this patch just updates the
documentation for the narrow ones.
---
 ChangeLog                          | 20 ++++++++++++++++++++
 doc/posix-functions/dprintf.texi   |  5 +++++
 doc/posix-functions/fprintf.texi   |  5 +++++
 doc/posix-functions/printf.texi    |  5 +++++
 doc/posix-functions/snprintf.texi  |  5 +++++
 doc/posix-functions/sprintf.texi   |  5 +++++
 doc/posix-functions/vdprintf.texi  |  5 +++++
 doc/posix-functions/vfprintf.texi  |  5 +++++
 doc/posix-functions/vprintf.texi   |  5 +++++
 doc/posix-functions/vsnprintf.texi |  5 +++++
 doc/posix-functions/vsprintf.texi  |  5 +++++
 11 files changed, 70 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 2dc4aebf8a..276a1cadea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
 2010-12-22  Paul Eggert  <eggert@cs.ucla.edu>
 
+	doc: document Solaris printf bug with large float precisions
+	* doc/posix-functions/dprintf.texi (dprintf):
+	* doc/posix-functions/fprintf.texi (fprintf):
+	* doc/posix-functions/printf.texi (printf):
+	* doc/posix-functions/snprintf.texi (snprintf):
+	* doc/posix-functions/sprintf.texi (sprintf):
+	* doc/posix-functions/vdprintf.texi (vdprintf):
+	* doc/posix-functions/vfprintf.texi (vfprintf):
+	* doc/posix-functions/vprintf.texi (vprintf):
+	* doc/posix-functions/vsnprintf.texi (vsnprintf):
+	* doc/posix-functions/vsprintf.texi (vsprintf):
+	Mention that these functions mishandle large floating point
+	precisions on Solaris 10.  The same bug is also present in Solaris
+	8, and I assume earlier.  This causes "cd gnulib-tests; make
+	check" to fail on Solaris 8 (and I assume, later) when building
+	the latest coreutils, in test-vasprintf-posix's call to
+	my_asprintf (&result, "%.4000f %d", 1.0, 99).  I have not checked
+	the wide flavors (e.g., wprintf) so this patch just updates the
+	documentation for the narrow ones.
+
 	test-posixtm.c: add two tests
 	* tests/test-posixtm.c: Add two tests, to highlight the
 	bug in Solaris 10 (and earlier) localtime.  Gnulib doesn't work
diff --git a/doc/posix-functions/dprintf.texi b/doc/posix-functions/dprintf.texi
index dc39022926..3f9f54b624 100644
--- a/doc/posix-functions/dprintf.texi
+++ b/doc/posix-functions/dprintf.texi
@@ -24,4 +24,9 @@ glibc-2.3.6.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/fprintf.texi b/doc/posix-functions/fprintf.texi
index f394e88315..116d20e13f 100644
--- a/doc/posix-functions/fprintf.texi
+++ b/doc/posix-functions/fprintf.texi
@@ -69,4 +69,9 @@ mingw.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/printf.texi b/doc/posix-functions/printf.texi
index b380ebc5bb..fb894d6f45 100644
--- a/doc/posix-functions/printf.texi
+++ b/doc/posix-functions/printf.texi
@@ -69,4 +69,9 @@ mingw.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/snprintf.texi b/doc/posix-functions/snprintf.texi
index 9e8f5ada96..23fa5e7f4f 100644
--- a/doc/posix-functions/snprintf.texi
+++ b/doc/posix-functions/snprintf.texi
@@ -89,4 +89,9 @@ OSF/1 5.1.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/sprintf.texi b/doc/posix-functions/sprintf.texi
index 5ebd16f601..cce9627625 100644
--- a/doc/posix-functions/sprintf.texi
+++ b/doc/posix-functions/sprintf.texi
@@ -61,4 +61,9 @@ MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/vdprintf.texi b/doc/posix-functions/vdprintf.texi
index 20a6ef75c5..3fa9b737a9 100644
--- a/doc/posix-functions/vdprintf.texi
+++ b/doc/posix-functions/vdprintf.texi
@@ -42,4 +42,9 @@ BeOS.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/vfprintf.texi b/doc/posix-functions/vfprintf.texi
index 179e67a6b9..7f41c0d552 100644
--- a/doc/posix-functions/vfprintf.texi
+++ b/doc/posix-functions/vfprintf.texi
@@ -69,4 +69,9 @@ mingw.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/vprintf.texi b/doc/posix-functions/vprintf.texi
index ac533888b8..213461c9f3 100644
--- a/doc/posix-functions/vprintf.texi
+++ b/doc/posix-functions/vprintf.texi
@@ -69,4 +69,9 @@ mingw.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/vsnprintf.texi b/doc/posix-functions/vsnprintf.texi
index 9784f6d636..8f6d90376e 100644
--- a/doc/posix-functions/vsnprintf.texi
+++ b/doc/posix-functions/vsnprintf.texi
@@ -89,4 +89,9 @@ HP-UX 11, OSF/1 5.1.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
diff --git a/doc/posix-functions/vsprintf.texi b/doc/posix-functions/vsprintf.texi
index 82c79492a5..317853885a 100644
--- a/doc/posix-functions/vsprintf.texi
+++ b/doc/posix-functions/vsprintf.texi
@@ -61,4 +61,9 @@ MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
 @end itemize
-- 
2.39.5