Bruno Haible [Sun, 11 Sep 2011 23:41:44 +0000 (01:41 +0200)]
asm-underscore.m4: Support for MSVC.
* m4/asm-underscore.m4 (gl_C_ASM): New macro.
(gl_ASM_SYMBOL_PREFIX): Require it. Use its results.
Reuben Thomas [Sun, 11 Sep 2011 22:36:41 +0000 (23:36 +0100)]
Expand range of versions of glibc for which _GNU_SOURCE is needed to get crypt.
Bruno Haible [Sun, 11 Sep 2011 19:56:17 +0000 (21:56 +0200)]
doc: Update regarding MSVC 9.
* doc/gnulib-intro.texi (Target Platforms): Classify MSVC as "rarely
tested".
* doc/posix-functions/*.texi: Update with info about MSVC 9.
* doc/posix-headers/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
* doc/glibc-headers/*.texi: Likewise.
Bruno Haible [Sun, 11 Sep 2011 19:44:32 +0000 (21:44 +0200)]
unistd et al.: Don't assume <unistd.h> exists.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Don't include <unistd.h> if it
does not exist.
* m4/environ.m4 (gl_ENVIRON): Don't include <unistd.h> if it does not
exist. But include <stdlib.h>.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): If <unistd.h> does not exist,
include <io.h> and <stdlib.h> instead. Don't test symbolink links if
symlink() does not exist.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): If <unistd.h> does not exist,
include <io.h> instead.
* m4/free.m4 (gl_FUNC_FREE): Assume free(NULL) works on native Windows.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): If <unistd.h> does not exist,
include <direct.h> instead.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
* m4/lseek.m4 (gl_FUNC_LSEEK): If <unistd.h> does not exist, include
<io.h> instead.
* m4/rename.m4 (gl_FUNC_RENAME): Assume rename() manages hard links
correctly if the system does not have hard links.
* m4/rmdir.m4 (gl_FUNC_RMDIR): If <unistd.h> does not exist, include
<direct.h> instead.
* m4/unistd_h.m4 (gl_UNISTD_H): If <unistd.h> does not exist, bypass
it when looking for function declarations.
* m4/unlink.m4 (gl_FUNC_UNLINK): If <unistd.h> does not exist, include
<direct.h> and <io.h> instead.
* doc/posix-headers/unistd.texi: More details about MSVC problem.
Bruno Haible [Sun, 11 Sep 2011 19:23:39 +0000 (21:23 +0200)]
strcase: Support for MSVC.
* modules/strcase (Status, Notice): Remove obsoletion mark.
* doc/posix-functions/strcasecmp.texi: Mention MSVC problem.
* doc/posix-functions/strncasecmp.texi: Likewise.
Bruno Haible [Sun, 11 Sep 2011 19:15:40 +0000 (21:15 +0200)]
strings: Don't assume <strings.h> exists.
* lib/strings.in.h: Include <strings.h> only if HAVE_STRINGS_H is 1.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Set HAVE_STRINGS_H.
* modules/strings (Makefile.am): Substitute HAVE_STRINGS_H.
* doc/posix-headers/strings.texi: Mention the MSVC problem.
Bruno Haible [Sun, 11 Sep 2011 19:11:58 +0000 (21:11 +0200)]
dirent: Don't assume <dirent.h> exists.
* lib/dirent.in.h: Include <dirent.h> only if HAVE_DIRENT_H is 1.
* m4/dirent_h.m4 (gl_DIRENT_H): Set HAVE_DIRENT_H.
* modules/dirent (Makefile.am): Substitute HAVE_DIRENT_H.
* doc/posix-headers/dirent.texi: Mention the MSVC problem.
Bruno Haible [Sun, 11 Sep 2011 18:47:03 +0000 (20:47 +0200)]
Fix wint_t on MSVC.
* lib/wchar.in.h (wint_t): On MSVC, override it.
* lib/wctype.in.h (wint_t): Likewise.
* m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Override BITSIZEOF_WINT_T on
MSVC.
* doc/posix-headers/wchar.texi: Mention the problem with wint_t on MSVC.
* doc/posix-headers/wctype.texi: Likewise.
Bruno Haible [Sun, 11 Sep 2011 17:34:44 +0000 (19:34 +0200)]
sys_types: Fix typo.
* lib/sys_types.in.h: Fix typo in comment.
Reported by Paul Eggert.
Karl Berry [Sun, 11 Sep 2011 16:58:28 +0000 (09:58 -0700)]
autoupdate
Bruno Haible [Sun, 11 Sep 2011 16:24:16 +0000 (18:24 +0200)]
Support for MSVC compiler: Ensure size_t gets defined.
* modules/strings (Depends-on): Add 'sys_types'.
* modules/sys_uio (Depends-on): Likewise.
* lib/sys_uio.in.h: Update comment.
Bruno Haible [Sun, 11 Sep 2011 16:20:05 +0000 (18:20 +0200)]
C++ tests for module 'sys_types'.
* modules/sys_types-c++-tests: New file.
* tests/test-sys_types-c++.cc: New file.
Bruno Haible [Sun, 11 Sep 2011 16:17:54 +0000 (18:17 +0200)]
Tests for module 'sys_types'.
* modules/sys_types-tests: New file.
* tests/test-sys_types.c: New file.
Bruno Haible [Sun, 11 Sep 2011 16:14:00 +0000 (18:14 +0200)]
New module 'sys_types'.
* lib/sys_types.in.h: New file.
* m4/sys_types_h.m4: New file.
* modules/sys_types: New file.
* doc/posix-headers/sys_types.texi: Mention the new module and the
size_t problem on MSVC 9.
Bruno Haible [Sun, 11 Sep 2011 15:29:11 +0000 (17:29 +0200)]
Support for MSVC compiler: Avoid division by a literal 0.
* lib/math.in.h (NAN): Define through a function call also on MSVC.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Divide by 'zero' instead of 0.0.
* m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_DIRECTIVE_A,
gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO): Likewise.
(gl_PRINTF_INFINITE_LONG_DOUBLE): Divide by 'zeroL' instead of 0.0L.
* tests/infinity.h: New file.
* tests/nan.h (NaNf, NaNd, NaNl): Define through a function call also
on MSVC.
* tests/test-ceilf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-ceil1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-ceill.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-dprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-floorf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-floor1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-floorl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-fprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-frexp.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-frexpl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-isfinite.c: Include infinity.h.
(test_isfinitef): Use Infinityf.
(test_isfinited): Use Infinityd.
(test_isfinitel): Use Infinityl.
* tests/test-isinf.c: Include infinity.h.
(test_isinff): Use Infinityf.
(test_isinfd): Use Infinityd.
(test_isinfl): Use Infinityl.
* tests/test-isnan.c: Include infinity.h.
(test_float): Use Infinityf.
(test_double): Use Infinityd.
(test_long_double): Use Infinityl.
* tests/test-isnanf.h: Include infinity.h.
(main): Use Infinityf.
* tests/test-isnand.h: Include infinity.h.
(main): Use Infinityd.
* tests/test-isnanl.h: Include infinity.h.
(main): Use Infinityl.
* tests/test-ldexpl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-printf-posix.h: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-roundf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-round1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-roundl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-signbit.c: Include infinity.h.
(test_signbitf): Use Infinityf.
(test_signbitd): Use Infinityd.
(test_signbitl): Use Infinityl.
* tests/test-snprintf-posix.h: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-sprintf-posix.h: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-truncf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-trunc1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-truncl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-vasnprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-vasprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* modules/ceilf-tests (Files): Add tests/infinity.h.
* modules/ceil-tests (Files): Likewise.
* modules/ceill-tests (Files): Likewise.
* modules/dprintf-posix-tests (Files): Likewise.
* modules/floorf-tests (Files): Likewise.
* modules/floor-tests (Files): Likewise.
* modules/floorl-tests (Files): Likewise.
* modules/fprintf-posix-tests (Files): Likewise.
* modules/frexp-tests (Files): Likewise.
* modules/frexp-nolibm-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/frexpl-nolibm-tests (Files): Likewise.
* modules/isfinite-tests (Files): Likewise.
* modules/isinf-tests (Files): Likewise.
* modules/isnan-tests (Files): Likewise.
* modules/isnanf-tests (Files): Likewise.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Likewise.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/printf-posix-tests (Files): Likewise.
* modules/roundf-tests (Files): Likewise.
* modules/round-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/signbit-tests (Files): Likewise.
* modules/snprintf-posix-tests (Files): Likewise.
* modules/sprintf-posix-tests (Files): Likewise.
* modules/truncf-tests (Files): Likewise.
* modules/trunc-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* modules/vasnprintf-posix-tests (Files): Likewise.
* modules/vasprintf-posix-tests (Files): Likewise.
* modules/vdprintf-posix-tests (Files): Likewise.
* modules/vfprintf-posix-tests (Files): Likewise.
* modules/vprintf-posix-tests (Files): Likewise.
* modules/vsnprintf-posix-tests (Files): Likewise.
* modules/vsprintf-posix-tests (Files): Likewise.
* modules/xprintf-posix-tests (Files): Likewise.
Bruno Haible [Sun, 11 Sep 2011 12:14:04 +0000 (14:14 +0200)]
Ensure pid_t gets defined.
* m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_PID_T.
* m4/sched_h.m4 (gl_SCHED_H): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Likewise.
* m4/termios_h.m4 (gl_TERMIOS_H): Likewise.
* m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* tests/test-fcntl-h.c: Check that pid_t is defined.
* tests/test-sched.c: Likewise.
* tests/test-termios.c: Likewise.
* tests/test-time.c: Likewise.
* doc/posix-headers/fcntl.texi: Mention lack of pid_t on MSVC platform.
* doc/posix-headers/signal.texi: Likewise.
* doc/posix-headers/sys_types.texi: Likewise.
* doc/posix-headers/time.texi: Likewise.
Bruno Haible [Sun, 11 Sep 2011 09:56:35 +0000 (11:56 +0200)]
acl: Fix compilation on Solaris 10 (older version).
* lib/file-has-acl.c (acl_ace_nontrivial): Use NEW_ACE_EVERYONE instead
of ACE_EVERYONE.
* lib/set-mode-acl.c (qset_acl): Likewise.
Reported by Christian Jullien <eligis@orange.fr>.
Bruno Haible [Sat, 10 Sep 2011 20:30:20 +0000 (22:30 +0200)]
iconv, unsetenv: Add support for MSVC compiler.
* m4/iconv.m4 (AM_ICONV): Use ISO C declaration syntax on MSVC.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Drop support for K&R C compilers.
Bruno Haible [Sat, 10 Sep 2011 19:18:08 +0000 (21:18 +0200)]
*printf: Add support for MSVC compiler.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): On MSVC, install a handler that
handles the exception caused by the %n directive. When cross-compiling,
guess no on native Windows.
(gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99,
gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1): When snprintf is missing,
emulate it through vsnprintf.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Update comment.
* doc/posix-functions/dprintf.texi: Update documentation regarding
MSVC 9.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.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/glibc-functions/asprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
Bruno Haible [Sat, 10 Sep 2011 18:54:24 +0000 (20:54 +0200)]
nocrash: Add support for native Windows.
* m4/nocrash.m4 (GL_NOCRASH): Avoid a crash also on native Windows.
Bruno Haible [Sat, 10 Sep 2011 09:35:17 +0000 (11:35 +0200)]
absolute-header, include-next: Add support for MSVC compiler.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Require
AC_CANONICAL_HOST. On native Windows, recognize also backslash as
directory separator in #line directives.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): On native Windows,
recognize also backslash as directory separator in #line directives.
Jim Meyering [Thu, 8 Sep 2011 15:30:48 +0000 (17:30 +0200)]
ChangeLog: change each leading sequence of 8 spaces to a TAB
Jim Meyering [Thu, 8 Sep 2011 15:26:05 +0000 (17:26 +0200)]
maint.mk: mark the post-release commit log with "maint: " prefix
* top/maint.mk (emit-commit-log): Add "maint: " prefix to the
one-line commit-log summary.
Bruno Haible [Thu, 8 Sep 2011 09:58:44 +0000 (11:58 +0200)]
Doc about crypt functions.
* doc/posix-functions/crypt.texi: Mention need for _GNU_SOURCE on glibc
systems.
* doc/posix-functions/encrypt.texi: Likewise.
* doc/posix-functions/setkey.texi: Likewise.
Simon Josefsson [Thu, 8 Sep 2011 07:30:13 +0000 (09:30 +0200)]
gc: Fix copyright header.
* lib/gc.h: Fix copyright header.
Bruno Haible [Wed, 7 Sep 2011 22:48:59 +0000 (00:48 +0200)]
pthread: Determine $(LIB_PTHREAD) correctly on OSF/1 5.1.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Use AC_CACHE_CHECK and
AC_LINK_IFELSE instead of AC_SEARCH_LIBS.
Bruno Haible [Wed, 7 Sep 2011 22:03:50 +0000 (00:03 +0200)]
openat: Work around compilation error with OSF/1 5.1 DTK cc.
* lib/fopen.c: Use different syntax for include of <stdio.h>.
* lib/freopen.c: Likewise.
* lib/fstatat.c: Use different syntax for include of <sys/stat.h>.
* lib/lstat.c: Likewise.
* lib/stat.c: Likewise.
* lib/open.c: Use different syntax for include of <fcntl.h>.
* lib/openat.c: Include fcntl.h again, explicitly.
Bruno Haible [Wed, 7 Sep 2011 21:52:31 +0000 (23:52 +0200)]
Revert last commit.
Bruno Haible [Wed, 7 Sep 2011 09:48:23 +0000 (11:48 +0200)]
openat: Work around compilation error with OSF/1 5.1 DTK cc.
* lib/openat.h: Use different syntax for include of <fcntl.h>.
J.T. Conklin [Sun, 4 Sep 2011 21:11:23 +0000 (23:11 +0200)]
parse-datetime: document the newly accepted format
* doc/parse-datetime.texi (Combined date and time of day items):
New section.
Karl Berry [Tue, 6 Sep 2011 13:40:41 +0000 (06:40 -0700)]
autoupdate
Bruno Haible [Tue, 6 Sep 2011 10:05:45 +0000 (12:05 +0200)]
acl: Fix a test failure on newer Solaris 10 with ZFS.
* tests/test-sameacls.c (main): Interpret acl GETACLCNT failure with
ENOSYS as no ACL.
Reported by Jim Meyering.
Bruno Haible [Tue, 6 Sep 2011 09:32:18 +0000 (11:32 +0200)]
acl: Update for AIX >= 5.3 with NFS.
* lib/file-has-acl.c (file_has_acl): Interpret aclx_get failure with
ENOSYS as no ACL.
Bruno Haible [Tue, 6 Sep 2011 09:24:23 +0000 (11:24 +0200)]
acl: Fix a test failure on AIX >= 5.3 with NFS.
* tests/test-sameacls.c (main): Interpret aclx_get failure with ENOSYS
as no ACL.
Bruno Haible [Tue, 6 Sep 2011 08:38:52 +0000 (10:38 +0200)]
acl: Fix a test failure on IRIX 6.5 with NFS.
* lib/acl-internal.h (MODE_INSIDE_ACL): Define to 0 on IRIX.
* lib/set-mode-acl.c (qset_acl): Test !HAVE_ACL_TYPE_EXTENDED instead
of MODE_INSIDE_ACL. If !MODE_INSIDE_ACL, do a chmod_or_fchmod always.
* lib/copy-acl.c (qcopy_acl): Likewise.
Paul Eggert [Tue, 6 Sep 2011 00:40:58 +0000 (17:40 -0700)]
openat: port to AIX 7.1 with large files
AIX 7.1 does a "#define openat open64at" if large files are in use,
so we can't simply #undef openat. Use the orig_openat trick (similar
to orig_open in lib/open.c) to work around the problem. Problem
reported by Kevin Brott for GNU tar, in the thread containing
<http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00032.html>.
* lib/openat.c (__need_system_fcntl_h): Define first.
Include <fcntl.h> and <sys/types.h> before undefining.
(orig_openat) [HAVE_OPENAT]: New inline function.
(openat) [HAVE_OPENAT]: Do not undef.
(rpl_openat): Use orig_openat, not openat.
Joachim Schmitz [Mon, 5 Sep 2011 22:34:33 +0000 (00:34 +0200)]
acl: Avoid errors on NonStop Kernel.
* lib/file-has-acl.c (file_has_acl) [NonStop Kernel]: Ignore ENOSYS and
ENOTSUP errors.
Bruno Haible [Mon, 5 Sep 2011 22:26:07 +0000 (00:26 +0200)]
acl: Clean up Solaris code.
* lib/acl-internal.h: Remove no-op #if.
* lib/file-has-acl.c: Likewise.
* lib/set-mode-acl.c (qset_acl): Remove unused Solaris code.
* lib/copy-acl.c (qcopy_acl): Likewise.
Bruno Haible [Mon, 5 Sep 2011 22:01:24 +0000 (00:01 +0200)]
acl: Fix a bug with NFSv4 ACLs on Solaris 10 (newer version).
* lib/file-has-acl.c (file_has_acl): ACLs with 4..6 ACEs can be
trivial.
Bruno Haible [Mon, 5 Sep 2011 21:45:11 +0000 (23:45 +0200)]
acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version).
* lib/acl-internal.h (acl_nontrivial): Declare also on newer Solaris
10.
* lib/file-has-acl.c (acl_nontrivial): Define also on newer Solaris 10.
(acl_ace_nontrivial): Likewise. Recognize the trivial ACLs with 6 ACEs.
* lib/copy-acl.c (qcopy_acl): On newer Solaris 10, use acl or facl
instead of acl_get, facl_get, acl_set, facl_set.
Bruno Haible [Mon, 5 Sep 2011 09:25:09 +0000 (11:25 +0200)]
copy-file: Try unit tests on more file systems.
* tests/test-copy-file-1.sh: New file.
* tests/test-copy-file-2.sh: New file.
* modules/copy-file-tests (Files): Add them.
(Makefile.am): Add them to TESTS.
Bruno Haible [Mon, 5 Sep 2011 09:23:55 +0000 (11:23 +0200)]
acl: Try unit tests on more file systems.
* tests/test-file-has-acl-1.sh: New file.
* tests/test-file-has-acl-2.sh: New file.
* tests/test-set-mode-acl-1.sh: New file.
* tests/test-set-mode-acl-2.sh: New file.
* tests/test-copy-acl-1.sh: New file.
* tests/test-copy-acl-2.sh: New file.
* modules/acl-tests (Files): Add them.
(Makefile.am): Add them to TESTS.
Bruno Haible [Mon, 5 Sep 2011 00:38:24 +0000 (02:38 +0200)]
acl: Remove unused code in last commit.
Bruno Haible [Sun, 4 Sep 2011 22:44:13 +0000 (00:44 +0200)]
acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version).
* lib/acl-internal.h (ACE_*, NEW_ACE_*): Define also on newer Solaris
10.
(OLD_ALLOW, OLD_DENY): New macros.
(NEW_ACE_ACCESS_ALLOWED_ACE_TYPE): Renamed from
ACE_ACCESS_ALLOWED_ACE_TYPE.
(NEW_ACE_ACCESS_DENIED_ACE_TYPE): Renamed from
ACE_ACCESS_DENIED_ACE_TYPE.
(OLD_ACE_OWNER, OLD_ACE_GROUP, OLD_ACE_OTHER): New macros.
(NEW_ACE_EXECUTE): Fix value.
(NEW_ACE_APPEND_DATA, NEW_ACE_READ_NAMED_ATTRS,
NEW_ACE_WRITE_NAMED_ATTRS, NEW_ACE_DELETE_CHILD,
NEW_ACE_READ_ATTRIBUTES, NEW_ACE_WRITE_ATTRIBUTES, NEW_ACE_DELETE,
NEW_ACE_READ_ACL, NEW_ACE_WRITE_ACL, NEW_ACE_WRITE_OWNER,
NEW_ACE_SYNCHRONIZE): New macros.
* lib/set-mode-acl.c (qset_acl): On newer Solaris 10, use acl or facl
instead of acl_fromtext, acl_set, facl_set.
Fixes a coreutils/tests/cp/perm failure.
Paul Eggert [Sun, 4 Sep 2011 03:17:33 +0000 (20:17 -0700)]
openat: test for fstatat (..., 0) bug
Further testing with tar suggests that fstatat (..., 0)
does not work in general, on AIX 7.1; see
<http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00023.html>.
So, give up entirely on AIX 7.1's fstatat, and fall back on our
replacement fstatat (which is what older AIX releases were using
anyway).
* lib/fstatat.c (fstatat) [HAVE_FSTATAT]: Do not undef. The only
use is now changed to orig_fstatat. This was probably the right
thing to do anyway.
(FSTATAT_AT_FDCWD_0_BROKEN): Remove; no longer used.
(rpl_fstatat) [FSTATAT_ZERO_FLAG_BROKEN]: Remove.
(rpl_fstatat): Simplify, assuming !FSTATAT_ZERO_FLAG_BROKEN.
(AT_FUNC_NAME) [FSTATAT_ZERO_FLAG_BROKEN]: Now rpl_fstatat.
* m4/openat.m4 (gl_FUNC_FSTATAT): Test for the more-general bug
and define FSTATAT_ZERO_FLAG_BROKEN, not FSTATAT_AT_FDCWD_0_BROKEN,
if the bug is found.
Paul Eggert [Sat, 3 Sep 2011 17:03:22 +0000 (10:03 -0700)]
openat: test for fstatat (AT_FDCWD, ..., 0) bug
This tests for another fstatat bug on AIX 7.1:
fstatat (AT_FDCWD, ..., 0) does not work. See
<http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00015.html>.
* lib/fstatat.c (FSTATAT_AT_FDCWD_0_BROKEN)
(LSTAT_FOLLOWS_SLASHED_SYMLINK): Default to 0.
(rpl_fstatat): Adjust so that it works around either (or both)
bugs if present.
* m4/openat.m4 (gl_FUNC_FSTATAT): Test for this fstatat bug.
Karl Berry [Sat, 3 Sep 2011 16:56:26 +0000 (09:56 -0700)]
avoid literal : in index entries
Bruno Haible [Fri, 2 Sep 2011 20:15:45 +0000 (22:15 +0200)]
Allow the user to override the choice of AR, ARFLAGS, RANLIB.
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Don't override the given
values of AR, ARFLAGS, RANLIB.
Reported by John W. Eaton <jwe@gnu.org> for Octave.
Bruno Haible [Fri, 2 Sep 2011 20:00:24 +0000 (22:00 +0200)]
Find 'ar' program that fits with --host argument.
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Use AC_CHECK_TOOL.
Bruno Haible [Fri, 2 Sep 2011 16:27:55 +0000 (18:27 +0200)]
tests: init.sh: Support any non-GNU diff.
* tests/init.sh (compare): If "diff -c" is supported but "diff -u" is
not, use "diff -c". Useful on AIX 6.1, HP-UX 11.31, OSF/1 5.1,
Solaris 8.
Bruno Haible [Fri, 2 Sep 2011 12:13:59 +0000 (14:13 +0200)]
tests: init.sh: work also with any non-GNU diff that supports -u
* tests/init.sh: Relax check for diff -u support.
Rather than checking for GNU diff via --version, simply check
for support for -u itself. Useful at least on OpenBSD 4.9,
AIX 7.1, IRIX 6.5 and Solaris 10.
Bruno Haible [Thu, 1 Sep 2011 23:39:22 +0000 (01:39 +0200)]
strtoimax, strtoumax: Document problem on HP-UX 11.
* doc/posix-functions/strtoimax.texi: Mention HP-UX 11.11 problem.
* doc/posix-functions/strtoumax.texi: Likewise.
Bruno Haible [Thu, 1 Sep 2011 23:36:31 +0000 (01:36 +0200)]
strtoumax: Avoid link error on OSF/1 with DTK cc.
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Always test whether strtoumax is
defined as a function.
* modules/strtoumax (Depends-on, configure.ac): Test only whether
strtoumax is defined, not whether it is declared.
Bruno Haible [Thu, 1 Sep 2011 23:35:53 +0000 (01:35 +0200)]
strtoimax: Avoid link error on OSF/1 with DTK cc.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Always test whether strtoimax is
defined as a function.
* modules/strtoimax (Depends-on, configure.ac): Test only whether
strtoimax is defined, not whether it is declared.
Bruno Haible [Thu, 1 Sep 2011 23:33:11 +0000 (01:33 +0200)]
imaxdiv: Avoid link error on OSF/1 with DTK cc.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Also test whether imaxdiv is defined
as a function.
* modules/imaxdiv (configure.ac): Test whether imaxdiv is defined, not
whether it is declared.
Bruno Haible [Thu, 1 Sep 2011 23:32:05 +0000 (01:32 +0200)]
imaxabs: Avoid link error on OSF/1 with DTK cc.
Bruno Haible [Thu, 1 Sep 2011 22:53:00 +0000 (00:53 +0200)]
Tests for module 'strtoumax'.
* modules/strtoumax-tests: New file.
* tests/test-strtoumax.c: New file.
Bruno Haible [Thu, 1 Sep 2011 22:52:28 +0000 (00:52 +0200)]
Tests for module 'strtoimax'.
* modules/strtoimax-tests: New file.
* tests/test-strtoimax.c: New file.
Bruno Haible [Thu, 1 Sep 2011 22:51:51 +0000 (00:51 +0200)]
Tests for module 'imaxdiv'.
* modules/imaxdiv-tests: New file.
* tests/test-imaxdiv.c: New file.
Bruno Haible [Thu, 1 Sep 2011 22:51:11 +0000 (00:51 +0200)]
Tests for module 'imaxabs'.
* modules/imaxabs-tests: New file.
* tests/test-imaxabs.c: New file.
Bruno Haible [Thu, 1 Sep 2011 21:03:26 +0000 (23:03 +0200)]
pthread: Determine $(LIB_PTHREAD) correctly on IRIX 6.5.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_join, not
pthread_create.
Paul Eggert [Thu, 1 Sep 2011 20:10:42 +0000 (13:10 -0700)]
* lib/fstatat.c: Include <sys/types.h> before <sys/stat.h>.
Paul Eggert [Thu, 1 Sep 2011 19:53:10 +0000 (12:53 -0700)]
openat: work around AIX 7.1 fstatat issue
This should fix the problem that was not properly fixed
in the previous change, dated 2011-08-30.
* lib/fstatat.c: Include <sys/stat.h> twice, the first with
__need_system_stat_h defined.
(orig_fstatat) [HAVE_FSTATAT]: New function.
(rpl_fstatat): Go back to the old way of doing things,
except call orig_fstatat instead of fstatat.
* m4/openat.m4 (gl_FUNC_FSTATAT): Remove unnecessary check for openat.
Remove unnecessary check whether fstatat fills in st_size etc.
Bruno Haible [Thu, 1 Sep 2011 10:15:11 +0000 (12:15 +0200)]
sys_select: Avoid a syntax error regarding timespec_t on IRIX 6.5.
* lib/sys_select.in.h [__sgi]: When included from <sys/bsd_types.h>,
just include the system's header.
Jim Meyering [Wed, 31 Aug 2011 15:47:18 +0000 (17:47 +0200)]
tests: avoid spurious assertion failure in test-float.c on ppc64
* tests/test-float.c (test_long_double): Comment out an assertion,
LDBL_MIN_EXP <= DBL_MIN_EXP, that is failing at least on PowerPC-64
with gcc-4.4.4.
Jim Meyering [Wed, 31 Aug 2011 15:15:35 +0000 (17:15 +0200)]
maint: indent with spaces, not TABs
I need to get in the habit of running gnulib's "make check".
Both of these would have been caught.
* m4/largefile.m4: Indent with spaces, not TABs.
* lib/parse-datetime.y (iso_8601_time): Likewise.
Spotted by Pádraig Brady.
Jim Meyering [Wed, 31 Aug 2011 14:43:29 +0000 (16:43 +0200)]
test-parse-datetime.c: accommodate a relatively strict gcc warning
* tests/test-parse-datetime.c (gmt_offset): Declare function "static",
to avoid a warning from gcc's -Werror=missing-declarations.
Insert a few spaces-before-funcall-parenthesis.
J.T. Conklin [Wed, 17 Aug 2011 23:40:49 +0000 (16:40 -0700)]
parse-datetime: accept ISO 8601 date and time rep with "T" separator
The parser now accepts ISO 8601 date-time strings with "T" as the
separator. It has long parsed dates like "2004-02-29 16:21:42"
with a space between the date and time strings. Now it also parses
"2004-02-29T16:21:42" and fractional-second and time-zone-annotated
variants like "2004-02-29T16:21:42.333-07:00"
* lib/parse-datetime.y: Parse ISO 8601 extended date and time
of day representation using the 'T' separator character.
* doc/parse-datetime.texi (General date syntax): replace use of
deprecated --iso-8601 option with --rfc-3339 in example of date
command output formats that can be parsed.
* tests/test-parse-datetime.c (tm_diff): New function, taken from
lib/parse-datetime.y.
(gmt_offset): New function.
(main): Add additional test cases to validate ISO8601 extended
date and time of day format parsing.
Bruno Haible [Wed, 31 Aug 2011 08:48:02 +0000 (10:48 +0200)]
freopen: Documentation.
* doc/posix-functions/freopen.texi: Document the bug with the NULL file
name.
Reported by Claudio Bley <claudio.bley@gmail.com>.
Claudio Bley [Wed, 31 Aug 2011 08:12:25 +0000 (10:12 +0200)]
freopen: Don't crash if the filename argument is NULL.
* lib/freopen.c (rpl_freopen): Don't compare the filename if it is
NULL.
Paul Eggert [Tue, 30 Aug 2011 23:38:59 +0000 (16:38 -0700)]
openat: work around AIX 7.1 fstatat bug
Problem reported by Kevin Brott for GNU tar, in the thread containing
<http://lists.gnu.org/archive/html/bug-tar/2011-08/msg00015.html>.
* lib/fstatat.c (rpl_fstatat): Do not invoke underlying fstatat if
FSTATAT_ST_SIZE_ETC_BROKEN.
(fstatat) [FSTATAT_ST_SIZE_ETC_BROKEN && HAVE_FSTATAT]: #define to
rpl_fstatat.
* m4/openat.m4 (gl_FUNC_FSTATAT): New macro, with the fstatat-relevant
part of gl_FUNC_OPENAT. Also, check for the AIX 7.1 bug, and use
AC_CHECK_FUNCS_ONCE for fstatat.
(gl_FUNC_OPENAT): Use it. Use AC_CHECK_FUNCS_ONCE for
fchmodat, mkdirat, openat and unlinkat.
Bruno Haible [Tue, 30 Aug 2011 07:57:33 +0000 (09:57 +0200)]
Avoid endless recursions if config.h includes some header files.
* lib/fopen.c (__need_FILE): Define already before including config.h.
* lib/freopen.c (__need_FILE): Likewise.
* lib/open.c (__need_system_fcntl_h): Likewise.
* lib/stat.c (__need_system_sys_stat_h): Likewise.
* lib/lstat.c (__need_system_sys_stat_h): Likewise.
Reported by Michael Goffioul <michael.goffioul@gmail.com>.
Karl Berry [Thu, 25 Aug 2011 22:24:28 +0000 (15:24 -0700)]
autoupdate ylwrap
Karl Berry [Thu, 25 Aug 2011 18:27:14 +0000 (11:27 -0700)]
autoupdate ylwrap
Karl Berry [Tue, 23 Aug 2011 14:06:30 +0000 (07:06 -0700)]
autoupdate
Bruno Haible [Tue, 23 Aug 2011 06:40:27 +0000 (08:40 +0200)]
tmpdir: Use a good default directory on native Windows.
* lib/tmpdir.c: Include <windows.h>, pathmax.h.
(P_tmpdir): Default to _P_tmpdir on native Windows.
(path_search): On native Windows, try the value returned by GetTempPath
before trying P_tmpdir.
* modules/tmpdir (Depends-on): Add pathmax.
Suggested by John Darrington <john@darrington.wattle.id.au>.
Karl Berry [Sat, 20 Aug 2011 13:22:38 +0000 (06:22 -0700)]
autoupdate
Reuben Thomas [Fri, 19 Aug 2011 20:25:35 +0000 (21:25 +0100)]
doc: fix typo in README-release
* top/README-release: Capitalize first word of a sentence.
Jim Meyering [Wed, 17 Aug 2011 08:27:29 +0000 (10:27 +0200)]
fts: do not exhaust memory when processing million-entry directories
Before this change, processing (via rm -rf, find, du, etc.) an N-entry
directory would require about 256*N bytes of memory. Thus, it was
easy to construct a directory too large to be processed by any of
those tools. With this change, fts' maximum memory utilization is
now limited to around 30MB.
* lib/fts.c (FTS_MAX_READDIR_ENTRIES): Define.
(fts_read): When we've processed the final entry (i.e., when
->fts_link is NULL) and fts_dirp is non-NULL, call fts_build
using the parent entry to read any remaining entries. Dispatch
depending on what fts_build returns:
- NULL+stop, aka failure: stop
- NULL otherwise: move up in the dir hierarchy
- non-NULL: handle this new entry
(fts_build): Declare and use new local, continue_readdir.
Prepare to be called from fts_read, when the entries
from a partially-read directory have just been exhausted.
In that case, we'll skip the opendir and instead use the parent's
fts_dirp and derive dir_fd from that.
Finally, in the readdir loop, if we read max_entries entries,
exit the loop ensuring *not* to call closedir. This is required
so that fts_dirp can be reused on a subsequent call.
Prompted by Ben England's report of memory exhaustion in find
and rm -rf vs. NFS: https://bugzilla.redhat.com/719749.
Jim Meyering [Wed, 17 Aug 2011 07:24:06 +0000 (09:24 +0200)]
maint: fts: move decl of `dp' down into while loop; split a long line
* lib/fts.c (fts_build): No semantic change.
Jim Meyering [Wed, 17 Aug 2011 07:20:41 +0000 (09:20 +0200)]
fts: add/use new struct member, fts_dirp
We are about to use this to manage any directory with
too many entries to read all of them into memory at once.
To do that, we'll need to save the DIR* pointer in each
affected FTSENT struct.
* lib/fts_.h: Include <dirent.h>.
(struct FTSENT) [fts_dirp]: New member.
* lib/fts.c (closedir_and_clear): Define.
Use it in place of closedir so that we are sure to
clear the new fts_dirp member when done with it.
(fts_alloc): Initialize the new member.
(fts_lfree): Free, if needed.
Jim Meyering [Tue, 16 Aug 2011 18:20:30 +0000 (20:20 +0200)]
maint: fts: give __opendir2 a new parameter and rename
* lib/fts.c (__opendir2): Give it a new parameter, Pdir_fd, rather
than surreptitiously using sole caller's "dir_fd".
(fts_opendir): Rename from __opendir2.
Jim Meyering [Tue, 16 Aug 2011 18:18:33 +0000 (20:18 +0200)]
maint: fts.c: remove __opendir2's now-unused parameter, oflag
* lib/fts.c (__opendir2): Remove unused parameter, oflag.
Jim Meyering [Tue, 16 Aug 2011 18:17:07 +0000 (20:17 +0200)]
maint: fts.c: correct off-by-one indentation
* lib/fts.c (fts_build): Correct indentation, change style
of a couple of block comments, and bracing style.
Jim Meyering [Tue, 16 Aug 2011 18:11:51 +0000 (20:11 +0200)]
maint: fts.c: move __opendir2 #define "up" out of function body
* lib/fts.c (__opendir2): Move "up". No semantic change.
Jim Meyering [Tue, 16 Aug 2011 18:08:24 +0000 (20:08 +0200)]
maint: fts.c: remove #if-0'd FTS_WHITEOUT code
* lib/fts.c: Remove #if-0'd FTS_WHITEOUT code. It's been #if-0'd
out for a long time and besides was useful only on BSD systems.
Paul Eggert [Thu, 18 Aug 2011 07:46:17 +0000 (00:46 -0700)]
regex: port to Stratus OpenVOS
* lib/regex_internal.h (internal_function) [!_LIBC]: Simply
define to empty, rather than attempting nonportable optimizations.
Problem reported by Paul Green in:
http://lists.gnu.org/archive/html/bug-diffutils/2011-08/msg00047.html
and fix suggested by Eric Blake in:
http://lists.gnu.org/archive/html/bug-gnulib/2011-08/msg00143.html
Eric Blake [Wed, 17 Aug 2011 23:51:47 +0000 (17:51 -0600)]
getcwd: fix test failures on mingw
The GPL getcwd replacement now kicks in for mingw thanks to the
signature check, but does not have to do anything. However,
because the code was not taking an early exit for ERANGE when
a buffer size was given, it instead tried to second-guess
mingw's cwd algorithm, which doesn't work. After fixing that,
the tests still failed, even though mingw getcwd doesn't have
any problems with long paths (since they can't be created in
the first place).
* lib/getcwd.c (__getcwd): Early exit for ERANGE.
* tests/test-getcwd.c (test_abort_bug, test_long_name): Don't fail
test if long directory cannot be created, and allow mingw errno.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 17 Aug 2011 22:14:12 +0000 (16:14 -0600)]
getcwd-lgpl: fix m4 to match relaxed test for BSD
Commit
c6dc8f1 changed test-getcwd-lgpl to allow BSD behavior
where getcwd(NULL,1) allocates the proper size, in addition to
the glibc behavior of allocating exactly one byte then failing
with ERANGE. But the m4 test was still rejecting the former
behavior.
However, merely fixing the test to avoid probing the behavior
would be a regression of commit
8585ce2, since it was the only
reason why rpl_getcwd was being compiled on mingw. Hence, we
have to add a signature check in its place to keep mingw happy.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Relax probe.
(gl_FUNC_GETCWD_SIGNATURE): New macro.
(gl_FUNC_GETCWD_LGPL, gl_FUNC_GETCWD): Use it.
* doc/posix-functions/getcwd.texi (getcwd): Tweak mentions of
signature problem.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 17 Aug 2011 20:13:35 +0000 (14:13 -0600)]
getcwd: fix compilation on mingw64
Mingw 64 added <direct.h> as a place that declared getcwd. It is
a non-standard header, but since we already include it in the
replacement for <sys/stat.h>, we must also include it in the
replacement for <unistd.h> to avoid compilation problems.
* lib/unistd.in.h (includes) [mingw]: Include <direct.h> for
getcwd.
Reported by Marc-André Lureau.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 17 Aug 2011 20:35:00 +0000 (14:35 -0600)]
pipe2: silence compiler warning
Detected when testing pipe2 in isolation on mingw. The fail: label
needs either gnulib O_NONBLOCK emulation, or non-Windows systems.
* lib/pipe2.c (pipe2): Hide label if it is not used.
Signed-off-by: Eric Blake <eblake@redhat.com>
Karl Berry [Tue, 16 Aug 2011 13:35:34 +0000 (06:35 -0700)]
autoupdate
Ben Pfaff [Tue, 16 Aug 2011 05:33:25 +0000 (22:33 -0700)]
relocatable-prog: fix link error
* modules/relocatable-prog (configure.ac) [RELOCATABLE]: Also
invoke AC_LIBOBJ([relocatable]). This invocation was previously
in the gl_RELOCATABLE_LIBRARY macro. That invocation was moved
into modules/relocatable-lib without noticing that
modules/relocatable-prog also invokes gl_RELOCATABLE_LIBRARY and
also needs to build relocatable.c.
Paul Eggert [Fri, 12 Aug 2011 07:18:19 +0000 (00:18 -0700)]
getaddrinfo: fix sh typo in gai_strerrorA decl checking
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix typo in the generated
shell code: it contained a 'break' that was not in a loop.
Apparently the macro assumed that AC_CHECK_DECLS is implemenented
via a shell-language loop; this may have been true in old Autoconf
versions, but it's not true in Autoconf 2.68. I found this bug
when testing coreutils git on Solaris 8, whose shell complains
about the syntax error.
Simon Josefsson [Thu, 11 Aug 2011 22:33:43 +0000 (00:33 +0200)]
base64: Reference latest RFC.
* lib/base64.c: Fix comment to reference RFC 4648.
Suggested by Bruno Haible <bruno@clisp.org> and Gijs van Tulder
<gvtulder@gmail.com>.
Paul Eggert [Thu, 11 Aug 2011 17:48:28 +0000 (10:48 -0700)]
* build-aux/bootstrap (slurp): Remove obsolescent gettext.m4 patch.
Paul Eggert [Thu, 11 Aug 2011 17:46:26 +0000 (10:46 -0700)]
po/Makefile.in.in: fix make -q problem
* build-aux/po/Makefile.in.in (check-macro-version): Remove this
rule, since there's no file named 'check-macro-version' and its
use as a file breaks make -q.
(all): Don't depend on check-macro-version.
(CHECK_MACRO_VERSION): New macro.
(stamp-po): Use it.
Paul Eggert [Thu, 11 Aug 2011 18:20:28 +0000 (11:20 -0700)]
configmake: fix make -q problem
* modules/configmake (configmake.h): Update configmake.h's time stamp
even if the file does not change. Otherwise, 'make -q' fails.
Problem reported by Simon Josefsson in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-08/msg00088.html>.
Jim Meyering [Thu, 11 Aug 2011 12:16:35 +0000 (14:16 +0200)]
git-version-gen: correct the advice in a comment
* build-aux/git-version-gen: Correct comment.
Don't recommend to list .tarball-version in .gitignore.
Paul Eggert [Wed, 10 Aug 2011 19:36:13 +0000 (12:36 -0700)]
base64: fix off-by-one buffer size bug
Problem and (trivial) fix reported by Gijs van Tulder in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-08/msg00083.html>.
* lib/base64.c (base64_decode_alloc_ctx): Allocate one more byte.
* tests/test-base64.c (main): Catch the bug.