Bruno Haible [Thu, 9 Jun 2011 09:35:25 +0000 (11:35 +0200)]
acl tests: Fix compilation error on HP-UX 11.
* tests/test-sameacls.c: Include <sys/acl.h> also on HP-UX.
Bruno Haible [Thu, 9 Jun 2011 09:21:23 +0000 (11:21 +0200)]
rmdir: Avoid test failure on HP-UX 10.20.
* tests/test-rmdir.h (test_rmdir_func): Accept ENOTEMPTY error, like
EEXIST.
Eric Blake [Wed, 8 Jun 2011 14:34:21 +0000 (08:34 -0600)]
perror: fix test on mingw
test-perror2 was tripping up on a known mingw dup2 pitfall.
* modules/perror-tests (Depends-on): Add dup2.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 8 Jun 2011 02:49:04 +0000 (20:49 -0600)]
strerror_r-posix: fix on MacOS
MacOS X 10.5 strerror(0) is "Unknown error: 0", which is not distinguished
from "Unknown error: -1" for out-of-range. Worse, strerror_r(0,,)
is "Undefined error: 0", although strerror_r for all other out-of-range
values matches strerror.
* m4/strerror.m4 (gl_FUNC_STRERROR): Flush out MacOS bug.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Likewise, and fix
logic bug.
* lib/strerror_r.c (strerror_r): Fix the bug.
* lib/strerror.c (strerror): Likewise.
* doc/posix-functions/strerror_r.texi (strerror_r): Document the
problem.
* doc/posix-functions/strerror.texi (strerror): Likewise.
* doc/posix-functions/perror.texi (perror): Likewise.
* tests/test-strerror.c (main): Enhance test.
* tests/test-strerror_r.c (main): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Wed, 8 Jun 2011 11:23:56 +0000 (13:23 +0200)]
gnulib-tool: Better isolation between different gnulib-tool invocations.
* gnulib-tool: New option --witness-c-macro.
(witness_c_macro): New variable.
(func_emit_lib_Makefile_am): If --witness-c-macro was specified, let
AM_CPPFLAGS define it as a C macro.
(func_emit_tests_Makefile_am): Likewise.
(func_import): Store witness_c_macro setting in gnulib-cache.m4 and
read it from there.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_CONDITION): Define through
m4_define, not AC_DEFUN.
(gl_MODULE_INDICATOR_SET_VARIABLE_AUX,
gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR): New macros.
(gl_MODULE_INDICATOR_SET_VARIABLE): Use them.
* modules/arpa_inet (Makefile.am): Use sed expression s/.../.../, not
s|...|...|, to substitute the values of the GNULIB_* module indicator
variables.
* modules/dirent (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
Eric Blake [Wed, 8 Jun 2011 11:12:15 +0000 (05:12 -0600)]
strerror: simplify replacement
Only strerror-override depends on winsock2.h; our strerror.c file
does not. This also fixes mingw strerror_r-posix use of winsock2.h
via strerror-override.
Since we assume C89 which guarantees a declaration for sterror, we
don't need to repeat that check.
* m4/strerror.m4 (gl_PREREQ_STRERROR): Delete.
* modules/strerror (configure.ac): No prereqs needed here...
* modules/strerror-override (configure.ac): ...but this needs it.
(Files): Add file for needed prereq macro.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Wed, 8 Jun 2011 10:27:31 +0000 (12:27 +0200)]
strerror_r-posix: Tweaks.
* m4/strerror.m4 (gl_FUNC_STRERROR): Omit the code that tests
gl_cv_func_strerror_r_works if gl_FUNC_STRERROR_R_WORKS is not present.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Fix AC_CACHE_CHECK
message. Move gl_HEADER_STRING_H_DEFAULTS invocation from here...
(gl_FUNC_STRERROR_R): ... to here.
(gl_PREREQ_STRERROR_R): Test for __xpg_strerror_r.
Eric Blake [Wed, 8 Jun 2011 03:09:01 +0000 (21:09 -0600)]
perror: document fixed bugs
* doc/posix-functions/perror.texi (perror): Document recent
patches.
Signed-off-by: Eric Blake <eblake@redhat.com>
Paul Eggert [Tue, 7 Jun 2011 23:01:33 +0000 (16:01 -0700)]
stat-time: get_stat_birthtime failure is better-defined
* lib/stat-time.h (get_stat_birthtime): If the time is not available,
return a timestamp whose tv_sec and tv_nsec values are both -1.
Previously, the spec said only that the tv_nsec value was negative.
This upward-compatible change simplifies GNU tar a bit.
Eric Blake [Mon, 6 Jun 2011 23:59:01 +0000 (17:59 -0600)]
strerror_r-posix: work around cygwin 1.7.9
Cygwin __xpg_strerror_r clobbers strerror, until cygwin 1.7.10; in
this case, we must replace strerror, but there was nothing in
strerror.m4 finding fault with cygwin's native strerror. Solve
this by splitting strerror_r.m4 into two parts, one for probing
for the strerror_r bug, and one for replacing strerror_r based
on the presence of bugs unrelated to signature issues; that way,
the 'strerror' module in isolation will not replace strerror, but
if strerror_r is in use for any other reason, then the two use
separate buffers.
Note that cygwin's strerror is thread-safe while the gnulib
replacement is not; but this is no worse than any other
platform where strerror is not thread-safe; in a single-threaded
program, the difference is not observable, and in a multi-threaded
program, you really shouldn't be using strerror in the first place.
Also note that this ends up replacing glibc 2.13 strerror as it
deems __xpg_strerror_r broken on that platform, which isn't
technically necessary for strerror, but doesn't hurt too much.
Meanwhile, glibc 2.14 fixed __xpg_strerror_r, and strerror is not
replaced in that scenario.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Split...
(gl_FUNC_STRERROR_R_WORKS): ...into new macro, to detect Cygwin
bug without replacing strerror_r.
* m4/strerror.m4 (gl_FUNC_STRERROR): Replace strerror if
strerror_r is buggy, but without requiring strerror_r compilation.
* doc/posix-functions/strerror_r.texi (strerror_r): Fix docs.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 7 Jun 2011 21:41:20 +0000 (15:41 -0600)]
test-perror: relax test to ignore cygwin bug
glibc was not the only platform where fprintf(fopen(,"r"))
fails to detect errors; cygwin 1.7.9 is another culprit
(although it will be fixed for 1.7.10), and I suspect that
several other platforms were failing perror2 for the same
reason.
At this point, there are so many functions affected, and
the way to avoid the bug is easy enough (don't pass bogus
streams to output-producing functions), that I'm not worried
about fixing things other than to document them.
* tests/test-perror2.c (main): Relax test on requiring detection
of stream errors, and use unbuffered stream.
* doc/posix-functions/dprintf.texi (dprintf): Document bug.
* doc/posix-functions/fprintf.texi (fprintf): Likewise.
* doc/posix-functions/fputc.texi (fputc): Likewise.
* doc/posix-functions/fputs.texi (fputs): Likewise.
* doc/posix-functions/fputws.texi (fputws): Likewise.
* doc/posix-functions/fwprintf.texi (fwprintf): Likewise.
* doc/posix-functions/fwrite.texi (fwrite): Likewise.
* doc/posix-functions/getopt.texi (getopt): Likewise.
* doc/posix-functions/perror.texi (perror): Likewise.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/psiginfo.texi (psiginfo): Likewise.
* doc/posix-functions/psignal.texi (psignal): Likewise.
* doc/posix-functions/putc.texi (putc): Likewise.
* doc/posix-functions/putc_unlocked.texi (putc_unlocked):
Likewise.
* doc/posix-functions/putchar.texi (putchar): Likewise.
* doc/posix-functions/putchar_unlocked.texi (putchar_unlocked):
Likewise.
* doc/posix-functions/puts.texi (puts): Likewise.
* doc/posix-functions/putwc.texi (putwc): Likewise.
* doc/posix-functions/putwchar.texi (putwchar): Likewise.
* doc/posix-functions/vdprintf.texi (vdprintf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
* doc/posix-functions/vwprintf.texi (vwprintf): Likewise.
* doc/posix-functions/wordexp.texi (wordexp): Likewise.
* doc/posix-functions/wprintf.texi (wprintf): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Sun, 22 May 2011 11:19:32 +0000 (13:19 +0200)]
strerror: Move AC_LIBOBJ invocations to module description.
* m4/strerror.m4 (gl_FUNC_STRERROR): Move AC_LIBOBJ and
gl_PREREQ_STRERROR invocations from here...
* modules/strerror (configure.ac): ... to here.
Bruno Haible [Sat, 21 May 2011 14:51:40 +0000 (16:51 +0200)]
perror: Use common idiom.
* modules/perror (configure.ac): Reorder statements.
Karl Berry [Tue, 7 Jun 2011 22:41:22 +0000 (15:41 -0700)]
autoupdate
Stefano Lattarini [Tue, 7 Jun 2011 11:55:57 +0000 (13:55 +0200)]
tests: fix usage message in 'mktempd_'
* tests/init.sh (mktempd_): In the usage message, use literal
'mktempd_', not '$ME' (which is even undefined), as the name of
the subroutine.
Stefano Lattarini [Tue, 7 Jun 2011 11:27:00 +0000 (13:27 +0200)]
tests init: new function 'fatal_', for hard errors
Before this patch, the only way offered by tests/init.sh to
properly signal a hard error was the `framework_failure_'
function. But the error message issued by that function,
as its name would suggest, refers to a set-up failure in the
testsuite, while hard errors can obviously also be due to
other reasons. The best way to fix this inconsistency is to
introduce a new function with a more general error message.
* tests/init.sh (fatal_): New function.
Karl Berry [Tue, 7 Jun 2011 12:53:38 +0000 (05:53 -0700)]
doc/lgpl-2.1.texi
Eric Blake [Mon, 6 Jun 2011 23:16:18 +0000 (17:16 -0600)]
canonicalize-lgpl: use common idiom
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Prefer older rm -rf
over newer POSIX -Rf.
Reported by Bruno Haible.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Mon, 6 Jun 2011 22:17:50 +0000 (16:17 -0600)]
canonicalize-lgpl: work around AIX realpath bug
AIX 7.1 realpath() gets horribly confused by consecutive /
in the name to be resolved.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Expose AIX bug.
* doc/posix-functions/realpath.texi (realpath): Document it.
Reported by Bruno Haible.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Mon, 6 Jun 2011 21:16:26 +0000 (15:16 -0600)]
strerror: work around FreeBSD bug
Breaking strerror away from strerror_r re-exposed the FreeBSD
strerror(0) bug.
* lib/strerror.c (strerror): Special case 0.
Reported by Bruno Haible.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Mon, 6 Jun 2011 21:11:04 +0000 (15:11 -0600)]
strerror-override: avoid bloating errno module
* modules/errno (Files, configure.ac): Move replacement strings...
* modules/strerror-override: ...to new module.
* modules/strerror (Depends-on): Add strerror-override.
* modules/strerror_r-posix (Depends-on): Likewise.
* MODULES.html.sh: Document new module.
Reported by Bruno Haible.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Mon, 6 Jun 2011 20:39:19 +0000 (22:39 +0200)]
Typo in recent ChangeLog entry.
Bruno Haible [Mon, 6 Jun 2011 09:42:17 +0000 (11:42 +0200)]
spawn-pipe tests: Rename program.
* tests/test-spawn-pipe-main.c: Renamed from tests/test-spawn-pipe.c.
* tests/test-spawn-pipe-child.c: Update comment.
* tests/test-spawn-pipe.sh: Update.
* modules/spawn-pipe-tests (Files, Makefile.am): Update.
Bruno Haible [Mon, 6 Jun 2011 09:38:40 +0000 (11:38 +0200)]
spawn-pipe tests: Like the child program only against libc.
* tests/test-spawn-pipe-child.c: New file, extracted from
tests/test-spawn-pipe.c.
(main): Expect only one argument.
(is_open): New function, copied from tests/test-pipe.c.
* tests/test-spawn-pipe.c: Don't include <errno.h>.
(child_main): Remove function.
(test_pipe): Pass only one argument to the child program.
(main): Remove child process code. Expect the child program's name as
first argument.
* tests/test-spawn-pipe.sh: Pass the child program's name as first
argument.
* modules/spawn-pipe-tests (Files): Add tests/test-spawn-pipe-child.c.
(Makefile.am): Add test-spawn-pipe-child to check_PROGRAMS. Link
test-spawn-pipe-child against no libraries.
Bruno Haible [Mon, 6 Jun 2011 09:01:52 +0000 (11:01 +0200)]
careadlinkat: Avoid mismatch between ssize_t and int.
* lib/careadlinkat.h (careadlinkatcwd): Declare as a function always.
* lib/careadlinkat.c (careadlinkatcwd): Define always.
Jim Meyering [Sun, 24 Apr 2011 17:00:18 +0000 (19:00 +0200)]
gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
* m4/gnulib-common.m4 (gl_COMMON): Emit definitions of
_GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE.
Bruno Haible [Sun, 5 Jun 2011 22:29:58 +0000 (00:29 +0200)]
ansi-c++-opt: Interoperability with libtool.
* m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): When a C++ compiler is not found,
set the variable to "no", not to ":".
* NEWS: Mention the change.
Bruno Haible [Sun, 5 Jun 2011 18:08:15 +0000 (20:08 +0200)]
acl: Fix test failure on AIX 7.
* tests/test-sameacls.c (main) [AIX]: Fix aclx_printStr invocation.
Based on a patch by Jørn Amundsen <Jorn.Amundsen@ntnu.no>.
Bruno Haible [Sun, 5 Jun 2011 17:15:25 +0000 (19:15 +0200)]
pipe-filter-ii: Fix test failure on AIX and IRIX.
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): When write() fails
with EAGAIN, retry with a smaller buffer size.
Bruno Haible [Sun, 5 Jun 2011 14:18:23 +0000 (16:18 +0200)]
localename: Fix link dependencies.
* modules/localename (Link): Mention $(LIBTHREAD) or $(LTLIBTHREAD).
* modules/localename-tests (Makefile.am): Link test-localename with
$(LIBTHREAD).
Bruno Haible [Sun, 5 Jun 2011 12:57:16 +0000 (14:57 +0200)]
error: Avoid gcc warning.
* lib/error.c (strerror_r): Declare also when its return type is 'int'.
Bruno Haible [Sun, 5 Jun 2011 12:32:56 +0000 (14:32 +0200)]
unsetenv: Avoid gcc warning.
* lib/unsetenv.c (unsetenv): Provide declaration if system lacks it.
Bruno Haible [Sun, 5 Jun 2011 12:31:51 +0000 (14:31 +0200)]
setenv: Avoid gcc warning.
* lib/setenv.c (setenv): Provide declaration if system lacks it.
Bruno Haible [Sun, 5 Jun 2011 12:20:16 +0000 (14:20 +0200)]
sys_select: Ensure memset is declared also on AIX 7.
* lib/sys_select.in.h: Include <string.h> also on AIX.
* doc/posix-headers/sys_select.texi: Mention that <sys/select.h> is not
self-contained also on AIX 7.1.
Jim Meyering [Sat, 4 Jun 2011 17:56:58 +0000 (19:56 +0200)]
maint.mk: sc_unmarked_diagnostics: don't hard-code "error"
* top/maint.mk (sc_unmarked_diagnostics): Don't hard-code the
function name, "error".
(_gl_translatable_diag_func_re): New configurable variable.
Bruno Haible [Sat, 4 Jun 2011 13:32:18 +0000 (15:32 +0200)]
getopt: Avoid gcc warning.
* lib/getopt.c (_getopt_internal_r): Remove unused variable 'ambig'.
Bruno Haible [Sat, 4 Jun 2011 11:01:55 +0000 (13:01 +0200)]
strerror_r: Fix comments.
* lib/strerror_r.c (strerror_r): Update comments after 2011-06-01
commit.
Bruno Haible [Sat, 4 Jun 2011 10:54:38 +0000 (12:54 +0200)]
perror: Fix compilation error.
* lib/perror.c: Don't include intprops.h, verify.h, strerror-impl.h.
Undefine fprintf, not sprintf.
* modules/perror (Depends-on): Remove intprops, verify.
Bruno Haible [Sat, 4 Jun 2011 10:07:57 +0000 (12:07 +0200)]
setlocale: Enable replacement on Cygwin 1.5.
* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set REPLACE_SETLOCALE also on
Cygwin 1.5.x.
* doc/posix-functions/setlocale.texi: Mention that the problem with the
LC_CTYPE category also exists on Cygwin 1.5.x.
Bruno Haible [Sat, 4 Jun 2011 09:11:44 +0000 (11:11 +0200)]
strerror-override: Don't disable symbol renamings.
* lib/strerror-override.h: Include errno.h and stddef.h, not string.h.
* lib/strerror-override.c: Include config.h.
(strerror_override): Don't undefine.
Bruno Haible [Fri, 3 Jun 2011 12:21:08 +0000 (14:21 +0200)]
Copyright: Use LGPL 2.1 instead of LGPL 2.0.
* lib/localename.h: Update copyright header.
* lib/localename.c: Likewise.
* lib/relocatable.h: Likewise.
* lib/relocatable.c: Likewise.
Bruno Haible [Thu, 2 Jun 2011 23:45:23 +0000 (01:45 +0200)]
doc: Fix a module name.
* doc/posix-functions/open.texi: Fix module name 'nonblocking'.
Bruno Haible [Thu, 2 Jun 2011 22:10:00 +0000 (00:10 +0200)]
pipe2: Remove dependency on 'nonblocking' module.
* lib/pipe2.c: Include verify.h. Include nonblocking.h only if
O_NONBLOCK is defined by gnulib.
(pipe2) [WIN32]: If O_NONBLOCK is not defined by gnulib, verify that it
is zero.
* modules/pipe2 (Depends-on): Add verify. Remove nonblocking.
* tests/test-pipe2.c: Include nonblocking.h only if O_NONBLOCK is
defined by gnulib.
(get_nonblocking_flag): New function.
(main): Test O_NONBLOCK flag only if it is nonzero.
Jim Meyering [Fri, 3 Jun 2011 15:35:07 +0000 (17:35 +0200)]
maint.mk: add three prohibit-header-without-use rules
Prohibit use of cloexec.h, posixver.h, same.h without use.
* top/maint.mk (sc_prohibit_cloexec_without_use): New rule.
(sc_prohibit_posixver_without_use): Likewise.
(sc_prohibit_same_without_use): Likewise.
Paul Eggert [Thu, 2 Jun 2011 08:15:18 +0000 (01:15 -0700)]
allocator: 'die' routine is now given requested size
* lib/allocator.h (struct allocator.die): New size arg.
* lib/careadlinkat.c (careadlinkat): Pass size to 'die' function.
If the actual problem is an ssize_t limitation, not a size_t or
malloc failure, fail with errno==ENAMETOOLONG instead of calling 'die'.
Eric Blake [Tue, 24 May 2011 21:33:49 +0000 (15:33 -0600)]
strerror: drop strerror_r dependency
Since the errno module is responsible for introducing replacement
errno values, it should also be responsible for translating those
new values into strings. And by moving the replacements into a
file managed by the errno, we can then break the dependency between
strerror and strerror_r, so that strerror no longer drags in
multi-threading modules required by strerror_r.
Tested on glibc with:
gl_cv_header_errno_h_complete=no gl_cv_func_working_strerror=no \
gl_cv_func_strerror_r_works=no ./gnulib-tool --with-tests \
--test strerror strerror_r-posix
* lib/strerror_r.c (strerror_r): Move gnulib replacement strings...
* lib/strerror-override.c (strerror_override): ...to new file.
* lib/strerror-override.h: Add prototype.
* lib/strerror-impl.h: Delete.
* lib/strerror.c (strerror): New implementation.
* modules/errno (Files): Add new files.
(configure.ac): Compile new file as appropriate.
* modules/strerror (Files): Drop unused file.
(Depends-on): Drop strerror_r-posix.
* MODULES.html.sh: Document strerror_r-posix.
Requested by Sam Steingold.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 24 May 2011 20:27:04 +0000 (14:27 -0600)]
perror: call strerror_r directly
No need to make a wrapper that burns static storage when we can
just use stack storage.
* modules/perror (Files): Drop strerror-impl.h.
* lib/perror.c (perror): Use our own stack buffer, rather than
calling a wrapper that uses static storage.
* doc/posix-functions/perror.texi (perror): Document a limitation
of our replacement.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 1 Jun 2011 14:14:34 +0000 (08:14 -0600)]
strerror_r: fix includes for FreeBSD
* lib/strerror_r.c (includes): Use <stdlib.h> unconditionally,
since we use abort on some platforms.
Reported by Matthias Bolte.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Tue, 31 May 2011 21:31:26 +0000 (23:31 +0200)]
Fix link errors in tests: openat-die uses gettext-h.
* modules/areadlinkat-tests (Makefile.am): Link test-areadlinkat
against $(LIBINTL).
* modules/dirent-safer-tests (Makefile.am): Link test-dirent-safer
against $(LIBINTL).
* modules/fdopendir-tests (Makefile.am): Link test-fdopendir against
$(LIBINTL).
* modules/fdutimensat-tests (Makefile.am): Link test-fdutimensat
against $(LIBINTL).
* modules/linkat-tests (Makefile.am): Link test-linkat against
$(LIBINTL).
* modules/mkfifoat-tests (Makefile.am): Link test-mkfifoat against
$(LIBINTL).
* modules/openat-safer-tests (Makefile.am): Link test-openat-safer
against $(LIBINTL).
* modules/openat-tests (Makefile.am): Link test-fchownat, test-fstatat,
test-mkdirat, test-openat, test-unlinkat against $(LIBINTL).
* modules/readlinkat-tests (Makefile.am): Link test-readlinkat against
$(LIBINTL).
* modules/symlinkat-tests (Makefile.am): Link test-symlinkat against
$(LIBINTL).
* modules/utimensat-tests (Makefile.am): Link test-utimensat against
$(LIBINTL).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
Karl Berry [Tue, 31 May 2011 13:19:28 +0000 (06:19 -0700)]
build-aux/config.sub
Bruno Haible [Mon, 30 May 2011 22:44:51 +0000 (00:44 +0200)]
Fix link errors in tests: wait-process uses gettext-h.
* modules/nonblocking-pipe-tests (Makefile.am): Set
test_nonblocking_pipe_main_LDADD.
* modules/nonblocking-socket-tests (Makefile.am): Link
test-nonblocking-socket-main against $(LIBINTL).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
Paul Eggert [Sun, 29 May 2011 21:31:22 +0000 (14:31 -0700)]
* modules/assert-h (assert.h): Substitute the symbol-prefix more consistently.
Paul Eggert [Sun, 29 May 2011 21:30:36 +0000 (14:30 -0700)]
assert-h: work around 'verify' incompatibility
* lib/verify.h: Use @...@ directives, not ifdef.
* modules/assert-h (assert.h): Implement the directives.
Jim Meyering [Sun, 29 May 2011 21:15:36 +0000 (23:15 +0200)]
trim: remove three superfluous assignments
* lib/trim.c (trim2): Remove three superfluous assignments
and correct brace positioning.
Bruno Haible [Sat, 28 May 2011 18:58:14 +0000 (20:58 +0200)]
wctype-h: Avoid namespace pollution on Solaris 2.6.
* lib/wctype.in.h: On Solaris, undefine 'multibyte' and a few other
identifiers.
* doc/posix-headers/wctype.texi: Mention the problem.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
Jim Meyering [Sat, 28 May 2011 18:58:14 +0000 (20:58 +0200)]
parse-datetime.y: accommodate -Wstrict-overflow
* lib/parse-datetime.y (yylex): Rearrange pointer arithmetic to
placate -Wstrict-overflow.
Jim Meyering [Sat, 28 May 2011 14:00:20 +0000 (16:00 +0200)]
trim: avoid a warning from -O2 -Wstrict-overflow
* lib/trim.c (trim2): Declare local to be "unsigned int", not "int".
Bruno Haible [Sun, 29 May 2011 14:02:32 +0000 (16:02 +0200)]
gnulib-tool: Fix bug in yesterday's commit.
* gnulib-tool (func_create_testdir): Don't add gltests to $subdirs
twice.
Bruno Haible [Sun, 29 May 2011 13:44:42 +0000 (15:44 +0200)]
Allow multiple gnulib generated include files to be combined.
* gnulib-tool (func_compute_include_guard_prefix): New function.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Resolve also
${gl_include_guard_prefix} references.
(func_import, func_create_testdir): Invoke
func_compute_include_guard_prefix.
* lib/arpa_inet.in.h: Use the @GUARD_PREFIX@ placeholder.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/errno.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/float.in.h: Likewise.
* lib/getopt.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/netinet_in.in.h: Likewise.
* lib/poll.in.h: Likewise.
* lib/pthread.in.h: Likewise.
* lib/pty.in.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/se-selinux.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stddef.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_uio.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/sys_wait.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/termios.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
* modules/arpa_inet (Makefile.am): Substitute @GUARD_PREFIX@.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/errno (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/netinet_in (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pthread (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/selinux-h (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_uio (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype-h (Makefile.am): Likewise.
* modules/assert-h (Makefile.am): Replace _GL_VERIFY_H specially.
Bruno Haible [Sun, 29 May 2011 13:38:41 +0000 (15:38 +0200)]
assert-h: Allow multiple gnulib generated replacements to coexist.
* lib/verify.h (struct _gl_verify_type): Avoid identical redefinition.
Bruno Haible [Sun, 29 May 2011 12:57:40 +0000 (14:57 +0200)]
argp: Allow coexistence with strerror_r-posix module.
* lib/argp-help.c (__argp_failure): If strerror_r is defined as a macro
(either to __xpg_strerror_r by glibc's <string.h> or to rpl_strerror_r
by gnulib's <string.h> replacement), assume it has the POSIX signature,
not the glibc signature.
Bruno Haible [Sun, 29 May 2011 11:00:39 +0000 (13:00 +0200)]
Status of work-in-progress around libposix.
Bruno Haible [Sat, 28 May 2011 23:24:28 +0000 (01:24 +0200)]
gnulib-tool: Alternative structure of testdirs, similar to --import.
* gnulib-tool: New option --single-configure.
(func_usage): Document it.
(single_configure): New variable.
(func_modules_transitive_closure_separately,
func_modules_transitive_closure_separately,
func_determine_use_libtests, func_modules_add_dummy_separately,
func_modules_to_filelist_separately): New functions, extracted from
func_import.
(func_emit_tests_Makefile_am): Handle $single_configure = true case.
(func_import): Use the new functions.
(func_create_testdir): Set final_modules. Handle $single_configure =
true case.
Bruno Haible [Sat, 28 May 2011 20:06:11 +0000 (22:06 +0200)]
getloadavg: Remove an unreliable safety check.
* m4/getloadavg.m4 (gl_GETLOADAVG): Drop argument. Remove test whether
getloadavg.c is in place.
* modules/getloadavg (configure.ac): Drop argument of gl_GETLOADAVG.
Reported by Sam Steingold <sds@gnu.org>.
Bruno Haible [Sat, 28 May 2011 15:24:00 +0000 (17:24 +0200)]
doc: Cleanup yet another file produced by texinfo.tex.
* doc/Makefile (mostlyclean): Remove also gnulib.cn.
Bruno Haible [Sat, 28 May 2011 15:08:17 +0000 (17:08 +0200)]
Finish the conditional dependencies mechanism.
* gnulib-tool: New option --no-conditional-dependencies.
(func_usage): Document it. Don't mark --conditional-dependencies as
experimental.
(cond_dependencies): The possible values can now be true, false, empty.
(func_modules_transitive_closure, func_emit_autoconf_snippets): Update.
(func_import): Store setting in gnulib-cache.m4 and read it from there.
* doc/gnulib-tool.texi (Conditional dependencies): New section.
Bruno Haible [Sat, 28 May 2011 14:47:00 +0000 (16:47 +0200)]
doc: Use a recent texinfo.tex.
* doc/Makefile (tex_opts): New variable.
(%.dvi, %.pdf): Pass it to texi2dvi and texi2pdf.
Jim Meyering [Sat, 28 May 2011 11:45:12 +0000 (13:45 +0200)]
intprops.h: adjust another comment to match code change
* lib/intprops.h (_GL_INT_SIGNED): Now, E may have side effects.
Jim Meyering [Sat, 28 May 2011 10:34:08 +0000 (12:34 +0200)]
intprops.h: adjust comment to match code change
* lib/intprops.h (_GL_INT_CONVERT): Adjust comment: now that E is used
only once, it *may* have side effects. Also fix an unrelated typo.
Simon Josefsson [Thu, 26 May 2011 21:32:02 +0000 (23:32 +0200)]
gen-uni-tables: Say "gen-uni-tables.c" consistently.
* lib/gen-uni-tables.c: Say "gen-uni-tables.c" consistently.
Bruno Haible [Thu, 26 May 2011 10:28:51 +0000 (12:28 +0200)]
mbsrchr: Avoid collision with system function on Interix.
* lib/string.in.h (mbsrchr): Define as rpl_mbsrchr also on Interix.
Reported by Markus Duft <mduft@gentoo.org>.
James Youngman [Thu, 26 May 2011 00:45:13 +0000 (01:45 +0100)]
getopt: for ambiguous options, enumerate the possibilities.
* lib/getopt.c (_getopt_internal_r): Merge glibc change printing
the ambiguous options when an ambiguous prefix is given. This was
http://sourceware.org/bugzilla/show_bug.cgi?id=7101. The merged
glibc change was
http://sourceware.org/git/?p=glibc.git;a=commit;h=
bd25564e1e98910ed69043ed6a6f884ce60e5780.
Eric Blake [Wed, 25 May 2011 21:15:14 +0000 (15:15 -0600)]
getcwd: work around mingw bug
mingw getcwd(buf, 0) fails with ERANGE, instead of the required
EINVAL. Since we're already replacing getcwd on mingw, the
workaround is trivial.
* lib/getcwd-lgpl.c (rpl_getcwd): Guarantee correct error.
* doc/posix-functions/getcwd.texi (getcwd): Document it.
Reported by Matthias Bolte.
Signed-off-by: Eric Blake <eblake@redhat.com>
Paul Eggert [Tue, 24 May 2011 23:47:01 +0000 (16:47 -0700)]
test-intprops: disable -Wtype-limits diagnostics
* tests/test-intprops.c: Use a pragma to ignore -Wtype-limits
diagnostics. Otherwise, the integer overflow macros generate many
diagnostics. Reported by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.
Paul Eggert [Tue, 24 May 2011 23:45:14 +0000 (16:45 -0700)]
intprops: shorten, to pacify gcc -Woverlength-strings
* lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT):
(_GL_BINARY_OP_OVERFLOW): Say "0 * (x)" rather than "(x) - (x)",
so that, for example, verify (INT_MULTIPLY_OVERFLOW (...)) is less
likely to run afoul of C compiler limits for string constant lengths.
See <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.
Eric Blake [Tue, 24 May 2011 23:33:39 +0000 (17:33 -0600)]
docs: document recently fixed glibc printf bug
Document it as a known bug, but one where we don't provide a
workaround since programmers are unlikely to hit it in practice.
* doc/posix-functions/fprintf.texi (fprintf): Document it.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 24 May 2011 23:16:00 +0000 (17:16 -0600)]
closein-tests: convert to init.sh
* modules/closein-tests (Files): Add init.sh
* tests/test-closein.sh Use it.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 24 May 2011 22:54:17 +0000 (16:54 -0600)]
yesno-tests: convert to init.sh
* modules/yesno-tests (Files): Add init.sh.
* tests/test-yesno.sh: Use it.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 24 May 2011 22:42:37 +0000 (16:42 -0600)]
atexit-tests: ensure reliable exit status
This was the only remaining init.sh client that didn't properly
use the 'Exit' function.
* tests/test-atexit.sh: Prefer 'Exit' over 'exit'.
Reported by Bruno Haible.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Tue, 24 May 2011 22:59:48 +0000 (00:59 +0200)]
strerror_r-posix: Respect rules for use of AC_LIBOBJ.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move AC_LIBOBJ and
gl_PREREQ_STRERROR_R invocations from here...
* modules/strerror_r-posix (configure.ac): ... to here.
Eric Blake [Tue, 24 May 2011 20:30:38 +0000 (14:30 -0600)]
strerror_r: fix missing header
snprintf is not guaranteed to work without a declaration.
* lib/strerror_r.c: Avoid compiler warning about snprintf.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 24 May 2011 03:37:11 +0000 (21:37 -0600)]
strerror_r: fix AIX test failures
Already documented as an AIX limitation.
* lib/strerror_r.c (strerror_r): Convert silent truncation to
ERANGE failure.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 24 May 2011 03:05:07 +0000 (21:05 -0600)]
strerror_r: fix Solaris test failures
Solaris 10 populates buf on EINVAL, but not on ERANGE.
* lib/strerror_r.c (strerror_r): Partially populate buf on ERANGE
failures.
* doc/posix-functions/strerror_r.texi (strerror_r): Document this.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 18 May 2011 21:19:51 +0000 (15:19 -0600)]
strerror_r: enforce POSIX recommendations
POSIX recommends (but does not require) that strerror_r populate
buf even on error. But since we guarantee this behavior for
strerror, we might as well also guarantee it for strerror_r.
* lib/strerror_r.c (safe_copy): New helper method.
(strerror_r): Guarantee a non-empty string.
* tests/test-strerror_r.c (main): Enhance tests to incorporate
recent POSIX rulings and to match our strerror guarantees.
* doc/posix-functions/strerror_r.texi (strerror_r): Document this.
Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering [Tue, 24 May 2011 19:28:46 +0000 (21:28 +0200)]
test-perror2.c: avoid warning about unused variable
* tests/test-perror2.c (main): Remove declaration of unused "fp".
Eric Blake [Tue, 24 May 2011 16:14:52 +0000 (10:14 -0600)]
perror: avoid spurious test failure on HP-UX
The previous command has non-zero status. Even though 'exit 0'
is supposed to ignore prior status, HP-UX /bin/sh favors the
prior status if an exit trap is installed.
* tests/test-perror.sh: Use Exit to avoid wrong exit status.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 24 May 2011 16:04:46 +0000 (10:04 -0600)]
tests: fix logic bug in init.sh
If the shell test loop first finds a marginal then a good shell, the
variable $gl_set_x_corrupts_stderr is still set to true and needlessly
drops $VERBOSE logging.
* tests/init.sh: (gl_set_x_corrupts_stderr_): Clear for successful
shell.
Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering [Tue, 24 May 2011 16:24:24 +0000 (18:24 +0200)]
utimensat: do not reference an out-of-scope buffer
Otherwise, with __linux__ defined, "times" would point to a buffer, "ts"
declared in an inner scope, yet "times" would be dereferenced outside
the scope in which "ts" was valid.
* lib/utimensat.c (rpl_utimensat) [__linux__]: Move the declaration
of ts[2] "out/up", so that the use of aliased "times" (via "times = ts;")
does not end up referencing an out-of-scope "ts"
Jim Meyering [Tue, 24 May 2011 11:44:41 +0000 (13:44 +0200)]
opendir-safer.c: don't clobber errno; don't close negative FD
* lib/opendir-safer.c (opendir_safer):
[HAVE_FDOPENDIR || GNULIB_FDOPENDIR]: Don't close a negative
file descriptor, and more importantly, don't clobber the
offending errno value with EINVAL. Before, upon failure
of dup_safer, we would pass the negative file descriptor to
fdopendir, which would clobber errno.
Karl Berry [Mon, 23 May 2011 23:38:11 +0000 (16:38 -0700)]
update from texinfo
Bruno Haible [Mon, 23 May 2011 22:19:52 +0000 (00:19 +0200)]
Fix recent ChangeLog entry.
Bruno Haible [Mon, 23 May 2011 22:14:15 +0000 (00:14 +0200)]
idcache: Fix module description.
* modules/idcache (Include): Set to "idcache.h".
Paul Eggert [Mon, 23 May 2011 22:02:43 +0000 (15:02 -0700)]
gnulib-tool: fix portability problem with MacOS sed
A sed command like "/x/{s/a/b/}" is not portable; a newline is needed
before the "}". Problem reported by Leo in
<http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00717.html>.
* gnulib-tool (sed_dependencies_without_conditions):
Bruno Haible [Mon, 23 May 2011 21:56:14 +0000 (23:56 +0200)]
hash: Simplify autoconf macro.
* m4/hash.m4 (gl_HASH): Don't require AM_STDBOOL_H.
Bruno Haible [Mon, 23 May 2011 21:47:00 +0000 (23:47 +0200)]
getugroups: Fix module description.
* modules/getugroups (Include): Set to "getugroups.h".
Bruno Haible [Mon, 23 May 2011 19:48:33 +0000 (21:48 +0200)]
linkat: Simplify autoconf macro.
* m4/linkat.m4 (gl_FUNC_LINKAT): Don't require gl_FUNC_LINK.
Bruno Haible [Mon, 23 May 2011 19:46:00 +0000 (21:46 +0200)]
linkat, renameat: Update dependencies.
* modules/renameat (Depends-on): Add dosname, save-cwd. Remove stpcpy.
* modules/linkat (Depends-on): Likewise. Remove also readlink,
symlinkat.
Jim Meyering [Mon, 23 May 2011 15:15:30 +0000 (17:15 +0200)]
maint.mk: more tight_scope improvements
* top/maint.mk: (_gl_TS_var_match): Use $(_gl_TS_extern) here, too.
(_gl_TS_headers): Define only in if-0'd block.
(_gl_TS_dir): Omit the $(srcdir)/ prefix. Sometimes we need it,
sometimes we must *not* use it. Adjust uses accordingly.
(sc_tight_scope): Use much simpler grep-based test to determine
whether we skip this rule.
Jim Meyering [Mon, 23 May 2011 07:12:06 +0000 (09:12 +0200)]
maint.mk: generalize/improve the tight-scope rule
* top/maint.mk: Emit a warning when the test is skipped.
(_gl_TS_dir): Add $(srcdir)/ prefix.
(_gl_TS_function_match): Simplify, rather than trying
to enumerate common types. Otherwise, it would fail to match an
"extern unsigned char const *" declaration in idutils.
(_gl_TS_extern): Do not endorse use of "XTERN", but do provide
a way to support use of that type of macro.
(_gl_TS_var_match): Simplify regexp.
(_gl_TS_obj_files): New configurable variable.
(_gl_TS_headers): Likewise.
Paul Eggert [Mon, 23 May 2011 01:36:04 +0000 (18:36 -0700)]
verify: fix bug when gnulib <assert.h> is also included
* lib/verify.h (verify, verify_true): Define if _GL_VERIFY_H
is defined, not if _GL_STATIC_ASSERT_H is not defined.
Perhaps there's a better way, but this fixes the immediate problem.
Problem reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00478.html>.