[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] doc: document Solaris printf bug with large float precisions
From: |
Paul Eggert |
Subject: |
[PATCH] doc: document Solaris printf bug with large float precisions |
Date: |
Wed, 22 Dec 2010 15:20:47 -0800 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7 |
In keeping with the theme of documenting relatively-unimportant
Solaris bugs rather than working around them, I pushed this doc
fix, the need for which I found when running "make check" with
the latest coreutils.
Here's a simpler test case that illustrates the Solaris bug,
in case there's anybody here who can get bug fixes
into Solaris:
#include <stdio.h>
int
main (void)
{
char buf[1000];
int n = snprintf (buf, sizeof buf, "%.511f", 1.0);
printf ("%d %s\n", n, buf);
return 0;
}
This prints "513 0.0...." rather than the correct "513 1.0....".
>From 1c90a6dffb9b96d79188bee2924765d1ff8ce034 Mon Sep 17 00:00:00 2001
From: Paul Eggert <address@hidden>
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(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 2dc4aeb..276a1ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
2010-12-22 Paul Eggert <address@hidden>
+ 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 dc39022..3f9f54b 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
address@hidden
+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 f394e88..116d20e 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
address@hidden
+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 b380ebc..fb894d6 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
address@hidden
+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 9e8f5ad..23fa5e7 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
address@hidden
+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 5ebd16f..cce9627 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
address@hidden
+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 20a6ef7..3fa9b73 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
address@hidden
+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 179e67a..7f41c0d 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
address@hidden
+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 ac53388..213461c 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
address@hidden
+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 9784f6d..8f6d903 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
address@hidden
+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 82c7949..3178538 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
address@hidden
+This function mishandles large floating point precisions
+(for example, formatting 1.0 with @samp{"%.511f"})
+on some platforms:
+Solaris 10.
@end itemize
--
1.7.2
- [PATCH] doc: document Solaris printf bug with large float precisions,
Paul Eggert <=