getcwd: break fdopendir + save_cwd recursive loop (Bug#13516)
[gnulib.git] / ChangeLog
index 622211e..f5676e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,380 @@
+2013-02-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       getcwd: break fdopendir + save_cwd recursive loop (Bug#13516)
+       Reported for OS X 10.8.2 by Assaf Gordon in
+       <http://bugs.gnu.org/13516>.
+       * lib/getcwd.c (HAVE_OPENAT_SUPPORT): Do not define if
+       !HAVE_OPENAT && !HAVE_FDOPENDIR.
+       * m4/getcwd-abort-bug.m4: Reformat to match test-getcwd.c
+       so that they can be kept in sync more easily.  Avoid PATH_MAX
+       test on the Hurd.  Sync from test-getcwd.c for errno tests after
+       mkdir or chdir failure.
+       * tests/test-getcwd.c (HAVE_OPENAT_SUPPORT): New macro, from
+       lib/getcwd.c.
+       (test_abort_bug): Do not test for the deep directory bug unless we
+       have openat support.  Avoid PATH_MAX test on the Hurd.
+
+       regex-tests, regex: fix bug: memset undeclared
+       * tests/test-regex.c: Don't include regex.h twice.  Include
+       string.h, to declare memset.  Christensen's report also mentioned
+       this issue.
+       * m4/regex.m4 (gl_REGEX): Keep test program more in sync with
+       test-regex.c, to avoid future problems like this.  Remove
+       AC_INCLUDES_DEFAULT.  Include <string.h>.  Don't include <regex.h>
+       twice.
+
+       regex-tests: fix link errors on older Solaris
+       These need to link with @LIBINTL@ to get libintl_gettext.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00003.html>.
+       * modules/regex-tests (test_regex_LDADD): New macro.
+
+2013-01-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex-tests: new module
+       * modules/regex-tests, tests/test-regex.c: New files.
+
+       regex: fix off-by-one error in configure test
+       * m4/regex.m4 (gl_REGEX): Test should return 21, not 20.
+
+2013-01-31  Eric Blake  <eblake@redhat.com>
+
+       regex: avoid infinite configure test
+       * m4/regex.m4 (gl_REGEX): Add an alarm escape hatch.
+
+2013-01-31  Reuben Thomas  <rrt@sc3d.org>
+
+       openpty: fix bug where HAVE_OPENPTY wasn't defined
+       See the thread starting at:
+       http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00185.html
+       * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
+       openpty function exists, not merely when we intend to replace it.
+
+2013-01-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sys_time: port to Solaris 2.6
+       There is a circularity problem on Solaris 2.6, where <time.h> includes
+       <sys/time.h> for struct timespec.  The include nesting is gnulib
+       <time.h>, system <time.h>, gnulib <sys/time.h>, system
+       <sys/time.h>, gnulib <sys/types.h>, system <sys/types.h>, gnulib
+       <sys/select.h>, gnulib <signal.h>, system <sys/signal.h>, system
+       <sys/siginfo.h>; the last, innermost file needs struct
+       timestruc_t, which is defined in <sys/time.h>, which has not been
+       fully parsed.  Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00113.html>.
+       * lib/sys_select.in.h: Treat Solaris 2.6's problem with
+       <sys/time.h> and <sys/types.h> like OSF/1's similar problem.
+       * lib/sys_time.in.h: Redo to resemble sys_select.in.h, which
+       uses split double-inclusion guards.
+
+2013-01-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: test for buffer overrun
+       * m4/regex.m4 (gl_REGEX): Add test case, by Andreas Schwab,
+       for the just-fixed regex bug.
+
+2013-01-29  Andreas Schwab  <schwab@suse.de>
+
+       regex: fix buffer overrun in regexp matcher
+       * lib/regexec.c (extend_buffers): Add parameter min_len.
+       (check_matching): Pass minimum needed length.
+       (clean_state_log_if_needed): Likewise.
+       (get_subexp): Likewise.
+
+2013-01-28  Pádraig Brady  <P@draigBrady.com>
+
+       mountlist: don't consider "devtmpfs" as dummy
+       * lib/mountlist.c (ME_DUMMY_0): Remove "devtmpfs"
+       as there is storage associcated with it.
+
+2013-01-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       futimens-tests, utimens-tests: Depend on gettext.
+       This works around a problem introduced in my 2013-01-12 patch,
+       which added @LIBINTL@ to these modules.
+       * modules/futimens-tests (Depends-on):
+       * modules/utimens-tests (Depends-on): Add gettext.
+
+2013-01-26  Eric Blake  <eblake@redhat.com>
+
+       test-getpeername: fix typo
+       * tests/test-getpeername.c: Fix typo introduced in fd cleanup.
+
+2013-01-20  Bernhard Voelker  <mail@bernhard-voelker.de>
+
+       bootstrap: remove the need for a sorted .gitignore file
+       * build-aux/bootstrap (insert_sorted_if_absent): Adjust and
+       rename to insert_if_absent(), so that we don't need or generate
+       a sorted .gitignore file.  We do require a .gitignore with no
+       existing duplicate entries and enforce that.
+       (sort_patterns): Remove this function as we now use the simpler
+       technigue of inserting blacklist entries at the top of the file,
+       assuming gnulib won't be inserting !whitelist entries.
+
+2013-01-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       readlinkat: don't depend on gl_FUNC_OPENAT
+       * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Don't require gl_FUNC_OPENAT.
+       Perhaps a similar change needs to be made for linkat.m4, mkfifoat.m4,
+       renameat.m4, symlinkat.m4; but one thing at a time.
+
+       statat: new module, split out from fstatat
+       GNU Emacs needs the POSIX-specified fstatat, but not the
+       gnulib-specified statat and lstat.  Split the latter two into a
+       new module 'statat'.
+       * lib/openat.h: Depend on GNULIB_STATAT, not GNULIB_FSTATAT.
+       * lib/openat.h, lib/statat.c (STATAT_INLINE):
+       Rename from FSTATAT_INLINE. All uses changed.
+       * modules/fstatat (Files): Remove lib/statat.c.
+       (gl_MODULE_INDICATOR([fstatat])): Remove.
+       (lib_SOURCES): Remove.
+       (Maintainer): Add self.
+       * modules/statat, modules/statat-tests, tests/test-statat.c: New files.
+       * tests/test-fstatat.c (BASE): Don't define if already defined.
+       (do_stat, do_lstat) [!TEST_STATAT]: Test fstatat instead.
+
+2013-01-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: don't assume fd 99 is closed
+       * tests/test-accept.c, tests/test-accept4.c, tests/test-bind.c:
+       * tests/test-close.c, tests/test-connect.c, tests/test-dprintf.c:
+       * tests/test-dup.c, tests/test-dup2.c, tests/test-faccessat.c:
+       * tests/test-fchdir.c, tests/test-fchmod.c, tests/test-fchmodat.c:
+       * tests/test-fchown.c, tests/test-fchownat.c, tests/test-fclose.c:
+       * tests/test-fdatasync.c, tests/test-fdopen.c, tests/test-fdopendir.c:
+       * tests/test-fflush.c, tests/test-fgetc.c, tests/test-fputc.c:
+       * tests/test-fread.c, tests/test-freopen.c, tests/test-fseeko4.c:
+       * tests/test-fstat.c, tests/test-fstatat.c, tests/test-fsync.c:
+       * tests/test-ftello4.c, tests/test-ftruncate.c, tests/test-futimens.h:
+       * tests/test-fwrite.c, tests/test-getpeername.c:
+       * tests/test-getsockname.c, tests/test-getsockopt.c:
+       * tests/test-grantpt.c, tests/test-ioctl.c, tests/test-isatty.c:
+       * tests/test-linkat.c, tests/test-listen.c, tests/test-lseek.c:
+       * tests/test-mkdirat.c, tests/test-mkfifoat.c, tests/test-openat.c:
+       * tests/test-pread.c, tests/test-pwrite.c, tests/test-read.c:
+       * tests/test-readlinkat.c, tests/test-recv.c, tests/test-recvfrom.c:
+       * tests/test-renameat.c, tests/test-select.h, tests/test-send.c:
+       * tests/test-sendto.c, tests/test-setsockopt.c, tests/test-shutdown.c:
+       * tests/test-symlinkat.c, tests/test-ttyname_r.c:
+       * tests/test-unlinkat.c, tests/test-unlockpt.c:
+       * tests/test-utimensat.c, tests/test-vdprintf.c, tests/test-write.c:
+       Close file descriptor 99, instead of assuming it's already closed.
+
+2013-01-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stpncpy: port to OS X 10.8
+       * lib/stpncpy.c (__stpncpy): Parenthesize name when defining function.
+       Problem reported by Assaf Gordon in <http://bugs.gnu.org/13495>.
+
+2013-01-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       unistd: port to recent mingw
+       * lib/unistd.in.h: Remove special invocation convention for mingw,
+       which breaks for the latest mingw version.  See John W. Eaton in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00100.html>.
+
+       largefile: port better to Mac OS X 10.5
+       This patch is backported from Autoconf git.
+       * m4/largefile.m4 (AC_SYS_LARGEFILE): Use AC_DEFINE, not
+       AH_VERBATIM, to define _DARWIN_USE_64_BIT_INODE, to avoid problems
+       with ino_t size being different for configuration time versus
+       build/run time.  Problem reported by PHO in
+       <http://lists.gnu.org/archive/html/bug-autoconf/2013-01/msg00040.html>.
+
+2013-01-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: clarify -Werror
+       * doc/warnings.texi (warnings): -Werror is not always a bad idea;
+       clarify that it's intended for developers, not for ordinary builds,
+       and mention --enable-gcc-warnings as one possible use.
+
+2013-01-15  Andoni Morales Alastruey  <ylatuya@gmail.com>  (tiny change)
+
+       stdint: fix build with Android's Bionic fox x86
+       * lib/stdint.in.h: fix check to test if included-fixed/sys/types.h
+       was already included as _SSIZE_T_DEFINED_ might also be defined
+       in include/machine/_types.h, which is included by stdio.h
+
+2013-01-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       net_if-tests: port to Solaris 7 + GCC 3.4.6
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00091.html>.
+       * tests/test-net_if.c (ni): Move to next the code that uses it,
+       so that it's declared only if needed.
+
+2013-01-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       net_if-tests: port to older Solaris
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>.
+       * modules/net_if-tests (NET_IF_LIB): New substitution.
+       (test_net_if_LDADD): New makefile macro, which uses NET_IF_LIB.
+       (HAVE_IF_NAMEINDEX): New C macro.
+       * tests/test-net_if.c: Bypass most of the test if !HAVE_IF_NAMEINDEX.
+
+       system-quote-tests: port to older Solaris
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>.
+       * tests/test-system-quote-child.c (fopen, fread): Undef.
+
+       c-xvasprintf etc.: fix link errors on older Solaris
+       These need to link with @LIBINTL@ to get libintl_gettext.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>.
+       * modules/c-xvasprintf-tests (test_c_xvasprintf_LDADD):
+       * modules/readtokens-tests (test_readtokens_LDADD): New macros.
+       * modules/futimens-tests (test_futimens_LDADD):
+       * modules/utimens-tests (test_utimens_LDADD): Add @LIBINTL@.
+
+2013-01-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       locale: port to Solaris 2.6 and 7 + GNU gettext
+       * lib/locale.in.h: Just include_next <locale.h> when
+       being invoked recursively.  This prevents problems on Solaris 2.6 and 7
+       when combining the localename module with GNU gettext 0.18.2.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00084.html>.
+
+2013-01-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdlib: port to Solaris 2.6
+       Also, the code worked on Solaris 7 through 9 only by accident.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00059.html>.
+       * lib/stdlib.in.h: If __need_system_stdlib_h is defined,
+       simply include the system stdlib.h.
+       * lib/getopt.in.h (__need_system_stdlib_h):
+       * lib/pthread.in.h (__need_system_stdlib_h):
+       * lib/unistd.in.h (__need_system_stdlib_h) [!__GLIBC__]:
+       Define when including <stdlib.h>, to avoid problems at least for
+       the pthread case on Solaris 2.6 and 7.  These .h files can get by
+       with the system stdlib.h.
+
+2013-01-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: update main copyright year
+       * doc/gnulib.texi: Update copyright date.
+
+       doc: improve ISO 8601 discussion
+       * doc/parse-datetime.texi (Combined date and time of day items):
+       Specify more carefully what formats are supported and what is
+       done with excess precision.
+
+2013-01-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: avoid small caps
+       * doc/parse-datetime.texi, doc/regex.texi: Don't use small caps;
+       they're more trouble than they're worth.  Suggested by Karl Berry
+       in <http://bugs.gnu.org/13360>.
+
+       regex: conform to strict C
+       * lib/regcomp.c (parse_bracket_exp): Add cast to conform to strict C.
+       From Aharon Robbins.
+
+       gnulib-tool: fix incompatibility with autopoint 0.18.2
+       * gnulib-tool: Don't indent AM_GNU_GETTEXT_VERSION line.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00053.html>.
+
+2013-01-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fprintftime: bring back and reword fwrite comment
+       * lib/strftime.c (cpy) [FPRINTFTIME]: Re-add reworded comment.
+
+       stdio: remove now-unnecessary stdio.c
+       Since stdio.in.h no longer uses inline functions, we no longer
+       need to compile the extern versions.
+       * lib/stdio.c: Remove.
+       * modules/stdio (Files): Remove lib/stdio.c.
+       (lib_SOURCES): Remove.
+
+       unicodeio: depend on stdio, not ignore-value
+       * lib/unicodeio.c: Do not include ignore-value.h.
+       (fwrite_success_callback): Use plain fwrite, not ignore_value + fwrite.
+       * modules/unicodeio (Depends-on): Depend on stdio, not ignore-value.
+
+       fprintftime: depend on stdio, not ignore-value
+       * lib/strftime.c [FPRINTFTIME]: Do not include ignore-value.h.
+       (cpy) [FPRINTFTIME]: Use plain fwrite, not ignore_value of fwrite,
+       since the stdio module arranges to silence that warning now.
+       * modules/fprintftime (Depends-on): Depend on stdio, not ignore-value.
+
+2012-10-04  Simon Josefsson  <simon@josefsson.org>
+
+       stdint-tests: Fix expanded-before-required-warning.
+       * modules/stdint-tests (Depends-on): Use AC_REQUIRE.
+
+2013-01-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fwrite: silence __wur only for older glibc versions
+       * lib/stdio.in.h (fwrite): Limit workaround to glibc 2.4 through 2.15.
+       This will help us remove this workaround some time in the far future.
+
+2013-01-03  Eric Blake  <eblake@redhat.com>
+
+       fwrite: silence __wur without using inline
+       * lib/stdio.in.h (fwrite): Limit warn_unused_result workaround to
+       just gcc, and in a way that avoids inline issues.
+       * modules/stdio (Depends-on): Drop extern-inline.
+
+2013-01-03  Jim Meyering  <jim@meyering.net>
+
+       update-copyright: avoid copyright notice date corruption
+       Given a sequence of copyright year numbers in which the final
+       one was a two-digit number that happened to be a substring of
+       a preceding four-digit year number, we would mistakenly update
+       the substring (from two- to four-digit) rather than the two-digit
+       number at the end, which, combined with the addition of the current
+       4-digit year number would yield two 5-digit year numbers, e.g.,
+       here, it would convert the first "99" to "1999, 2013" rather than
+       the final one:
+         1991, 99
+         11999, 20131, 1999
+       * build-aux/update-copyright: Tighten a regexp.
+       * tests/test-update-copyright.sh: Add a test case to trigger the bug.
+       Reported by Joseph Myers in
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/32281
+
+2013-01-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: omit needless signed-pointer casts
+       * lib/regcomp.c (build_charclass, build_charclass_op):
+       Use char *, not unsigned char *, for class name and extra.
+       The char values are always nonnegative so there's no need to
+       insist on unsigned char * here, and using char * removes the need
+       for casts.  Reported by Aharon Robbins in
+       <http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
+
+       regex: support Gawk, which never uses alloca
+       * lib/regex_internal.h [!_LIBC && !HAVE_ALLOCA]:
+       Do not include in this case.  Gawk doesn't supply a substitute
+       alloca.h and doesn't need one.
+
+       regex: port __libc_lock_define usage to C89
+       * lib/regex_internal.h (__libc_lock_define) [!_LIBC]: Remove.
+       (struct re_dfa_t): Use #ifdef instead.  '__libc_lock_define (, lock)'
+       does not conform to C89, as it has an empty macro argument.
+       Reported by Aharon Robbins in
+       <http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
+
+2013-01-01  Eric Blake  <eblake@redhat.com>
+
+       maint: update all copyright year number ranges
+       Run "make update-copyright".
+
+       version-etc: bump copyright year reported in --version
+       * lib/version-etc.c (COPYRIGHT_YEAR): Update to 2013.
+
+2012-12-31  Eric Blake  <eblake@redhat.com>
+
+       sigprocmask-tests: skip test if pid is unexpectedly large
+       * tests/test-sigprocmask.c (main): Add range check.
+
+       git-version-gen: avoid test -z portability glitch
+       * build-aux/git-version-gen: Prefer portable test spelling, since
+       git-version-gen is run on more than just developer machines.
+
 2012-12-31  Peter Rosin  <peda@lysator.liu.se>  (tiny change)
 
        git-version-gen: add --fallback option to use if git is not present
 2012-12-31  Peter Rosin  <peda@lysator.liu.se>  (tiny change)
 
        git-version-gen: add --fallback option to use if git is not present
 2011-07-06  Erik Faye-Lund  <kusmabite@gmail.com>
 
        poll: do not return 0 on timeout=-1
 2011-07-06  Erik Faye-Lund  <kusmabite@gmail.com>
 
        poll: do not return 0 on timeout=-1
-       * lib/poll.c: Loop with yield if no events occured
+       * lib/poll.c: Loop with yield if no events occurred.
 
 2011-07-06  Eric Blake  <eblake@redhat.com>
 
 
 2011-07-06  Eric Blake  <eblake@redhat.com>
 
        coding: utf-8
        End:
 
        coding: utf-8
        End:
 
-       Copyright (C) 1997-2012 Free Software Foundation, Inc.
+       Copyright (C) 1997-2013 Free Software Foundation, Inc.
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice