*printf: Detect large precisions bug on Solaris 10/SPARC.
[gnulib.git] / ChangeLog
index e0e4e3a..038e38b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,97 @@
+2010-12-24  Bruno Haible  <bruno@clisp.org>
+
+       *printf: Detect large precisions bug on Solaris 10/SPARC.
+       * m4/printf.m4 (gl_PRINTF_PRECISION): Add one more test code, provided
+       by Paul Eggert.
+       * tests/test-snprintf-posix.h (test_function): Add this test code here
+       too.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+       * tests/test-vasnprintf-posix.c (test_function): Likewise.
+       * tests/test-vasprintf-posix.c (test_function): Likewise.
+       * doc/posix-functions/fprintf.texi: Mention Solaris 10 bug as worked
+       around by gnulib.
+       * doc/posix-functions/printf.texi: Likewise.
+       * doc/posix-functions/snprintf.texi: Likewise.
+       * doc/posix-functions/sprintf.texi: Likewise.
+       * doc/posix-functions/vfprintf.texi: Likewise.
+       * doc/posix-functions/vprintf.texi: Likewise.
+       * doc/posix-functions/vsnprintf.texi: Likewise.
+       * doc/posix-functions/vsprintf.texi: Likewise.
+       * doc/posix-functions/dprintf.texi: Undo last commit.
+       * doc/posix-functions/vdprintf.texi: Likewise.
+
+2010-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: port test-fdutimensat.c to Solaris 8
+       * tests/test-fdutimensat.c (do_fdutimens): Don't assume
+       fdutimensat works with a nonnegative fd and AT_SYMLINK_NOFOLLOW.
+       On Solaris 8, it fails with errno == ENOSYS, because there is no
+       futimens (so it can't use the fd), and there is no lutimens (so it
+       can't implement AT_SYMLINK_NOFOLLOW on symlinks).
+
+       vsnprintf: make more consistent with snprintf; doc fixes
+
+       * doc/posix-functions/snprintf.texi (snprintf): The workaround for
+       the byte count return problem was promoted from the snprintf-posix
+       to the snprintf module.
+       * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
+       * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Also check
+       gl_SNPRINTF_RETVAL_C99, for consistency with gl_FUNC_SNPRINTF.
+       * tests/test-snprintf.c (main): Check the byte count returned.
+       * tests/test-vsnprintf.c (main): Likewise.
+
+2010-12-23  Eric Blake  <eblake@redhat.com>
+
+       sigpipe: relax to LGPLv2+, since it did not have any LGPLv3+ parts
+       * modules/sigpipe (License): Relax license.
+
+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
+       around this bug; this is merely to document it.
+
+2010-12-22  Bruno Haible  <bruno@clisp.org>
+
+       getlogin_r: Work around portability problem on OSF/1.
+       * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Detect the OSF/1 problem.
+       * lib/unistd.in.h (getlogin_r): Replace if REPLACE_GETLOGIN_R is set.
+       * lib/getlogin_r.c (getlogin_r): When getlogin_r exists, invoke it and
+       test for a truncated result.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETLOGIN_R.
+       * modules/unistd (Makefile.am): Substitute REPLACE_GETLOGIN_R.
+       * modules/getlogin_r (Depends-on): Add memchr.
+       * doc/posix-functions/getlogin_r.texi: Mention the OSF/1 problem.
+
+2010-12-22  Bruno Haible  <bruno@clisp.org>
+
+       ptsname: Avoid test failure on OSF/1 5.1.
+       * modules/ptsname-tests (Depends-on): Add 'same-inode'.
+       * tests/test-ptsname.c: Include <sys/stat.h>, same-inode.h.
+       (same_slave): New function.
+       (main): Use it to compare ptsname's result with the expected file name.
+
 2010-12-22  Bruno Haible  <bruno@clisp.org>
 
        Port extended stdio modules to HP NonStop Kernel.