fdopendir: detect FreeBSD bug
[gnulib.git] / ChangeLog
index 4d00591..19eaf55 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,274 @@
+2011-02-04  Eric Blake  <eblake@redhat.com>
+
+       fdopendir: detect FreeBSD bug
+       * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Detect bug.
+       * doc/posix-functions/fdopendir.texi (fdopendir): Document it.
+
+2011-02-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdbool: do not define HAVE_STDBOOL_H
+       * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Renamed from
+       AC_HEADER_STDBOOL.  All uses changed.  Do not define
+       HAVE_STDBOOL_H, as gnulib does not need this.  This change is
+       imported from the latest Autoconf git.  It was motivated by Emacs,
+       which uses gnulib but does not need HAVE_STDBOOL_H.
+
+2011-02-04  Bruno Haible  <bruno@clisp.org>
+
+       wcsnrtombs: Prepare for new module wwcsnrtombs.
+       * lib/wcsnrtombs-impl.h: New file, extracted from lib/wcsnrtombs.c.
+       * lib/wcsnrtombs.c: Include it.
+       * modules/wcsnrtombs (Files): Add lib/wcsnrtombs-impl.h.
+
+       wcsrtombs: Prepare for new module wwcsrtombs.
+       * lib/wcsrtombs-impl.h: New file, extracted from lib/wcsrtombs.c.
+       * lib/wcsrtombs.c: Include it.
+       * modules/wcsrtombs (Files): Add lib/wcsrtombs-impl.h.
+
+       mbsnrtowcs: Prepare for new module mbsnrtowwcs.
+       * lib/mbsnrtowcs-impl.h: New file, extracted from lib/mbsnrtowcs.c.
+       * lib/mbsnrtowcs.c: Include it.
+       * modules/mbsnrtowcs (Files): Add lib/mbsnrtowcs-impl.h.
+
+       mbsrtowcs: Prepare for new module mbsrtowwcs.
+       * lib/mbsrtowcs-impl.h: New file, extracted from lib/mbsrtowcs.c.
+       * lib/mbsrtowcs.c: Include it.
+       * modules/mbsrtowcs (Files): Add lib/mbsrtowcs-impl.h.
+
+2011-02-04  Bruno Haible  <bruno@clisp.org>
+
+       vasnprintf: Reduce use of malloc for small format strings.
+       * lib/printf-args.h (N_DIRECT_ALLOC_ARGUMENTS): New macro.
+       (arguments): Add room for the first 7 arguments.
+       * lib/printf-parse.h (N_DIRECT_ALLOC_DIRECTIVES): New macro.
+       (char_directives, u8_directives, u16_directives, u32_directives): Add
+       room for the first 7 directives.
+       * lib/printf-parse.c: Include <string.h>.
+       (PRINTF_PARSE): Change memory handling code so that it uses the first
+       7 preallocated elements in an 'arguments' or 'DIRECTIVES' struct.
+       * lib/vasnprintf.c (VASNPRINTF): Update memory handling code.
+       Reported by Pádraig Brady <P@draigbrady.com>.
+
+2011-01-31  Eric Blake  <eblake@redhat.com>
+
+       dup2: work around Haiku bug
+       * m4/dup2.m4 (gl_FUNC_DUP2): Test for bug.
+       * lib/dup2.c (rpl_dup2) [!WIN32]: Add workaround.
+       * doc/posix-functions/dup2.texi (dup2): Document the bug.
+       * tests/test-dup2.c (main): Enhance test.
+
+2011-01-31  Simon Josefsson  <simon@josefsson.org>
+
+       doc: off_t is not available in eglibc 2.11.2 stdio.h.
+       * doc/posix-headers/stdio.texi (stdio.h): Mention that off_t isn't
+       declared by eglibc 2.11.2.
+       * lib/stdio.in.h: Likewise.
+
+2011-01-31  Eric Blake  <eblake@redhat.com>
+
+       ignore-value: add missing test dependency
+       * tests/test-ignore-value.c: Revert previous change; stdio.h
+       provides off_t.
+       * modules/ignore-value-tests (Depends-on): Add missing dependency.
+
+2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       mktime: clarify long_int width checking
+       * lib/mktime.c (long_int_is_wide_enough): Move this assertion to
+       the top level, to make it clearer that the assumption about
+       long_int width is being checked.  See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00554.html>.
+
+2011-01-30  Simon Josefsson  <simon@josefsson.org>
+
+       ignore-value: Fix self-test.
+       * tests/test-ignore-value.c: Include sys/types.h for off_t.
+
+2011-01-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       TYPE_MAXIMUM: avoid theoretically undefined behavior
+       * lib/intprops.h (TYPE_MINIMUM, TYPE_MAXIMUM): Do not shift a
+       negative number, which the C Standard says has undefined behavior.
+       In practice this is not a problem, but might as well do it by the book.
+       Reported by Rich Felker and Eric Blake; see
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00493.html>.
+       * lib/strtol.c (TYPE_MINIMUM, TYPE_MAXIMUM): Likewise.
+       * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
+       * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
+       * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Likewise.
+       * m4/stdint.m4 (gl_STDINT_H): Likewise.
+       * lib/mktime.c (TYPE_MAXIMUM): Redo slightly to match the others.
+
+       mktime: #undef mktime before #defining it
+       * lib/mktime.c (mktime) [DEBUG]: #undef mktime before #defining it.
+
+       mktime: systematically normalize tm_isdst comparisons
+       * lib/mktime.c (isdst_differ): New function.
+       (__mktime_internal): Use it systematically for all isdst comparisons.
+       This completes the fix for libc BZ #6723, and removes the need for
+       normalizing tm_isdst.  See
+       <http://sourceware.org/bugzilla/show_bug.cgi?id=6723>
+       (not_equal_tm) [DEBUG]: Use isdst_differ here, too.
+
+       mktime: fix some integer overflow issues and sidestep the rest
+
+       This was prompted by a bug report by Benjamin Lindner for MinGW
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00472.html>.
+       His bug is due to signed integer overflow (0 - INT_MIN), and I
+       I scanned through mktime.c looking for other integer overflow
+       problems, fixing all the bugs I found.
+
+       Although the C Standard says the resulting code is still not safe
+       in the presence of integer overflow, in practice it should be good
+       enough for all real-world two's-complement implementations, except
+       for debugging environments that deliberately trap on integer
+       overflow (e.g., gcc -ftrapv).
+
+       * lib/mktime.c (WRAPV): New macro.
+       (SHR): Also check that long_int and time_t shift right in the
+       usual way, before using the fast-but-unportable method.
+       (TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove, no longer
+       used.  The code already assumed two's complement, so there's
+       no need to test for alternatives.  All uses removed.
+       (TYPE_MAXIMUM): Don't rely here on overflow behavior not defined by
+       the C standard.  Problem reported by Rich Felker in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00488.html>.
+       (twos_complement_arithmetic): Also check long_int and time_t.
+       (time_t_avg, time_t_add_ok, time_t_int_add_ok): New functions.
+       (guess_time_tm, ranged_convert, __mktime_internal): Use them.
+       (__mktime_internal): Avoid integer overflow with unary subtraction
+       in two instances where -1 - X is an adequate replacement for -X,
+       since the calculations are approximate.
+
+2011-01-29  Eric Blake  <eblake@redhat.com>
+
+       mktime: avoid infinite loop
+       * m4/mktime.m4 (AC_FUNC_MKTIME): Avoid overflow on possibly-signed
+       type; behavior is still undefined but portable to all known targets.
+       Reported by Rich Felker.
+
+2011-01-29  Simon Josefsson  <simon@josefsson.org>
+
+       rename, unlink, same-inode: Relicense.
+       * modules/rename (License): Relax from LGPLv3+ to LGPLv2+.
+       * modules/unlink (License): Likewise.
+       * modules/same-inode (License): Likewise.
+
+2011-01-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       mktime: avoid problems on NetBSD 5 / i386
+       * lib/mktime.c (long_int): New type.  This works around a problem
+       on NetBSD 5 / i386, where 'long int' and 'int' are both 32 bits
+       but time_t is 64 bits, and where I expect the existing code is
+       wrong in some cases.
+       (leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it.
+       (ydhms_diff): Bring back the compile-time check for wide-enough
+       year and yday.
+
+       mktime: fix misspelling in comment
+       * lib/mktime.c (__mktime_internal): Fix misspelling in comment.
+       This merges all recent glibc changes of importance.
+
+2011-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       move-if-change: cope with concurrent mv of identical file.
+       * build-aux/move-if-change (CMPPROG): Accept environment
+       variable as an override for `cmp'.
+       (usage): Document CMPPROG.
+       Adjust comparison to drop stdout.  Cope with failure of mv if
+       the target file exists and is identical to the source, for
+       parallel builds.
+       Report from H.J. Lu against binutils in PR binutils/12283.
+
+2011-01-28  Bruce Korb  <bkorb@gnu.org>
+
+       * users.txt: Mention sharutils.
+
+2011-01-28  Simon Josefsson  <simon@josefsson.org>
+
+       * users.txt: Mention OATH Toolkit.
+
+2011-01-27  Bruno Haible  <bruno@clisp.org>
+
+       Prepare for supporting FreeBSD 10.
+       * build-aux/config.libpath: Remove handling of freebsd1*.
+
+2011-01-27  Gerald Pfeifer  <gerald@pfeifer.com>  (tiny change)
+
+       Prepare for supporting FreeBSD 10.
+       * build-aux/config.rpath: Remove handling of freebsd1* which soon would
+       match FreeBSD 10.0.
+
+2011-01-27  Bruno Haible  <bruno@clisp.org>
+
+       vma-iter, get-rusage-as: Add OpenBSD support.
+       * modules/vma-iter (configure.ac): Test for mquery.
+       * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on OpenBSD.
+       * lib/vma-iter.c: Include <sys/mman.h>.
+       (vma_iterate): Add an implementation based on mquery().
+       * lib/resource-ext.h (get_rusage_as): Update comments.
+       * lib/get-rusage-as.c: Likewise.
+       * lib/get-rusage-data.c: Likewise.
+
+2011-01-26  Karl Berry  <karl@gnu.org>
+
+       * doc/Makefile (lang_env, makeinfo_prog, manual_opts): new
+       variables to make it easier to override the makeinfo program used.
+
+2011-01-26  Eric Blake  <eblake@redhat.com>
+
+       fcntl: work around Haiku F_DUPFD bugs
+       * m4/fcntl.m4 (gl_FUNC_FCNTL): Also catch Haiku errno bug.
+       * lib/fcntl.c (rpl_fcntl) [F_DUPFD]: Work around Haiku losing
+       cloexec bit on duplication.
+       * doc/posix-functions/fcntl.texi (fcntl): Document the bug.
+
+2011-01-26  Bruno Haible  <bruno@clisp.org>
+
+       Enable memory leak tests on AIX.
+       * tests/test-dprintf-posix2.c (main): Don't skip the test on AIX.
+       * tests/test-fprintf-posix3.c (main): Likewise.
+
+2011-01-26  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'get-rusage-data'.
+       * modules/get-rusage-data-tests: New file.
+       * tests/test-get-rusage-data.c: New file.
+
+       New module 'get-rusage-data'.
+       * lib/resource-ext.h (get_rusage_data): New declaration.
+       * lib/get-rusage-data.c: New file.
+       * modules/get-rusage-data: New file.
+
+2011-01-25  Bruno Haible  <bruno@clisp.org>
+
+       get-rusage-as: Allow for easier testing.
+       * lib/resource-ext.h (get_rusage_as): Add comment.
+       * lib/get-rusage-as.c (get_rusage_as_via_setrlimit): Define always.
+       (main): New function for interactive testing.
+
+2011-01-25  Bruno Haible  <bruno@clisp.org>
+
+       vma-iter: Treat Haiku like BeOS.
+       * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define on Haiku as well.
+       * lib/vma-iter.c (vma_iterate) [Haiku]: Use the BeOS API.
+
+2011-01-25  Eric Blake  <eblake@redhat.com>
+
+       c-stack: fix regression on cygwin when libsigsegv is present
+       * lib/c-stack.c (die): Don't flatten error if sigsegv is present.
+
+2011-01-24  Bruno Haible  <bruno@clisp.org>
+
+       vma-iter: Avoid empty intervals.
+       * lib/vma-iter.c (vma_iterate) [IRIX, OSF/1]: Don't call the callback
+       on an empty interval.
+
+2011-01-24  Jim Meyering  <meyering@redhat.com>
+
+       u64: remove unnecessary #include
+       * lib/u64.h: Don't include <stddef.h>.  It was not used.
+
 2011-01-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        Allow the user to avoid the GNULIB_TEST_* macros.