Eric Blake [Fri, 20 May 2011 21:19:05 +0000 (15:19 -0600)]
strerror_r: simplify AIX code.
* lib/strerror_r.c (strerror_r): Filter out buflen of 1 up front.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 20 May 2011 19:02:16 +0000 (13:02 -0600)]
test-perror: avoid spurious failure on FreeBSD
* modules/perror-tests (Depends-on): Add strerror, now that
strerror_r no longer pulls it in.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Fri, 20 May 2011 18:29:44 +0000 (20:29 +0200)]
strerror_r-posix: Remove unused dependencies.
* modules/strerror_r-posix (Depends-on): Remove strerror.
Reported by Eric Blake.
Paul Eggert [Fri, 20 May 2011 18:30:16 +0000 (11:30 -0700)]
intprops: remove assumption about A|B representation
* lib/intprops.h (_GL_BINARY_OP_OVERFLOW): Do not assume that A|B
is a valid integer if both A and B are. Although this is true for
all known practical hosts, the C standard doesn't guarantee it,
and the code need not assume it. Also, this change may work around
HP-UX 11.23 and IRIX 6.5 cc bugs reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00426.html>.
Eric Blake [Fri, 20 May 2011 17:09:53 +0000 (11:09 -0600)]
perror: work around FreeBSD bug
POSIX requires that 'errno = 0; perror ("")' print the same message
as strerror(0), but this failed if we were replacing strerror to work
around the FreeBSD bug of treating 0 as a failure.
The goal here is to _not_ replace perror on glibc, even though
strerror_r has to be replaced, because the strerror_r replacement is
only for the sake of correcting the signature rather than working
around bugs in the handling of any particular errnum value. Recall
that $gl_cv_func_strerror_r_works is only set if the POSIX signature
was detected in the first place.
* m4/perror.m4 (gl_FUNC_PERROR): Also replace perror if strerror_r
is broken. Move AC_LIBOBJ...
* modules/perror (configure.ac): Here.
* doc/posix-functions/perror.texi (perror): Document this.
* tests/test-perror2.c (main): Enhance test.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 20 May 2011 16:42:26 +0000 (10:42 -0600)]
test-perror: check for strerror interactions
This uncovered a glibc bug, although not many people check for
perror failures, so for now I'm not working around it.
http://sourceware.org/bugzilla/show_bug.cgi?id=12792
* tests/macros.h (STREQ) Add macro.
* modules/perror-tests (Files): Add second test.
* tests/test-perror2.c (main): New file.
* doc/posix-functions/perror.texi (perror): Document glibc bug.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 20 May 2011 14:57:54 +0000 (08:57 -0600)]
test-perror: rewrite to use init script
Make the test simpler, and also check for correct exit status.
* modules/perror-tests (Files): Add init.sh.
* tests/test-perror.sh: Use temporary directory.
Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering [Fri, 20 May 2011 09:53:34 +0000 (11:53 +0200)]
maint: replace misused "a" with "an"
* doc/intprops.texi: "a integer"
* doc/regex.texi: "a explanation"
* lib/alignof.h: "a object"
* lib/argmatch.h: "a explanation"
* lib/argp-help.c: "a option" and "a OPTION_DOC"
* lib/stdint.in.h: "a integer"
* lib/userspec.c: "a owner"
* doc/gnulib.texi: Fix "a idea", and reword.
Jim Meyering [Thu, 19 May 2011 20:18:05 +0000 (22:18 +0200)]
maint: correct misuse of "a" and "an"
* doc/regex.texi (Collating Symbol Operators): s/an close.../a close/
* lib/argp-help.c: "an docum...": s/an/a/
* lib/argp-parse.c: "An vector": s/An/A/
* lib/execute.c: "an native": s/an/a/
* lib/spawn-pipe.c: Likewise.
* lib/gc.h: "an Gc_rc": s/an/a/
* lib/unigbrk.in.h: "an grapheme": s/an/a/
* lib/fts.c: "an stat.st_dev": s/an/a/
Paul Eggert [Fri, 20 May 2011 02:16:43 +0000 (19:16 -0700)]
intprops-tests: work around HP-UX 11.23 cc bug with constants
* tests/test-intprops.c (VERIFY): New macro.
(main): Use it, instead of verify, to work around the compiler bug; see
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.
Paul Eggert [Fri, 20 May 2011 02:16:04 +0000 (19:16 -0700)]
intprops: work around IRIX 6.5 cc bug with 0u - 0u + -1
See http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html
* lib/intprops.h (_GL_INT_NEGATE_CONVERT): New macro.
(_GL_INT_SIGNED, _GL_INT_MAXIMUM, _GL_DIVIDE_OVERFLOW):
(_GL_REMAINDER_OVERFLOW): Use it.
Paul Eggert [Fri, 20 May 2011 02:15:19 +0000 (19:15 -0700)]
intprops-tests: revert unsigned part of previous change
* tests/test-intprops.c (UINT_MAX, ULONG_MAX, UINTMAX_MAX, U0, U1):
Remove; they weren't actually needed. All uses of U0 and U1 removed,
and other casts to 'unsigned int' reverted to 'u' suffixes. See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>.
Bruno Haible [Fri, 20 May 2011 02:01:43 +0000 (04:01 +0200)]
strerror_r: Work around strerror_r() change in Cygwin 1.7.8.
* lib/strerror_r.c (strerror_r) [CYGWIN]: Recognize when the system's
strerror_r() returned without filling the buffer.
Reported by Eric Blake.
Eric Blake [Thu, 19 May 2011 19:35:39 +0000 (13:35 -0600)]
strerror_r: guarantee unchanged errno
POSIX guarantees that strerror doesn't change errno on success,
and since we implement strerror by using strerror_r, it makes
sense to make the same guarantee for strerror_r (rather, going
one step further to say that sterror_r does not corrupt errno,
since it returns an error value explicitly).
See also http://austingroupbugs.net/view.php?id=447
* lib/strerror_r.c (strerror_r): Guarantee unchanged errno.
* lib/strerror-impl.h (strerror): Set errno to match strerror_r
failure.
* tests/test-strerror_r.c (main): Enhance test.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Thu, 19 May 2011 19:59:46 +0000 (21:59 +0200)]
strerror_r: Reorder #if blocks.
* lib/strerror_r.c (strerror_r): Reorder conditionals in the function
for consistency with the previous commit.
Bruno Haible [Thu, 19 May 2011 19:49:01 +0000 (21:49 +0200)]
perror: Avoid clobbering the strerror buffer when possible.
* lib/strerror-impl.h: New file, extracted from lib/strerror.c.
* lib/strerror.c: Include it.
* modules/strerror (Files): Add lib/strerror-impl.h.
* lib/perror.c: Include <stdlib.h>, intprops.h, verify.h.
(my_strerror): New function, defined through lib/strerror-impl.h.
(perror): Use it instead of strerror.
* modules/perror (Files): Add lib/strerror-impl.h.
(Depends-on): Remove strerror. Add intprops, verify, strerror_r-posix.
Eric Blake [Thu, 19 May 2011 18:51:36 +0000 (12:51 -0600)]
strerror_r: fix on newer cygwin
* lib/strerror_r.c (rpl_strerror_r): Cygwin now has
__xpg_strerror_r, use it.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Thu, 19 May 2011 18:57:21 +0000 (20:57 +0200)]
strerror_r: Avoid clobbering the strerror buffer when possible.
* lib/strerror.c: Define _NETBSD_SOURCE. Include <nl_types.h>.
(sys_nerr, sys_errlist): New declarations.
(strerror_r): Be careful not to clobber the strerror buffer on NetBSD,
HP-UX, native Win32, IRIX, and 32-bit Solaris.
* m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Test whether catgets exists.
Bruno Haible [Thu, 19 May 2011 18:45:59 +0000 (20:45 +0200)]
strerror_r: Fix test failure on mingw.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't define
EXTEND_STRERROR_R.
* lib/strerror_r.c (strerror_r): Test the various GNULIB_defined_*
macros from errno.in.h instead.
Eric Blake [Thu, 19 May 2011 16:17:18 +0000 (10:17 -0600)]
strerror: relax test for Solaris
Solaris returns "Error 0" for 0 vs. "Unknown error" for -1; while that
does not quite have the positive connotation that POSIX recommends, it
is distinct enough that we do not need to replace the native strerror
just to pick a better string.
The test is really trying to reject implementations that use the same
string for both 0 and 1 (modulo any %d output of the error number).
* tests/test-strerror.c (main): Permit Solaris behavior.
* tests/test-strerror_r.c (main): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Thu, 19 May 2011 00:16:59 +0000 (18:16 -0600)]
strerror: enforce POSIX ruling on strerror(0)
http://austingroupbugs.net/view.php?id=382 requires that strerror(0)
succeed, but FreeBSD reports "Unknown error: 0" and fails with EINVAL.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
* lib/strerror_r.c (rpl_strerror_r): Work around it.
* doc/posix-functions/strerror.texi (strerror): Document it.
* doc/posix-functions/strerror_r.texi (strerror_r): Likewise.
* tests/test-strerror.c (main): Strengthen test.
* tests/test-strerror_r.c (main): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Paul Eggert [Thu, 19 May 2011 08:43:17 +0000 (01:43 -0700)]
intprop-tests: port to older and more-pedantic compilers
* modules/intprops-tests (Files): Add tests/macros.h.
* tests/test-intprops.c: Include macros.h.
(TYPE_IS_INTEGER): Use ASSERT, not verify, to test this macro, as
it's no longer documented to expand to an integer constant expression.
(TYPE_SIGNED): Use ASSERT, not verify, to test this macro when the
argument is floating point, as it's no longer documented to expand
to an integer constant expression in that case.
(UINT_MAX, ULONG_MAX, UINTMAX_MAX): Redefine to work around
compiler bugs reported by Bruno Haible. See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.
(U0, U1): New constants, to work around the same bugs. Also,
in tests, use e.g., "(unsigned int) 39" rather than "39u".
Paul Eggert [Thu, 19 May 2011 08:36:25 +0000 (01:36 -0700)]
intprops: work around C compiler bugs
* lib/intprops.h (INT_MULTIPLY_RANGE_OVERFLOW): Work around compiler
bug in Sun C 5.11 2010/08/13 and other compilers; see
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.
Paul Eggert [Thu, 19 May 2011 08:34:14 +0000 (01:34 -0700)]
intprops: TYPE_IS_INTEGER, TYPE_SIGNED not integer constant exprs
* doc/intprops.texi (Integer Type Determination): Fix
documentation for TYPE_IS_INTEGER: it returns an constant
expression, not an integer constant expression. Fix doc for
TYPE_SIGNED: it returns an integer constant expression only if its
argument is an integer type. (TYPE_IS_INTEGER is the same, but is
hardly worth documented that way....)
Bruno Haible [Thu, 19 May 2011 03:24:33 +0000 (05:24 +0200)]
strerror_r: Avoid clobbering the strerror buffer when possible.
* lib/strerror_r.c (strerror_r): Merge the three implementations.
Handle gnulib defined errno values here. When strerror() returns NULL
or an empty string, return EINVAL.
* lib/strerror.c (strerror): Always call strerror_r. Don't handle
gnulib defined errno values here.
* modules/strerror (Depends-on): Add verify, strerror_r-posix.
Eric Blake [Wed, 18 May 2011 19:13:03 +0000 (13:13 -0600)]
fnmatch: avoid compiler warning
Detected on Ubuntu 10.04, where the glibc fnmatch fix is not yet
present; also reproduced via:
$ gl_cv_func_fnmatch_posix=no CFLAGS=-Wall \
./gnulib-tool --with-tests --test fnmatch
In file included from gllib/fnmatch.c:172:0:
gllib/fnmatch_loop.c: In function ‘internal_fnmatch’:
gllib/fnmatch_loop.c:203:28: error: initialization discards qualifiers from pointer target type
gllib/fnmatch_loop.c:204:28: error: initialization discards qualifiers from pointer target type
* lib/fnmatch_loop.c (FCT): Use correct type.
Reported by Matthias Bolte.
Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering [Fri, 13 May 2011 21:35:48 +0000 (23:35 +0200)]
maint.mk: three new prohibit_<HDR>_without_use rules
* top/maint.mk (sc_prohibit_stdio--_without_use): New rule.
(sc_prohibit_stdio-safer_without_use): Likewise.
(sc_prohibit_xfreopen_without_use): Likewise.
Jim Meyering [Tue, 17 May 2011 20:24:59 +0000 (22:24 +0200)]
announce-gen: fail if the NEWS delta is empty
If there's nothing noteworthy in NEWS, then either you forgot
or you shouldn't be releasing.
* build-aux/announce-gen: Die if the NEWS delta is effectively empty.
Pádraig Brady [Tue, 17 May 2011 18:08:14 +0000 (19:08 +0100)]
maint.mk: exclude compiler symbols from sc_tight_scope
Paul Eggert [Tue, 17 May 2011 20:09:08 +0000 (13:09 -0700)]
intprops: add doc
* doc/intprops.texi: New file, documenting intprops.
* doc/gnulib.texi (Particular Modules): Include it.
Paul Eggert [Tue, 17 May 2011 20:07:28 +0000 (13:07 -0700)]
verify: add doc to gnulib manual and fix example
* doc/gnulib.texi (Compile-time Assertions): New node, for 'verify'.
* doc/verify.texi (Compile-time Assertions): Update 'assert' doc.
(Compile-time Assertions): Fix example so it can't overflow.
Jim Meyering [Tue, 17 May 2011 12:10:16 +0000 (14:10 +0200)]
warnings.m4: don't usurp save_CPPFLAGS variable name
* m4/warnings.m4: Prefix local temporary variable name with gl_.
Jim Meyering [Tue, 17 May 2011 06:19:00 +0000 (08:19 +0200)]
ChangeLog: s/^ /\t/
Jim Meyering [Tue, 17 May 2011 06:17:42 +0000 (08:17 +0200)]
doc: fix typo
* doc/gnulib-intro.texi (Target Platforms): s/is/are/
Paul Eggert [Tue, 17 May 2011 00:23:22 +0000 (02:23 +0200)]
doc: Tweak recent change.
* README (Portability guidelines): Tweak new text.
* doc/gnulib-intro.texi (Target Platforms): Likewise. Mention
Interix 6.1.
Eric Blake [Mon, 16 May 2011 23:20:47 +0000 (17:20 -0600)]
inttypes: avoid autoconf warning
I noticed this while updating libvirt to the latest gnulib.
configure.ac:80: warning: AC_REQUIRE: `gl_STDINT_H' was expanded before it was required
gnulib/m4/inttypes.m4:18: gl_INTTYPES_INCOMPLETE is expanded from...
gnulib/m4/inttypes.m4:12: gl_INTTYPES_H is expanded from...
gnulib/m4/gnulib-comp.m4:379: gl_INIT is expanded from...
configure.ac:80: the top level
* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Only expand once.
* m4/stdint.m4 (gl_STDINT_H): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Mon, 16 May 2011 22:45:12 +0000 (00:45 +0200)]
Typo.
Eric Blake [Mon, 16 May 2011 22:02:07 +0000 (16:02 -0600)]
vc-list-files: accept multiple directory operands
* build-aux/vc-list-files: Iterate over all remaining operands.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Mon, 16 May 2011 22:27:54 +0000 (00:27 +0200)]
Fix confusion regarding deprecated modules.
* modules/calloc (Status, Notice): Mark module as deprecated, not
obsolete.
* modules/fnmatch-posix (Status, Notice): Likewise.
* modules/getdate (Status, Notice): Likewise.
* modules/getopt (Status, Notice): Likewise.
* modules/malloc (Status, Notice): Likewise.
* modules/pipe (Status, Notice): Likewise.
* modules/realloc (Status, Notice): Likewise.
* modules/rename-dest-slash (Status, Notice): Likewise.
* modules/unictype/bidicategory-all (Status, Notice): Likewise.
* modules/unictype/bidicategory-byname (Status, Notice): Likewise.
* modules/unictype/bidicategory-name (Status, Notice): Likewise.
* modules/unictype/bidicategory-of (Status, Notice): Likewise.
* modules/unictype/bidicategory-test (Status, Notice): Likewise.
Bruno Haible [Mon, 16 May 2011 22:25:35 +0000 (00:25 +0200)]
doc: List the target platforms.
* doc/gnulib-intro.texi (Target Platforms): New section.
* doc/gnulib.texi (Introduction): Update menu.
* README (Portability guidelines): Refer to the new section. Update
statement about oldest supported environment. Remove rationale why
<errno.h>, <string.h>, <stdlib.h> are assumed. Update example of an
unportable C89 function.
Reported by Bastien Roucariès <roucaries.bastien@gmail.com> and
Charles Wilson <cygwin@cwilson.fastmail.fm>. Feedback from Paul Eggert.
Paul Eggert [Mon, 16 May 2011 16:17:48 +0000 (09:17 -0700)]
* build-aux/bootstrap (gnulib_tool): Handle symlink timestamps better.
Paul Eggert [Sun, 15 May 2011 16:37:21 +0000 (09:37 -0700)]
intprops-tests: new module
* modules/intprops-tests, tests/test-intprops.c: New files.
Paul Eggert [Sun, 15 May 2011 16:35:12 +0000 (09:35 -0700)]
intprops: add safe, portable integer overflow checking
* lib/intprops.h (_GL_INT_CONVERT, _GL_INT_TWOS_COMPLEMENT):
(_GL_INT_SIGNED, _GL_INT_MINIMUM, _GL_INT_MAXIMUM):
(_GL_SIGNED_INT_MINIMUM, INT_ADD_RANGE_OVERFLOW):
(INT__SUBTRACT__RANGE_OVERFLOW, INT_NEGATE_RANGE_OVERFLOW):
(INT_MULTIPLY_RANGE_OVERFLOW, INT_REMAINDER_RANGE_OVERFLOW):
(INT_LEFT_SHIFT_RANGE_OVERFLOW, _GL_ADD_OVERFLOW):
(_GL__SUBTRACT__OVERFLOW, _GL_MULTIPLY_OVERFLOW, _GL_DIVIDE_OVERFLOW):
(_GL_REMAINDER_OVERFLOW, _GL_UNSIGNED_NEG_MULTIPLE, INT_ADD_OVERFLOW):
(INT__SUBTRACT__OVERFLOW, INT_NEGATE_OVERFLOW, INT_MULTIPLY_OVERFLOW):
(INT_DIVIDE_OVERFLOW, INT_REMAINDER_OVERFLOW):
(INT_LEFT_SHIFT_OVERFLOW, _GL_BINARY_OP_OVERFLOW): New macros.
James Youngman [Thu, 12 May 2011 21:14:12 +0000 (22:14 +0100)]
fnmatch: add a test for glibc's Bugzilla bug #12378
* m4/fnmatch.m4: Use gnulib's fnmatch if the system fnmatch
doesn't allow the literal matching of a lone "[" (which is
required by POSIX).
* tests/test-fnmatch.c (main): Check that "[/b" matches itself.
James Youngman [Thu, 12 May 2011 21:14:11 +0000 (22:14 +0100)]
fnmatch: sync glibc change fixing Bugzilla bug #12378
* lib/fnmatch_loop.c (FCT): When matching '[' keep track of
beginning and fall back to matching as normal character if the
string ends before the matching ']' is found. This is what POSIX
requires.
Karl Berry [Fri, 13 May 2011 23:09:30 +0000 (16:09 -0700)]
update from texinfo
Eric Blake [Fri, 13 May 2011 16:26:08 +0000 (10:26 -0600)]
getcwd-lgpl: relax test for FreeBSD
getcwd(NULL, 1) mallocs a larger buffer on BSD, rather than failing
with ERANGE as on glibc. This behavior difference is not worth
coding around, as it is an uncommon use of getcwd in the first place.
* doc/posix-functions/getcwd.texi (getcwd): Document portability
issue.
* tests/test-getcwd-lgpl.c (main): Relax test.
Reported by Matthias Bolte.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Thu, 12 May 2011 01:33:46 +0000 (19:33 -0600)]
test-fflush: silence compiler warning
Detected by clang.
* tests/test-fflush.c (main): Don't fclose a NULL pointer.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Thu, 12 May 2011 00:10:44 +0000 (02:10 +0200)]
canonicalize, canonicalize-lgpl: Avoid crash dialog on MacOS X.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Add GL_NOCRASH code.
* modules/canonicalize (Depends-on): Add 'nocrash'.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* doc/posix-functions/realpath.texi: Update platforms list.
Reported by Ryan Schmidt <ryandesign@macports.org>.
Bruno Haible [Thu, 12 May 2011 00:03:07 +0000 (02:03 +0200)]
group-member: Declare function in <unistd.h>.
* lib/unistd.in.h (group_member): New declaration.
* lib/group-member.h: Remove file.
* lib/group-member.c: Include <unistd.h> instead of group-member.h.
* tests/test-unistd-c++.cc: Check signature of group_member.
* m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Require
gl_UNISTD_H_DEFAULTS. Set HAVE_GROUP_MEMBER.
* m4/unistd_h.m4 (gl_UNISTD_H): Check whether group_member is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GROUP_MEMBER,
HAVE_GROUP_MEMBER.
* modules/group-member (Files): Remove lib/group-member.h.
(Depends-on): Add unistd. Specify conditions.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Change to <unistd.h>.
* modules/unistd (Makefile.am): Substitute GNULIB_GROUP_MEMBER,
HAVE_GROUP_MEMBER.
* NEWS: Mention the change.
* lib/euidaccess.c: Don't include group-member.h.
Bruno Haible [Thu, 12 May 2011 00:01:42 +0000 (02:01 +0200)]
group-member: Document module.
* doc/glibc-functions/group_member.texi: Mention the 'group-member'
module.
Bruno Haible [Thu, 12 May 2011 00:01:00 +0000 (02:01 +0200)]
fclose: Fix mistake earlier today.
* lib/fclose.c (rpl_fclose): Don't assume that EOF < 0.
Eric Blake [Wed, 11 May 2011 17:35:06 +0000 (11:35 -0600)]
fclose: preserve fflush errors
Caught by gcc -Werror=unused-but-set-variable.
* lib/fclose.c (rpl_fclose): Don't lose fflush errors.
Reported by Jim Meyering.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 11 May 2011 17:21:01 +0000 (11:21 -0600)]
bootstrap: support a prereq of 'rpcgen -' on RHEL5
On RHEL 5, 'rpcgen --version' spews usage to stderr with status 1,
rather than a version string to stdout with status 0. But libvirt
merely requires a prereq of 'rpcgen -' - that is, it must exist,
but need not have a well-behaved --version.
* build-aux/bootstrap (check_versions): When no specific version
is required, merely check that the app produces an exit status
that indicates its existence.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 11 May 2011 14:22:18 +0000 (08:22 -0600)]
maint.mk: drop redundant check
* top/maint.mk (sc_the_the): Delete; sc_prohibit_doubled_word does
the same but better.
Signed-off-by: Eric Blake <eblake@redhat.com>
Karl Berry [Wed, 11 May 2011 13:58:35 +0000 (06:58 -0700)]
autoupdate
Bruno Haible [Wed, 11 May 2011 11:14:46 +0000 (13:14 +0200)]
fclose: Fix possible link error.
* lib/fclose.c (rpl_fclose): Invoke _gl_unregister_fd, not
unregister_shadow_fd. Improve comments.
* lib/sockets.c (close_fd_maybe_socket): Add comments. Reported by
Eric Blake.
Jim Meyering [Wed, 11 May 2011 08:41:23 +0000 (10:41 +0200)]
maint.mk: adjust previous commit
Change "misc" in names to "undesirable_word_seq".
"misc" is rarely desirable, in a name ;-)
Define and use ignore_undesirable_word_sequence_RE_ properly.
Jim Meyering [Wed, 11 May 2011 08:07:32 +0000 (10:07 +0200)]
maint.mk: improve "can not" detection and generalize rule name
* top/maint.mk (sc_prohibit_misc): Renamed from sc_prohibit_can_not,
since we'll probably add a few more word pairs here.
Use the same technique as in sc_prohibit_doubled_word, so that
we recognize "can not" also when the words are separated by a newline.
Suggested by Eric Blake.
(perl_filename_lineno_text_): Define. Factored out of...
(prohibit_doubled_word_): ...here. Use the new definition.
(prohibit_misc_): New var. Use it here, too.
(prohibit_misc_RE_): New overridable variable.
Eric Blake [Tue, 10 May 2011 21:28:48 +0000 (15:28 -0600)]
fclose: avoid double close race when possible
Calling close(fileno(fp)) prior to fclose(fp) is racy in a
multi-threaded application - some other thread could open a new file,
which is then inadvertently closed by the fclose that we thought
should fail with EBADF. For mingw, this is no worse than the race
already present in close_fd_maybe_socket for calling closesocket()
prior to _close(), but for all other platforms, we might as well be
nice and avoid the race.
* lib/fclose.c (rpl_fclose): Rewrite to avoid double-close race on
all but WINDOWS_SOCKETS.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bastien Roucariès [Tue, 10 May 2011 09:30:19 +0000 (11:30 +0200)]
openat: correct new comment
* lib/openat-proc.c (openat_proc_name): Correct the comment.
Jim Meyering [Tue, 10 May 2011 07:46:59 +0000 (09:46 +0200)]
openat: add comments
* lib/openat-proc.c (openat_proc_name): Add comments,
mostly from Eric Blake.
Eric Blake [Mon, 9 May 2011 22:27:35 +0000 (16:27 -0600)]
openat: reduce syscalls in first probe of /proc
open/access/close is cheaper than open/stat/stat/close.
Use O_DIRECTORY for safety.
* lib/openat-proc.c (openat_proc_name): Require that /proc/self/fd
be a directory. Simplify the probe for .. bugs.
* modules/openat (Depends-on): Drop same-inode.
Reported by Bastien ROUCARIES.
Signed-off-by: Eric Blake <eblake@redhat.com>
Karl Berry [Mon, 9 May 2011 18:06:26 +0000 (11:06 -0700)]
autoupdate
Jim Meyering [Mon, 9 May 2011 17:28:11 +0000 (19:28 +0200)]
maint.mk: change semantics/name of tight_scope variables
* top/maint.mk (_gl_TS_var_match, _gl_TS_function_match):
Rename variables to align with semantics that make them more useful.
Jim Meyering [Mon, 9 May 2011 11:29:38 +0000 (13:29 +0200)]
maint.mk: fix oops
* top/maint.mk (sc_tight_scope): Fix last change: missing backslash.
Jim Meyering [Mon, 9 May 2011 11:27:55 +0000 (13:27 +0200)]
maint.mk: tweak new rule's name not to impinge
* top/maint.mk (_gl_tight_scope): Rename from sc_tight_scope-0.
(sc_tight_scope): Use new rule name rather than $@-0.
Jim Meyering [Mon, 9 May 2011 10:30:55 +0000 (12:30 +0200)]
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
* top/maint.mk (sc_tight_scope): New rule.
(sc_tight_scope-0): New rule, ifdef'd out.
(_gl_TS_dir): Default.
(_gl_TS_unmarked_extern_functions, _gl_TS_function_regex): Define.
(_gl_TS_unmarked_extern_vars, _gl_TS_var_regex): Define.
Simon Josefsson [Mon, 9 May 2011 07:07:13 +0000 (09:07 +0200)]
gc: Remove gl_PREREQ_GC (not used).
* m4/gc.m4: Remove gl_PREREQ_GC (not used). Reported by Bruno
Haible <bruno@clisp.org>.
Bruno Haible [Sun, 8 May 2011 23:11:59 +0000 (01:11 +0200)]
Comments.
* m4/isnanf.m4: Add comment.
* m4/isnanl.m4: Likewise.
Bruno Haible [Sun, 8 May 2011 18:39:07 +0000 (20:39 +0200)]
glob: Remove obsolete macro.
* m4/glob.m4 (gl_GLOB_SUBSTITUTE): Remove macro.
Paul Eggert [Sun, 8 May 2011 19:28:01 +0000 (12:28 -0700)]
intprops: Sun C 5.11 supports __typeof__
* lib/intprops.h (_GL_HAVE___TYPEOF__): New macro, which is set
for either GCC 2 or later, as before, or for Sun C 5.11 or later,
which is new.
(_GL_SIGNED_TYPE_OR_EXPR): Use it.
Paul Eggert [Sun, 8 May 2011 18:53:53 +0000 (11:53 -0700)]
intprops: switch to usual gnulib indenting and naming
* lib/intprops.h (_GL_INTPROPS_H): Rename from GL_INTPROPS_H.
(_GL_SIGNED_TYPE_OR_EXPR): Rename from signed_type_or_expr__.
* tests/test-inttostr.c (IS_TIGHT): Adjust to above renaming.
Jim Meyering [Sun, 8 May 2011 16:13:59 +0000 (18:13 +0200)]
maint.mk: suppress "Entering/Leaving directory" diag in announcement
* top/maint.mk (release-prep): Use make's --no-print-directory
option when generating the announcement. This eliminates the
pesky "make[2]: Entering/Leaving directory" diagnostics in the
generated announcement template.
Bruno Haible [Sun, 8 May 2011 16:09:39 +0000 (18:09 +0200)]
tzset: Fix gettimeofday wrapper on Solaris 2.6.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): When invoking
gl_GETTIMEOFDAY_REPLACE_LOCALTIME, also set REPLACE_GETTIMEOFDAY.
Paul Eggert [Sat, 7 May 2011 21:29:30 +0000 (14:29 -0700)]
ignore-value, verify: Omit include files from lib_SOURCES.
* modules/ignore-value, modules/verify (Makefile.am):
Don't put ignore-value.h, or verify.h, into lib_SOURCES, as
that leads Automake to duplicate use of am__objects_... variables
in Makefile.in. See
<http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00257.html>.
Bruno Haible [Sat, 7 May 2011 11:05:51 +0000 (13:05 +0200)]
fclose: Simplify autoconf macro.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Assume gl_FUNC_FFLUSH_STDIN is
defined.
Bruno Haible [Sat, 7 May 2011 10:50:30 +0000 (12:50 +0200)]
canonicalize-lgpl: Fix autoconf macro ordering bug.
* m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): Require
gl_STDLIB_H_DEFAULTS.
Eric Blake [Fri, 6 May 2011 21:38:46 +0000 (15:38 -0600)]
maintainer-makefile: make sc_po_check easier to tune
* top/maint.mk (sc_po_check): Allow overriding which non-VC files
to probe for strings, such as an alternate location for gnulib.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 6 May 2011 19:01:17 +0000 (13:01 -0600)]
fclose: guarantee behavior on seekable stdin
* modules/fclose (Depends-on): Add fflush.
* doc/posix-functions/fclose.texi (fclose): Document this.
* tests/test-fclose.c (main): Make test for this unconditional.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Fri, 6 May 2011 18:14:41 +0000 (20:14 +0200)]
fflush, fpurge: Relicense under LGPLv2+.
* modules/fflush (License): Change from LGPLv3+ to LGPLv2+.
* modules/fpurge (License): Likewise.
With permission from Eric Blake and Jim Meyering.
Suggested by Eric Blake.
Karl Berry [Fri, 6 May 2011 16:31:16 +0000 (09:31 -0700)]
rm exit module
Jim Meyering [Fri, 6 May 2011 06:09:21 +0000 (08:09 +0200)]
maint.mk: use info-gnu@ as the default only for a stable release
* top/maint.mk: Don't default to info-gnu for alpha or beta releases.
For those, just use $(PACKAGE_BUGREPORT), in which case we don't have
to set the Mail-Followup-To header. Prompted by Reuben Thomas in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26488
Paul Eggert [Fri, 6 May 2011 05:43:18 +0000 (22:43 -0700)]
assert-h: new module, which supports C1X-style static_assert
* lib/assert.in.h, m4/assert_h.m4, modules/assert-h: New files.
* lib/verify.h: Revamp so that this can be copied into assert.h,
while retaining the ability to use it standalone as before.
Rename private identifiers so as not to encroach on the
standard C namespace, since this is now used by assert.h.
(_GL_VERIFY_TYPE): New macro, factoring out differing parts of
the old verify_true.
(_GL_VERIFY_TRUE): New macro, with much of the contents of
the old verify_true. Use _GL_VERIFY_TYPE.
(_GL_VERIFY): New macro, with much of the contents of the old verify.
(static_assert): New macro, if _GL_STATIC_ASSERT_H
is defined and static_assert is not; _GL_STATIC_ASSERT_H is
defined when this file is copied into the replacement assert.h.
(_Static_assert): New macro, if _GL_STATIC_ASSERT_H is defined
and _Static_assert is not built in.
(verify_true, verify): Define only if _GL_STATIC_ASSERT_H is not
defined, and use the new macros mentioned above.
* doc/posix-headers/assert.texi: Document this.
Bruno Haible [Thu, 5 May 2011 22:34:34 +0000 (00:34 +0200)]
fclose, fflush: Respect rules for use of AC_LIBOBJ.
* m4/fflush.m4 (gl_FUNC_FFLUSH): Don't invoke gl_REPLACE_FCLOSE.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Invoke gl_FUNC_FFLUSH_STDIN and
gl_REPLACE_FCLOSE here.
* modules/fflush (Depends-on): Remove fclose.
* doc/posix-functions/fclose.texi: Mention module 'fflush' only in
combination with module 'fclose'.
Bruno Haible [Thu, 5 May 2011 22:23:55 +0000 (00:23 +0200)]
fflush, fseeko: Respect rules for use of AC_LIBOBJ.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): New macro, extracted from
gl_FUNC_FFLUSH.
(gl_FUNC_FFLUSH): Use it.
(gl_REPLACE_FFLUSH): Don't invoke gl_REPLACE_FSEEKO.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Invoke gl_FUNC_FFLUSH_STDIN and
gl_REPLACE_FSEEKO here.
Bruno Haible [Thu, 5 May 2011 17:37:01 +0000 (19:37 +0200)]
tzset: Relicense under LGPL.
* modules/tzset (License): Change to LGPL.
No agreement needed; it's a no-op.
Bruno Haible [Thu, 5 May 2011 17:31:30 +0000 (19:31 +0200)]
strtoimax, strtoumax: Relicense under LGPL.
* modules/strtoimax (License): Change to LGPL.
* modules/strtoumax (License): Likewise.
With permission from Jim Meyering, Paul Eggert:
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00124.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00109.html>
Bruno Haible [Thu, 5 May 2011 17:29:48 +0000 (19:29 +0200)]
getgroups: Relicense under LGPL.
* modules/getgroups (License): Change to LGPL.
With permission from Jim Meyering, Paul Eggert, Eric Blake:
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00111.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00148.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00138.html>
Bruno Haible [Thu, 5 May 2011 17:28:21 +0000 (19:28 +0200)]
nanosleep: Relicense under LGPL.
* modules/nanosleep (License): Change to LGPL.
With permission from Jim Meyering, Paul Eggert, Eric Blake, Bruno
Haible:
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00111.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00148.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00138.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00131.html>
Bruno Haible [Thu, 5 May 2011 17:26:25 +0000 (19:26 +0200)]
futimens: Relicense under LGPL.
* modules/futimens (License): Change to LGPL.
With permission from Eric Blake:
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00138.html>
Bruno Haible [Thu, 5 May 2011 17:25:17 +0000 (19:25 +0200)]
fflush: Relicense under LGPL.
* modules/fflush (License): Change to LGPL.
With permission from Eric Blake, Bruno Haible, Jim Meyering:
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00138.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00131.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00133.html>
Bruno Haible [Thu, 5 May 2011 17:23:54 +0000 (19:23 +0200)]
tmpfile: Relicense under LGPL.
* modules/tmpfile (License): Change to LGPL.
With permission from Ben Pfaff:
<http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00185.html>
Bruno Haible [Thu, 5 May 2011 17:22:52 +0000 (19:22 +0200)]
isfinite: Relicense under LGPL.
* modules/isfinite (License): Change to LGPL.
With permission from Ben Pfaff, Bruno Haible:
<http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00185.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00130.html>
Bruno Haible [Thu, 5 May 2011 17:20:07 +0000 (19:20 +0200)]
acosl..tanl: Relicense under LGPL.
* modules/acosl (License): Change to LGPL.
* modules/asinl (License): Likewise.
* modules/atanl (License): Likewise.
* modules/cosl (License): Likewise.
* modules/expl (License): Likewise.
* modules/logl (License): Likewise.
* modules/sinl (License): Likewise.
* modules/sqrtl (License): Likewise.
* modules/tanl (License): Likewise.
Source code originally from glibc and Paolo Bonzini. Agreements:
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00137.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00128.html>
Bruno Haible [Thu, 5 May 2011 17:03:57 +0000 (19:03 +0200)]
signal: Define sighandler_t.
* lib/signal.in.h (sighandler_t): New type.
* m4/signal_h.m4 (gl_SIGNAL_H): Require AC_USE_SYSTEM_EXTENSIONS. Test
whether sighandler_t is defined.
(gl_SIGNAL_H_DEFAULTS): Initialize HAVE_SIGHANDLER_T.
* modules/signal (Depends-on): Add extensions.
(Makefile.am): Substitute HAVE_SIGHANDLER_T.
* doc/posix-headers/signal.texi: Mention the problem with sighandler_t.
Suggested by Markus Steinborn <gnugv_maintainer@yahoo.de>.
Eric Blake [Wed, 4 May 2011 20:26:56 +0000 (14:26 -0600)]
maint: remove useless REPLACE_*_H macros
There are still a few modules, like iconv_h.m4, that still
use older paradigms where GNULIB_POSIXCHECK is unsupported
and where gl_REPLACE_<HEADER>_H is still essential. But since
we are moving away from that style, I see no reason to keep
the idiom for the modules that don't need it.
* m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): Delete.
* m4/dirent_h.m4 (gl_REPLACE_DIRENT_H): Likewise.
* m4/locale_h.m4 (gl_REPLACE_LOCALE_H): Likewise.
* m4/poll_h.m4 (gl_REPLACE_POLL_H): Likewise.
* m4/spawn_h.m4 (gl_REPLACE_SPAWN_H): Likewise.
* m4/sys_ioctl_h.m4 (gl_REPLACE_SYS_IOCTL_H): Likewise.
* m4/wchar_h.m4 (gl_REPLACE_WCHAR_H): Likewise.
* m4/btowc.m4: Update callers.
* m4/dirfd.m4: Likewise.
* m4/duplocale.m4: Likewise.
* m4/fchdir.m4: Likewise.
* m4/fdopendir.m4: Likewise.
* m4/inet_ntop.m4: Likewise.
* m4/inet_pton.m4: Likewise.
* m4/ioctl.m4: Likewise.
* m4/mbrlen.m4: Likewise.
* m4/mbrtowc.m4: Likewise.
* m4/mbsinit.m4: Likewise.
* m4/mbsnrtowcs.m4: Likewise.
* m4/mbsrtowcs.m4: Likewise.
* m4/poll.m4: Likewise.
* m4/setlocale.m4: Likewise.
* m4/wcrtomb.m4: Likewise.
* m4/wcsnrtombs.m4: Likewise.
* m4/wcsrtombs.m4: Likewise.
* m4/wctob.m4: Likewise.
* m4/wcwidth.m4: Likewise.
* modules/posix_spawn: Likewise.
* modules/posix_spawn_file_actions_addclose: Likewise.
* modules/posix_spawn_file_actions_adddup2: Likewise.
* modules/posix_spawn_file_actions_addopen: Likewise.
* modules/posix_spawn_file_actions_destroy: Likewise.
* modules/posix_spawn_file_actions_init: Likewise.
* modules/posix_spawnattr_destroy: Likewise.
* modules/posix_spawnattr_getflags: Likewise.
* modules/posix_spawnattr_getpgroup: Likewise.
* modules/posix_spawnattr_getschedparam: Likewise.
* modules/posix_spawnattr_getschedpolicy: Likewise.
* modules/posix_spawnattr_getsigdefault: Likewise.
* modules/posix_spawnattr_getsigmask: Likewise.
* modules/posix_spawnattr_init: Likewise.
* modules/posix_spawnattr_setflags: Likewise.
* modules/posix_spawnattr_setpgroup: Likewise.
* modules/posix_spawnattr_setschedparam: Likewise.
* modules/posix_spawnattr_setschedpolicy: Likewise.
* modules/posix_spawnattr_setsigdefault: Likewise.
* modules/posix_spawnattr_setsigmask: Likewise.
* modules/posix_spawnp: Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Reuben Thomas [Wed, 4 May 2011 11:22:12 +0000 (12:22 +0100)]
do-release-commit-and-tag: add option to specify branch
* build-aux/do-release-commit-and-tag: Add --branch.
Bruno Haible [Tue, 3 May 2011 21:36:43 +0000 (23:36 +0200)]
Avoid unnecessary compilation units, through conditional dependencies.
* modules/accept (Depends-on): Add conditions to the dependencies.
* modules/acosl (Depends-on): Likewise.
* modules/argz (Depends-on): Likewise.
* modules/asinl (Depends-on): Likewise.
* modules/atanl (Depends-on): Likewise.
* modules/atoll (Depends-on): Likewise.
* modules/bind (Depends-on): Likewise.
* modules/btowc (Depends-on): Likewise.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* modules/ceil (Depends-on): Likewise.
* modules/ceilf (Depends-on): Likewise.
* modules/ceill (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Likewise.
* modules/chown (Depends-on): Likewise.
* modules/close (Depends-on): Likewise.
* modules/connect (Depends-on): Likewise.
* modules/cosl (Depends-on): Likewise.
* modules/dirfd (Depends-on): Likewise.
* modules/dprintf (Depends-on): Likewise.
* modules/dprintf-posix (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/euidaccess (Depends-on): Likewise.
* modules/expl (Depends-on): Likewise.
* modules/faccessat (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/fclose (Depends-on): Likewise.
* modules/fcntl (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/fflush (Depends-on): Likewise.
* modules/floor (Depends-on): Likewise.
* modules/floorf (Depends-on): Likewise.
* modules/floorl (Depends-on): Likewise.
* modules/fnmatch (Depends-on): Likewise.
* modules/fopen (Depends-on): Likewise.
* modules/fprintf-posix (Depends-on): Likewise.
* modules/frexp (Depends-on): Likewise.
* modules/frexp-nolibm (Depends-on): Likewise.
* modules/frexpl (Depends-on): Likewise.
* modules/frexpl-nolibm (Depends-on): Likewise.
* modules/fseek (Depends-on): Likewise.
* modules/fsusage (Depends-on): Likewise.
* modules/ftell (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* modules/futimens (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/getcwd-lgpl (Depends-on): Likewise.
* modules/getdelim (Depends-on): Likewise.
* modules/getdomainname (Depends-on): Likewise.
* modules/getgroups (Depends-on): Likewise.
* modules/gethostname (Depends-on): Likewise.
* modules/getline (Depends-on): Likewise.
* modules/getlogin_r (Depends-on): Likewise.
* modules/getopt-posix (Depends-on): Likewise.
* modules/getpeername (Depends-on): Likewise.
* modules/getsockname (Depends-on): Likewise.
* modules/getsockopt (Depends-on): Likewise.
* modules/getsubopt (Depends-on): Likewise.
* modules/getusershell (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/grantpt (Depends-on): Likewise.
* modules/iconv_open (Depends-on): Likewise.
* modules/iconv_open-utf (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/ioctl (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* modules/isfinite (Depends-on): Likewise.
* modules/isinf (Depends-on): Likewise.
* modules/lchown (Depends-on): Likewise.
* modules/ldexpl (Depends-on): Likewise.
* modules/link (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/listen (Depends-on): Likewise.
* modules/logl (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mbrlen (Depends-on): Likewise.
* modules/mbrtowc (Depends-on): Likewise.
* modules/mbsinit (Depends-on): Likewise.
* modules/mbsnrtowcs (Depends-on): Likewise.
* modules/mbsrtowcs (Depends-on): Likewise.
* modules/mbtowc (Depends-on): Likewise.
* modules/memcmp (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/mkdtemp (Depends-on): Likewise.
* modules/mkfifo (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/mknod (Depends-on): Likewise.
* modules/mkostemp (Depends-on): Likewise.
* modules/mkostemps (Depends-on): Likewise.
* modules/mkstemp (Depends-on): Likewise.
* modules/mkstemps (Depends-on): Likewise.
* modules/mktime (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/perror (Depends-on): Likewise.
* modules/poll (Depends-on): Likewise.
* modules/popen (Depends-on): Likewise.
* modules/posix_spawn (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addclose (Depends-on): Likewise.
* modules/posix_spawn_file_actions_adddup2 (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addopen (Depends-on): Likewise.
* modules/posix_spawnp (Depends-on): Likewise.
* modules/pread (Depends-on): Likewise.
* modules/printf-posix (Depends-on): Likewise.
* modules/ptsname (Depends-on): Likewise.
* modules/putenv (Depends-on): Likewise.
* modules/pwrite (Depends-on): Likewise.
* modules/readline (Depends-on): Likewise.
* modules/readlink (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/recv (Depends-on): Likewise.
* modules/recvfrom (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/remove (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/rmdir (Depends-on): Likewise.
* modules/round (Depends-on): Likewise.
* modules/roundf (Depends-on): Likewise.
* modules/roundl (Depends-on): Likewise.
* modules/rpmatch (Depends-on): Likewise.
* modules/select (Depends-on): Likewise.
* modules/send (Depends-on): Likewise.
* modules/sendto (Depends-on): Likewise.
* modules/setenv (Depends-on): Likewise.
* modules/setlocale (Depends-on): Likewise.
* modules/setsockopt (Depends-on): Likewise.
* modules/shutdown (Depends-on): Likewise.
* modules/sigaction (Depends-on): Likewise.
* modules/signbit (Depends-on): Likewise.
* modules/sigprocmask (Depends-on): Likewise.
* modules/sinl (Depends-on): Likewise.
* modules/sleep (Depends-on): Likewise.
* modules/snprintf (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/socket (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/sqrtl (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/strchrnul (Depends-on): Likewise.
* modules/strdup-posix (Depends-on): Likewise.
* modules/strerror (Depends-on): Likewise.
* modules/strerror_r-posix (Depends-on): Likewise.
* modules/strndup (Depends-on): Likewise.
* modules/strnlen (Depends-on): Likewise.
* modules/strptime (Depends-on): Likewise.
* modules/strsep (Depends-on): Likewise.
* modules/strsignal (Depends-on): Likewise.
* modules/strstr-simple (Depends-on): Likewise.
* modules/strtod (Depends-on): Likewise.
* modules/strtoimax (Depends-on): Likewise.
* modules/strtok_r (Depends-on): Likewise.
* modules/strtoumax (Depends-on): Likewise.
* modules/symlink (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/tanl (Depends-on): Likewise.
* modules/tcgetsid (Depends-on): Likewise.
* modules/tmpfile (Depends-on): Likewise.
* modules/trunc (Depends-on): Likewise.
* modules/truncf (Depends-on): Likewise.
* modules/truncl (Depends-on): Likewise.
* modules/uname (Depends-on): Likewise.
* modules/unlink (Depends-on): Likewise.
* modules/unlockpt (Depends-on): Likewise.
* modules/unsetenv (Depends-on): Likewise.
* modules/usleep (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* modules/vasprintf (Depends-on): Likewise.
* modules/vdprintf (Depends-on): Likewise.
* modules/vdprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vprintf-posix (Depends-on): Likewise.
* modules/vsnprintf (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/wcrtomb (Depends-on): Likewise.
* modules/wcscasecmp (Depends-on): Likewise.
* modules/wcscspn (Depends-on): Likewise.
* modules/wcsdup (Depends-on): Likewise.
* modules/wcsncasecmp (Depends-on): Likewise.
* modules/wcsnrtombs (Depends-on): Likewise.
* modules/wcspbrk (Depends-on): Likewise.
* modules/wcsrtombs (Depends-on): Likewise.
* modules/wcsspn (Depends-on): Likewise.
* modules/wcsstr (Depends-on): Likewise.
* modules/wcstok (Depends-on): Likewise.
* modules/wcswidth (Depends-on): Likewise.
* modules/wctob (Depends-on): Likewise.
* modules/wctomb (Depends-on): Likewise.
* modules/wctype (Depends-on): Likewise.
* modules/wcwidth (Depends-on): Likewise.
* modules/write (Depends-on): Likewise.
Bruno Haible [Tue, 3 May 2011 21:32:50 +0000 (23:32 +0200)]
Support for conditional dependencies.
* doc/gnulib.texi (Module description): Document the syntax of
conditional dependencies.
* gnulib-tool: New option --conditional-dependencies.
(func_usage): Document it.
(cond_dependencies): New variable.
(func_get_automake_snippet_conditional,
func_get_automake_snippet_unconditional): New functions, extracted from
func_get_automake_snippet.
(func_get_automake_snippet): Use them.
(sed_first_32_chars): New variable.
(func_module_shellfunc_name): New function.
(func_module_shellvar_name): New function.
(func_module_conditional_name): New function.
(func_uncond_add_module, func_conddep_add_module, func_cond_module_p,
func_cond_module_condition): New functions.
(func_modules_transitive_closure): Add support for conditional
dependencies.
(func_emit_lib_Makefile_am): For a conditional module, enclose the
conditional automake snippet in an automake conditional.
(func_emit_autoconf_snippets): Emit shell functions that contain the
code for conditional modules.
(func_import, func_create_testdir): Update specification.