Paul Eggert [Mon, 5 Nov 2012 21:53:36 +0000 (13:53 -0800)]
fcntl-h: default O_SEARCH, O_EXEC to O_PATH if available
Linux kernel 2.6.39 introduced O_PATH (see
<http://lwn.net/Articles/433854/>) and this is a better fallback
for O_SEARCH and O_EXEC than O_RDONLY, if O_PATH is available.
* doc/posix-headers/fcntl.texi (fcntl.h): Document this.
* lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default to O_PATH.
* lib/fcntl.in.h (O_ACCMODE):
* tests/test-fcntl-h.c (main):
Do not reject O_ACCMODE merely because it has more than the
minimal number of bits, as POSIX allows extensions here.
Andrew Warshall [Mon, 5 Nov 2012 00:41:15 +0000 (16:41 -0800)]
mountlist: do not classify a bind-mounted dir entry as "dummy"
* lib/mountlist.c (ME_DUMMY_0): Rename from ME_DUMMY, but omit
the "none"-testing clause.
(ME_DUMMY) [MOUNTED_GETMNTENT1]: New macro to encapsulate the
exception for bind-mounted directories.
Copyright-paperwork-exempt: Yes
Akim Demaille [Thu, 1 Nov 2012 13:47:03 +0000 (06:47 -0700)]
quote: provide a means to escape strings with nul characters
* lib/quote.h, lib/quotearg.c (quote_mem, quote_n_mem): New functions.
(quote, quote_n): Rename formal arguments for consistency with
quotearg.
Paul Eggert [Tue, 30 Oct 2012 18:29:01 +0000 (11:29 -0700)]
test-raise: don't assume 199 is an invalid signal
* tests/test-raise.c (main): Don't assume 199 is not a signal number.
Paul Eggert [Tue, 30 Oct 2012 18:27:56 +0000 (11:27 -0700)]
sh-quote-tests: port to Solaris 9
* modules/sh-quote-tests (test_sh_quote_LDADD): Add @LIBINTL@.
Problem reported by Dagobert Michelsen in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-10/msg00114.html>.
Jim Meyering [Sun, 28 Oct 2012 07:38:09 +0000 (08:38 +0100)]
maint.mk: rename a new configurable variable
* top/maint.mk (_gl_translatable_string_re): Rename from
translation-markers: _gl_ prefix to insulate from user Makefile code,
and the _re suffix to inform that it's a regular expression.
Karl Berry [Mon, 29 Oct 2012 18:19:41 +0000 (11:19 -0700)]
autoupdate
Eric Blake [Fri, 26 Oct 2012 16:19:56 +0000 (10:19 -0600)]
maint.mk: let packages tweak sc_po_check pattern
libosinfo wants to look for XML files with translation markers
of the form <_name>string to translate</_name>. Rather than
globally adding this to the regex, I thought it would be easier
to make it possible for cfg.mk to override the default pattern.
https://www.redhat.com/archives/virt-tools-list/2012-October/msg00270.html
* top/maint.mk (sc_po_check): Add translation-markers, to allow
finding files with other translation markers.
Signed-off-by: Eric Blake <eblake@redhat.com>
Karl Berry [Tue, 23 Oct 2012 23:41:32 +0000 (16:41 -0700)]
autoupdate
Paul Eggert [Wed, 17 Oct 2012 01:58:09 +0000 (18:58 -0700)]
euidaccess: speed up 'configure' on GNU hosts
* m4/euidaccess.m4 (gl_FUNC_NONREENTRANT_EUIDACCESS):
Check for setregid here, not in gl_PREREQ_EUIDACCESS, since
it's needed only in this case. Use AC_CHECK_DECLS, not
AC_CHECK_DECLS_ONCE.
(gl_PREREQ_EUIDACCESS): Do not use AC_CHECK_HEADERS_ONCE libgen.h
or AC_REQUIRE for AC_FUNC_GETGROUPS.
Paul Eggert [Tue, 16 Oct 2012 23:01:05 +0000 (16:01 -0700)]
* lib/regexec.c (re_search_internal): Fix grammar in comment.
Paul Eggert [Mon, 15 Oct 2012 20:07:07 +0000 (13:07 -0700)]
fchmodat, fchownat, fstatat: port to non-inlining compilers
Problem reported for FreeBSD 9 by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-10/msg00070.html>.
* lib/chmodat.c, lib/chownat.c, lib/statat.c:
New files, which define FCHMODAT_INLINE etc.
* lib/fchmodat.c (FCHMODAT_INLINE):
* lib/fchownat.c (FCHOWNAT_INLINE):
* lib/fstatat.c (FSTATAT_INLINE):
Remove, as chmodat.c etc. now do this.
* modules/fchmodat (Files): Add lib/chmodat.c.
* modules/fchownat (Files): Add lib/chownat.c.
* modules/fstatat (Files): Add lib/statat.c.
Jim Meyering [Mon, 15 Oct 2012 16:34:56 +0000 (18:34 +0200)]
fchmodat.c, fchownat.c: fix compile-impeding typos
* lib/fchmodat.c (FCHMODAT_INLINE): Fix typo: s/#include/#define/
* lib/fchownat.c (FCHOWNAT_INLINE): Likewise.
Introduced in commit
v0.0-7636-gd202279.
Paul Eggert [Mon, 15 Oct 2012 16:31:07 +0000 (09:31 -0700)]
fcntl-h: support GNU flags like O_IGNORE_CTTY
* doc/posix-headers/fcntl.texi (fcntl.h): Support O_IGNORE_CTTY,
O_NOLINK, and O_NOTRANS. These flags are nonzero on GNU/Hurd
systems. Discovered when using fcntl-h with GNU Emacs, which uses
O_IGNORE_CTTY. Fix misspelling of F_SETLKW.
* lib/fcntl.in.h (O_IGNORE_CTTY, O_NOLINK, O_NOTRANS):
Define to 0 if not already defined.
* tests/test-fcntl-h.c: Test these new flags.
Paul Eggert [Mon, 15 Oct 2012 05:31:28 +0000 (22:31 -0700)]
faccessat, etc.: support AT_FDCWD-only use
* lib/at-func.c: If GNULIB_SUPPORT_ONLY_AT_FDCWD, then support
this function only if its first argument is AT_FDCWD.
Emacs wants faccessat for AT_EACCESS but not for any first-arg
values other than AT_FDCWD, so it doesn't want all the openat
machinery with fchdir etc.
* modules/faccessat, modules/fchmodat, modules/fchownat (Files):
* modules/fstatat, modules/mkdirat, modules/openat (Files):
* modules/unlinkat (Files):
Remove lib/openat-priv.h, as at-internal supplies this file.
Removing this file here allows us to support programs like Emacs
that avoid at-internal.
Paul Eggert [Mon, 15 Oct 2012 05:24:48 +0000 (22:24 -0700)]
faccessat: speed up 'configure' on mainstream hosts
* m4/faccessat.m4 (gl_PREREQ_FACCESSAT):
Use AT_CHECK_FUNCS for 'access', not AC_CHECK_FUNCS_ONCE,
since it's only on unusual platforms that we need to check for
'access', and it's better not to slow 'configure' down on all
platforms.
Paul Eggert [Mon, 15 Oct 2012 05:22:19 +0000 (22:22 -0700)]
faccessat: port to Solaris 10
* lib/faccessat.c: Include <fcntl.h>, for AT_EACCESS.
Needed on Solaris 10, which doesn't have AT_EACCESS,
so we need the Gnulib fcntl.h, which defines it.
Pádraig Brady [Mon, 15 Oct 2012 05:38:19 +0000 (22:38 -0700)]
canonicalize: fix C89 compilation
* lib/canonicalize.c (canonicalize_filename_mode): Swap order of
declarations so C89 is supported. Also remove the comment
referencing mem allocation as the suggested feature could
not be implemented as suggested.
Reported by Michael Goffioul
Karl Berry [Sat, 13 Oct 2012 22:14:05 +0000 (15:14 -0700)]
autoupdate
Paul Eggert [Fri, 12 Oct 2012 20:10:12 +0000 (13:10 -0700)]
group-member: omit unnecessary dependencies
This is for Emacs, which has its own allocator and where we
don't want to use xalloc.
* lib/group-member.c: Include xalloc-oversized.h, not xalloc.h,
since we no longer use xmalloc. Do not include stdbool.h, since
the changes below happen to remove the only use of bool.
(GROUPBUF_SIZE): New constant.
(struct group_info): Remove n_groups member. Add groupbuf member.
This lets us get the groups without using malloc, usually.
(free_group_info, get_group_info): Adjust to this.
(get_group_info): Return the number of groups found, or -1 on error.
Use plain malloc not xmalloc, and treat its failure as if there
are no groups, as the user already loses in case of error.
(group_member): Simplify, based on changes to get_group_info.
* modules/group-member (Depends-on): Remove dependencies on
xalloc and stdbool. Add dependency on xalloc-oversized.
Alexandre Duret-Lutz [Mon, 8 Oct 2012 21:46:18 +0000 (14:46 -0700)]
gethrxtime: port to C++
* lib/gethrxtime.h, lib/xtime.h [__cplusplus]: Add extern "C".
Paul Eggert [Fri, 5 Oct 2012 05:34:54 +0000 (22:34 -0700)]
ptsname: fix macro-name typo
* lib/stdlib.in.h (ptsname): Fix misspelling of GNULIB_NAMESPACE.
Simon Josefsson [Wed, 3 Oct 2012 18:10:23 +0000 (20:10 +0200)]
inttostr: Relax license.
* modules/inttostr (License): Change from LGPL to LGPLv2+.
Eric Blake [Wed, 3 Oct 2012 14:45:59 +0000 (08:45 -0600)]
ptsname_r: support ptys returned by FreeBSD posix_openpt
The recent change to ptsname exposed a latent bug in our ptsname_r
implementation on FreeBSD 8.2 - there, posix_openpt returns a
device where ttyname_r already lists it as /dev/pts/0.
* lib/ptsname_r.c (__ptsname_r): Don't munge name if it already
lives in /dev/pts/.
Eric Blake [Tue, 2 Oct 2012 22:50:57 +0000 (16:50 -0600)]
pselect: reject invalid file descriptors
Similar to the recent select fixes.
* m4/pselect.m4 (gl_FUNC_PSELECT): Probe for FreeBSD bug.
* lib/pselect.c (rpl_pselect) [!win32]: Work around it.
* modules/pselect (Depends-on): Add dup2.
* doc/posix-functions/pselect.texi (pselect): Document this.
Eric Blake [Tue, 2 Oct 2012 21:29:13 +0000 (15:29 -0600)]
select: reject invalid file descriptors
POSIX requires invalid file descriptors to be detected rather than
silently ignored. FreeBSD 8.2 detects if fd 0 has been closed
and appears in a set while fd 1 is still open, but mistakenly
optimizes and refuses to check any fds in the set beyond the
maximum open fd.
* m4/select.m4 (gl_FUNC_SELECT): Probe for FreeBSD bug.
* lib/select.c (rpl_select) [!win32]: Work around it.
* modules/select (Depends-on): Add dup2.
* doc/posix-functions/select.texi (select): Document this.
Eric Blake [Wed, 3 Oct 2012 01:38:24 +0000 (19:38 -0600)]
select: enhance test
Make sure the test is not picking up stale errno values, and add
a test for nfds validation.
* tests/test-select.h (do_select_bad_nfd_nowait, test_bad_nfd):
New functions.
(test_function): Enhance test.
(do_select_bad_fd): Avoid any stale errno values.
Eric Blake [Tue, 2 Oct 2012 18:22:19 +0000 (12:22 -0600)]
ptsname: reject invalid file descriptors
POSIX left errno undefined on ptsname() failure, although there
has at least been an effort to specify reasonable values to use:
http://www.austingroupbugs.net/view.php?id=503
However, our tests for ptsname and ptsname_r already require errno
to be set to useful values (as in glibc), so it is worth replacing
ptsname on FreeBSD 8.2 in order to get better QoI and pass the test.
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Probe for FreeBSD bug.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add new witness.
* modules/stdlib (Makefile.am): Replace witness.
* lib/stdlib.in.h (ptsname): Allow for replacement.
* modules/ptsname (configure.ac): Trigger replacement.
* doc/posix-functions/ptsname.texi (ptsname): Document this.
Nikos Mavrogiannopoulos [Thu, 27 Sep 2012 06:42:07 +0000 (08:42 +0200)]
hash-pjw-bare: new module
* lib/hash-pjw-bare.c: New file, very much like hash-pjw.c.
* lib/hash-pjw-bare.h: Likewise.
* modules/hash-pjw-bare: New file.
* MODULES.html.sh (Misc): Add it.
Copyright-paperwork-exempt: yes
Eric Blake [Thu, 6 Sep 2012 21:29:53 +0000 (15:29 -0600)]
manywarnings: cater to more gcc infelicities
Some versions of gcc (at least 4.2.1) noisily warn if
-Wuninitialized is given without -O; in isolation, configure
learns that the warning option is supported, but when later
compiling with -Werror, this makes builds fail. If the
option will have no effect for the configured choice of
$CFLAGS, then it is not worth including in the set.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add test for
-Wuninitialized without -O.
Signed-off-by: Eric Blake <eblake@redhat.com>
Ed Maste [Mon, 1 Oct 2012 23:48:22 +0000 (01:48 +0200)]
select, poll tests: Make setsockopt invocation effective.
* tests/test-poll.c (open_server_socket): Move setsockopt() call before
the bind() call.
* tests/test-select.h (open_server_socket): Likewise.
Paul Eggert [Sun, 30 Sep 2012 23:20:43 +0000 (16:20 -0700)]
sockets, sys_stat: restore AC_C_INLINE
This undoes the 2012-09-22 patch.
* m4/sockets.m4 (gl_SOCKETS):
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
Restore AC_C_INLINE, since MSVC requires __inline or _inline
and does not support plain 'inline'. Reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00183.html>.
Bruno Haible [Sun, 30 Sep 2012 21:39:03 +0000 (23:39 +0200)]
localeconv tests: Avoid test failure on OpenIndiana.
* tests/test-localeconv.c (main): On OpenIndiana (a Solaris 11 variant)
skip the 'grouping' and 'mon_grouping' tests.
Reported by Jim Meyering.
Bruno Haible [Sun, 30 Sep 2012 21:21:26 +0000 (23:21 +0200)]
havelib: Follow libtool developments.
* m4/lib-ld.m4: Rebase on libtool.m4 from libtool-2.4.
Suggested by Simon Josefsson.
Jim Meyering [Sat, 29 Sep 2012 17:18:08 +0000 (19:18 +0200)]
ChangeLog: mention who reported the problem.
Jim Meyering [Sat, 29 Sep 2012 17:13:21 +0000 (19:13 +0200)]
fstatat.c: fix a compile-impeding typo
* lib/fstatat.c (FSTATAT_INLINE): Fix typo: s/#include/#define/
Introduced in commit
v0.0-7636-gd202279.
Akim Demaille [Tue, 25 Sep 2012 11:58:12 +0000 (13:58 +0200)]
extern-inline: provide a -Wundef safe config.h
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Protect
"#if __GNUC_STDC_INLINE__" with "defined __GNUC_STDC_INLINE__"
to produce a -Wundef warning free config.h.
Paul Eggert [Thu, 27 Sep 2012 03:12:57 +0000 (20:12 -0700)]
hash-pjw: relax license to LGPLv2+
* modules/hash-pjw (License): Relax, with consent of author.
Karl Berry [Wed, 26 Sep 2012 13:48:40 +0000 (06:48 -0700)]
autoupdate
Akim Demaille [Tue, 25 Sep 2012 10:19:04 +0000 (12:19 +0200)]
maint.mk: fix strict vs. lazy variable issues with RELEASE
* top/maint.mk (_equal): New function.
(member_check): Strip the result to avoid spurious spaces.
(url_dir_list): Do not use ifeq, which is strict, as it will
require RELEASE_TYPE to be defined.
(announcement_Cc_, announcement_mail_headers_): Likewise: instead
of relying on ifeq, use $(release_type) to dispatch (lazily) onto...
(announcement_Cc_alpha,announcement_mail_headers_alpha)
(announcement_Cc_beta,announcement_mail_headers_beta)
(announcement_Cc_stable,announcement_mail_headers_stable): these.
(release): Do not depend on $(release-type), as it forces its
evaluation. Bounce to it.
Akim Demaille [Mon, 24 Sep 2012 08:06:15 +0000 (10:06 +0200)]
maint.mk: formatting changes
* top/maint.mk: Indent bodies of if's.
Akim Demaille [Thu, 20 Sep 2012 09:10:34 +0000 (11:10 +0200)]
maint.mk: provide "make upload" to ease uploading
See <http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00028.html>.
Do not depend simply on the current $(VERSION), as there may have been
new commits since the tarball generation. Rather, rely on $(RELEASE),
as "make release-commit" already does.
For consistency, add "make release RELEASE='X.Y TYPE'" as an alias for
"make TYPE".
* top/maint.mk (upload_command, upload, release): New.
(RELEASE_TYPE): If undefined, default to the second word of $(RELEASE).
(VERSION): first word of $(RELEASE) is always right.
(emit_upload_commands): Adjust.
* top/README-release: Update.
Akim Demaille [Fri, 21 Sep 2012 12:11:18 +0000 (14:11 +0200)]
maint.mk: factor the validation of RELEASE_TYPE
With help from Jim Meyering.
http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00132.html
* top/maint.mk (_empty, _sp): Move their definition earlier.
(member-check, release-type): New.
Use the latter instead of $(RELEASE_TYPE).
Remove now useless local checks.
Akim Demaille [Thu, 20 Sep 2012 09:09:53 +0000 (11:09 +0200)]
maint.mk: silent rules
With help from Stefano Lattarini.
* top/maint.mk (writable-files): Use $(AM_V_GEN).
(announcement): Use $(AM_V_at).
Paul Eggert [Mon, 24 Sep 2012 19:41:27 +0000 (12:41 -0700)]
localename: port gl_locale_name_thread_unsafe to FreeBSD
* lib/localename.c (gl_locale_name_thread_unsafe): Port to FreeBSD,
and use the simpler FreeBSD implementation on Mac OS X as well.
Original idea suggested by Ed Maste in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00094.html>.
Paul Eggert [Thu, 30 Aug 2012 06:13:42 +0000 (23:13 -0700)]
binary-io, eealloc, mbfile, mbiter, mbutil, xsize: better 'inline'
* lib/binary-io.c, lib/eealloc.c, lib/mbfile.c, lib/mbiter.c:
* lib/mbuiter.c, lib/xsize.c: New files.
* lib/binary-io.h (BINARY_IO_INLINE):
* lib/eealloc.h (EEALLOC_INLINE):
* lib/mbfile.h (MBFILE_INLINE):
* lib/mbiter.h (MBITER_INLINE):
* lib/mbuiter.h (MBUITER_INLINE):
* lib/xsize.h (XSIZE_INLINE):
New macros.
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/eealloc.m4 (gl_EEALLOC):
* m4/mbfile.m4 (gl_MBFILE):
* m4/mbiter.m4 (gl_MBITER):
* m4/xsize.m4 (gl_XSIZE):
Do not require AC_C_INLINE.
* modules/binary-io (Files, lib_SOURCES): Add lib/binary-io.c
* modules/eealloc (Files, lib_SOURCES): Add lib/eealloc.c.
* modules/mbfile (Files, lib_SOURCES): Add lib/mbfile.c.
* modules/mbiter (Files, lib_SOURCES): Add lib/mbiter.c.
* modules/mbuiter (Files, lib_SOURCES): Add lib/mbuiter.c.
* modules/xsize (Files, lib_SOURCES): Add lib/xsize.c.
* modules/binary-io, modules/eealloc, modules/mbfile:
* modules/mbiter, modules/mbuiter:
(Depends-on): Add extern-inline.
Paul Eggert [Thu, 30 Aug 2012 05:17:49 +0000 (22:17 -0700)]
pipe-filter-gi, pipe-filter-ii: better use of 'inline'
* lib/pipe-filter-aux.c: New file.
* lib/pipe-filter-aux.h (PIPE_FILTER_AUX_INLINE): New macro.
Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* lib/pipe-filter-gi.c (filter_init, filter_cleanup)
(filter_retcode): No real need for inline here.
* modules/pipe-filter-gi, modules/pipe-filter-ii:
(Files): Add lib/pipe-filter-aux.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
(lib_SOURCES): Add pipe-filter-aux.c.
Paul Eggert [Thu, 30 Aug 2012 04:14:24 +0000 (21:14 -0700)]
fdutimensat: omit unnecessary AC_C_INLINE
* modules/fdutimensat (configure.ac): Remove AC_C_INLINE.
Paul Eggert [Thu, 30 Aug 2012 04:09:50 +0000 (21:09 -0700)]
fchmodat, fchownat, fstatat: use extern-inline
* lib/fchmodat.c, lib/openat.h (FCHMODAT_INLINE):
* lib/fchownat.c, lib/openat.h (FCHOWNAT_INLINE):
* lib/fstatat.c, lib/openat.h (FSTATAT_INLINE):
New macros.
* lib/openat.h:
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/fchmodat, modules/fchownat, modules/fstatat:
* modules/openat-h:
(Depends-on):
Add extern-inline.
(configure.ac): Remove AC_C_INLINE.
Paul Eggert [Thu, 30 Aug 2012 03:59:53 +0000 (20:59 -0700)]
acl, mbchar, priv-set: use extern-inline
* lib/set-mode-acl.c, lib/acl-internal.h (ACL_INTERNAL_INLINE):
* lib/mbchar.c, lib/mbchar.h (MBCHAR_INLINE):
* lib/priv-set.c, lib/priv-set.h (PRIV_SET_INLINE):
New macros.
* lib/acl-internal.h, lib/mbchar.h, lib/priv-set.h:
Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/acl.m4 (gl_FUNC_ACL):
* m4/mbchar.m4 (gl_MBCHAR):
* m4/priv-set.m4 (gl_PRIV_SET):
Remove AC_C_INLINE, since 'inline' is no longer used directly.
* modules/acl, modules/mbchar, modules/priv-set (Depends-on):
Add extern-inline.
Paul Eggert [Thu, 30 Aug 2012 00:59:49 +0000 (17:59 -0700)]
sockets, sys_stat: remove AC_C_INLINE in MSVC-only cases
* m4/sockets.m4 (gl_SOCKETS):
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
Remove AC_C_INLINE. Here, 'inline' is used only in MSVC
environments where it's already guaranteed to work, so we needn't
check for it at 'configure'-time.
Paul Eggert [Thu, 30 Aug 2012 00:49:12 +0000 (17:49 -0700)]
tls-tests: omit unnecessary 'inline'
* tests/test-tls.c (perhaps_yield): No longer inline.
Simplicity and portability trump efficiency in test cases.
Paul Eggert [Tue, 28 Aug 2012 06:11:45 +0000 (23:11 -0700)]
utimens-tests: avoid unnecessary 'inline'
* modules/fdutimensat-tests (configure.ac):
* modules/futimens-tests (configure.ac):
* modules/utimens-tests (configure.ac):
* modules/utimensat-tests (configure.ac):
Remove AC_C_INLINE.
* tests/test-utimens-common.h (ctime_compare):
No longer inline. Simplicity and portability trump efficiency here.
Paul Eggert [Tue, 28 Aug 2012 05:57:47 +0000 (22:57 -0700)]
misc: don't limit commentary to inline functions
* lib/binary-io.h, lib/malloca.h, lib/safe-alloc.c:
* lib/xalloc-oversized.h, lib/xsize.h:
Contrast macros to functions in general, not just to inline functions,
when the commentary does not apply only to inline functions.
Jim Meyering [Thu, 20 Sep 2012 12:02:36 +0000 (14:02 +0200)]
non-recursive-gnulib-prefix-hack: new module
* build-aux/prefix-gnulib-mk: Copied from coreutils, derived from
the file that originated in Bison.
* m4/non-recursive-gnulib-prefix-hack.m4: Likewise, this code is
largely copied from a snippet that resided in bison's configure.ac.
* modules/non-recursive-gnulib-prefix-hack: New file.
* MODULES.html.sh (Support for maintaining and releasing projects):
Add it.
Jim Meyering [Tue, 18 Sep 2012 14:25:41 +0000 (16:25 +0200)]
ChangeLog: fix indentation
Jim Meyering [Tue, 18 Sep 2012 14:25:19 +0000 (16:25 +0200)]
maint.mk: generalize _gl_tight_scope for non-recursive make
* top/maint.mk (_gl_tight_scope): Remove a hard-coded assumption
that *.h would describe additional .h files in the directory
specified by $(_gl_TS_dir). I.e., add this...
(_gl_TS_other_headers): New variable.
Jim Meyering [Tue, 18 Sep 2012 06:49:59 +0000 (08:49 +0200)]
maint.mk: exempt trailing blanks found in "binary" files
* top/maint.mk (sc_trailing_blank): Filter out any matches found in
"binary" files, as reported by grep. Suggested by Richard W.M. Jones
in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Jim Meyering [Mon, 17 Sep 2012 09:38:36 +0000 (11:38 +0200)]
maint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX
* top/maint.mk (sc_prohibit_path_max_allocation): Avoid false-positive
match for symbols like UNIX_PATH_MAX. Reported by Richard W.M. Jones
in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Jim Meyering [Mon, 17 Sep 2012 09:34:44 +0000 (11:34 +0200)]
maint.mk: teach sc_prohibit_magic_number_exit to accept 77
* top/maint.mk (sc_prohibit_magic_number_exit): Do not complain about
uses like "exit (77)". "77" is automake's "skip this test" exit code.
It is not in the same category as "exit (0)" or "exit (1)", and
besides, I know of no symbolic name for that 77. Reported by
Richard W.M. Jones in
http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Jim Meyering [Mon, 17 Sep 2012 09:25:00 +0000 (11:25 +0200)]
maint.mk: relax sc_prohibit_strcmp, to avoid a false positive
* top/maint.mk (sc_prohibit_strcmp): Relax regexp, so as to match
all uses of #define, not just those that start in column 1.
Richard W.M. Jones reported a false positive in
http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Paul Eggert [Sun, 16 Sep 2012 17:47:43 +0000 (10:47 -0700)]
localcharset: work around Mac OS X bug with UTF-8 and MB_CUR_MAX
* lib/localcharset.c (locale_charset) [DARWIN7]:
Return "ASCII" if the system reports "UTF-8" and MB_CUR_MAX <= 1,
as these two values are incompatible. Problem reported by Max Horn.
For more discussion, please see
<http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00061.html>.
Paul Eggert [Sun, 16 Sep 2012 17:37:16 +0000 (10:37 -0700)]
doc: document sticky-EOF issue
* doc/posix-functions/fgetc.texi (fgetc):
* doc/posix-functions/fgets.texi (fgets):
* doc/posix-functions/fread.texi (fread):
* doc/posix-functions/fscanf.texi (fscanf):
* doc/posix-functions/getc.texi (getc):
* doc/posix-functions/getchar.texi (getchar):
* doc/posix-functions/scanf.texi (scanf):
Mention that glibc and default Solaris do not conform to
C99 and POSIX-2001 or later, with respect to how getchar
etc. behave when feof reports nonzero.
Joachim Schmitz [Thu, 13 Sep 2012 06:41:24 +0000 (08:41 +0200)]
poll: fix poll(0, NULL, msec)
* lib/poll.c: don't exit early if NULL is the 1st arg to poll(),
but nfd is 0. In that case poll should behave like select.
Copyright-paperwork-exempt: yes
Joachim Schmitz [Thu, 13 Sep 2012 06:55:08 +0000 (08:55 +0200)]
poll: fix for systems that can't recv() on a non-socket
* lib/poll.c: if recv returns ENOTSOCK, assume the descriptor
is readable. In this case POLLHUP will not be supported.
* doc/posix-functions/poll.texi: Document this.
Copyright-paperwork-exempt: yes
Paolo Bonzini [Thu, 13 Sep 2012 06:51:16 +0000 (08:51 +0200)]
poll/select: document portability problems not fixed by Gnulib.
* doc/posix-functions/poll.texi: poll does not work well on
pipes under Windows. It has the same limitations as select on
BeOS.
* doc/posix-functions/select.texi: select does not work well
on pipes under Windows.
Karl Berry [Wed, 12 Sep 2012 23:37:37 +0000 (16:37 -0700)]
update from texinfo
Paul Eggert [Mon, 10 Sep 2012 20:47:00 +0000 (13:47 -0700)]
Fix typo in previous patch: 1 -> 4.
Paul Eggert [Mon, 10 Sep 2012 20:37:18 +0000 (13:37 -0700)]
fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Check for AIX 7.1 bug
that caused a GNU tar test failure. Problem reported by Jez Wain; see
<http://lists.gnu.org/archive/html/bug-tar/2012-07/msg00018.html>.
Eric Blake [Thu, 6 Sep 2012 22:25:29 +0000 (16:25 -0600)]
net_if: give more details about the bug being fixed
Jasper Lievisse Adriaanse reported that NetBSD 5.2 also has
the same bug. Also, when writing configure tests that use
<net/if.h> (such as for 'struct ifreq'), it is useful to know
what pre-requisite headers are needed within that test.
* doc/posix-headers/net_if.texi: Add clarification.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Wed, 5 Sep 2012 20:28:47 +0000 (14:28 -0600)]
net_if: new module
OpenBSD's <net/if.h> is not self-contained; this should compile:
| #define _POSIX_C_SOURCE 200809L
| #include <net/if.h>
| struct if_nameindex i;
but fails with:
In file included from foo.c:2:
/usr/include/net/if.h:112: error: expected specifier-qualifier-list before 'u_int'
...
/usr/include/net/if.h:674: error: field 'dstaddr' has incomplete type
In file included from /usr/include/net/if.h:691,
from foo.c:2:
/usr/include/net/if_arp.h:79: error: field 'arp_pa' has incomplete type
/usr/include/net/if_arp.h:80: error: field 'arp_ha' has incomplete type
*** Error code 1
We already had a test program for systems with the if_* functions
(including OpenBSD); but in adding this module, I had to enhance
that test to also work on platforms like mingw where we are now
providing a new header.
* modules/net_if: New module, borrowing ideas from netinet_in.
* m4/net_if_h.m4: New file.
* lib/net_if.in.h: Likewise.
* doc/posix-headers/net_if.texi (net/if.h): Document it.
* MODULES.html.sh (lacking POSIX:2008): Likewise.
* tests/test-net_if.c: Make function checks conditional.
Reported by Jasper Lievisse Adriaanse <jasper@humppa.nl>.
Signed-off-by: Eric Blake <eblake@redhat.com>
Mats Erik Andersson [Wed, 5 Sep 2012 20:08:37 +0000 (22:08 +0200)]
readutmp: fix non-portable UT_PID use
The module readutmp is broken for the standard use
read_utmp(..., READ_UTMP_USER_PROCESS | READ_UTMP_CHECK_PIDS)
for all releases of FreeBSD until 8.3, and all OpenBSD ever released.
The reason is that those systems do not provide `utmp.ut_pid', thus
making the macro UT_PID(u) identical to naught, and then turning
the predicate
UT_PID (u) <= 0
found in desirable_utmp_entry(), into a permanent true clause.
This makes desirable_utmp_entry() discard every legitimate
user's UTMP entry for said BSD releases. NetBSD and DragonflyBSD
are not touched by this malfunction.
Copyright-paperwork-exempt: yes
* lib/readutmp.c (desirable_utmp_entry) <READ_UTMP_CHECK_PIDS>:
Use `UT_PID (u) > 0' as absolute condition.
Karl Berry [Wed, 5 Sep 2012 15:45:32 +0000 (08:45 -0700)]
update from texinfo
Jim Meyering [Tue, 4 Sep 2012 09:36:38 +0000 (11:36 +0200)]
fts: reduce two or more trailing slashes to just one, usually
* lib/fts.c (fts_open): Upon initialization, if a name ends in two
or more slashes, trim all but the final one. But if a name consists
solely of two slashes, don't modify it. If it consists solely of
three or more slashes, strip all but one.
This is part of the solution to a minor problem with rm:
it would print a bogus ELOOP diagnostic when failing to remove
the slash-decorated name of a symlink-to-directory:
$ mkdir d && ln -s d s && env rm -r s/
rm: cannot remove 's': Too many levels of symbolic links
With the change below and a trivial don't-trim-trailing-slashes
adjustment to remove.c, it does this:
$ env rm -r s/
rm: cannot remove 's/': Not a directory
Improved by: Eric Blake
Jim Meyering [Tue, 4 Sep 2012 09:31:09 +0000 (11:31 +0200)]
fts: when there is no risk of overlap, use memcpy, not memmove
* lib/fts.c (fts_alloc): Fix unjustified memmove: s/memmove/memcpy/
Karl Berry [Mon, 3 Sep 2012 00:23:28 +0000 (17:23 -0700)]
autoupdate
Karl Berry [Mon, 3 Sep 2012 00:23:01 +0000 (17:23 -0700)]
autoupdate
Jim Meyering [Wed, 30 Nov 2011 13:25:35 +0000 (14:25 +0100)]
manywarnings: update the list of "all" warnings
* m4/manywarnings.m4: Unite lists, and add many new options.
* build-aux/gcc-warning: New file.
Run this command with the latest gcc to see if they have added
options not yet on our list:
gl=.; comm -1 -3 \
<(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' $gl/m4/manywarnings.m4 |sort) \
<(gcc --help=warnings|sed -n 's/^ \(-[^ ]*\) .*/\1/p' |sort \
|grep -v --line-regexp -f <(cut -f1 $gl/build-aux/gcc-warning.spec))
Paul Eggert [Thu, 30 Aug 2012 00:43:04 +0000 (17:43 -0700)]
* lib/stdbool.in.h (_Bool) [__cplusplus]: bool, not _Bool.
Paul Eggert [Wed, 29 Aug 2012 14:52:32 +0000 (07:52 -0700)]
stdbool: be more compatible with mixed C/C++ compiles
* lib/stdbool.in.h (_Bool, true, false) [__cplusplus]:
Define to bool, true, false, respectively, as GCC's builtin
stdbool.h does. Problem reported by Michael Goffioul in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00143.html>.
Jim Meyering [Tue, 28 Aug 2012 11:56:25 +0000 (13:56 +0200)]
revert last change: it was not needed
* tests/test-vc-list-files-git.sh: There's already a test for
a working git, just below.
Jim Meyering [Tue, 28 Aug 2012 11:49:37 +0000 (13:49 +0200)]
tests: test-vc-list-files-git.sh: skip if git is not available
* tests/test-vc-list-files-git.sh: Skip this test when git is
not available.
Bruno Haible [Sun, 26 Aug 2012 15:04:56 +0000 (17:04 +0200)]
gnulib-tool: Remove no-op option --no-changelog.
* gnulib-tool (func_usage): Don't mention --no-changelog.
(do_changelog): Remove variable.
Reported by Dmitriy Selyutin <ghostman.sd@gmail.com>.
Karl Berry [Sat, 25 Aug 2012 15:39:03 +0000 (08:39 -0700)]
autoupdate
Paul Eggert [Fri, 24 Aug 2012 23:42:56 +0000 (16:42 -0700)]
doc: remove fdl-1.2.texi
It is no longer used or maintained, and its use of @acronym
is problematic. See the thread containing
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00134.html>.
* config/srclist.txt: Remove doc/old-licenses/fdl-1.2.texi.
* doc/old-licenses/fdl-1.2.texi: Remove.
Paul Eggert [Fri, 24 Aug 2012 10:29:39 +0000 (03:29 -0700)]
execinfo: port to FreeBSD
* m4/execinfo.m4 (gl_EXECINFO_H): Set LIB_EXECINFO to -lexecinfo
if needed, as in FreeBSD. Reported by Bastien Roucariès in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00113.html>.
* modules/execinfo (Link): Add $(LIB_EXECINFO).
Jim Meyering [Thu, 23 Aug 2012 20:02:39 +0000 (22:02 +0200)]
xstrtol.h: avoid "_Noreturn is not at beginning of declaration" warning
* lib/xstrtol.h: Put "_Noreturn" before "void" in declaration,
to placate gcc's -Wold-style-declaration.
Paul Eggert [Fri, 24 Aug 2012 09:19:57 +0000 (02:19 -0700)]
doc: do not use @acronym
* doc/inet_ntoa.texi (inet_ntoa):
* doc/parse-datetime.texi (Seconds since the Epoch)
(Specifying time zone rules):
* doc/posix-functions/inet_ntoa.texi (inet_ntoa):
Don't use @acronym. Problem reported by John Darlington in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00124.html>.
Paul Eggert [Thu, 23 Aug 2012 23:40:05 +0000 (16:40 -0700)]
stdnoreturn: port to newer GCCs
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): Avoid problems with
bleeding-edge GCC that complains about 'int _Noreturn foo (void);'.
Problem reported by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00121.html>.
Also, rename the 'test' function to a void a clash with the
already-supplied 'main' function; this fixes a bug that incorrectly
rejected GCC 4.7.1's <stdnoreturn.h>.
* doc/posix-headers/stdnoreturn.texi (stdnoreturn.h):
Document GCC problem.
Reuben Thomas [Wed, 22 Aug 2012 16:52:02 +0000 (10:52 -0600)]
pipe-filter: fix comment typo
* lib/pipe-filter.h: Mention correct function.
Paul Eggert [Wed, 22 Aug 2012 08:47:05 +0000 (01:47 -0700)]
execinfo: new module
This is for Emacs. Currently, it provides a no-effect stub
on all platforms where it does not already work.
It already works on glibc-based systems, and on Solaris 11.
* lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4, modules/execinfo:
New files.
* doc/glibc-headers/execinfo.texi (execinfo.h):
* MODULES.html.sh (Misc): Document it.
Paul Eggert [Tue, 21 Aug 2012 00:01:18 +0000 (17:01 -0700)]
extern-inline: support old GCC 'inline'
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Use pre-C99 GCC 'inline'
if available. This applies to GCC versions 2.7 through 4.2, or
when newer GCC is using -fgnu89-inline. The goal is to address
some of the performance issues mentioned by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00097.html>.
Eric Blake [Mon, 20 Aug 2012 15:38:54 +0000 (09:38 -0600)]
maint.mk: avoid redundant file name in message
$(_sc_search_regexp) already prefixes its errors with $(ME), so
failure on one of these rules looked like:
maint.mk: maint.mk: replace strcmp calls above with STREQ/STRNEQ
* top/maint.mk (sc_prohibit_strcmp, sc_unmarked_diagnostics)
(sc_prohibit_defined_have_decl_tests, sc_const_long_option)
(sc_makefile_path_separator_check): Remove bogus $(ME).
Signed-off-by: Eric Blake <eblake@redhat.com>
Mike Frysinger [Mon, 20 Aug 2012 00:42:39 +0000 (01:42 +0100)]
timer-time: fix link order when static linking on glibc
* m4/timer_time.m4 (LIB_TIMER_TIME): Add -lpthread
_after_ -lrt so that it's significant.
Paul Eggert [Sat, 18 Aug 2012 23:27:56 +0000 (16:27 -0700)]
timespec: omit unnecessary AC_C_INLINE
* m4/timespec.m4 (gl_TIMESPEC): Do not require AC_C_INLINE.
Paul Eggert [Sat, 18 Aug 2012 23:21:15 +0000 (16:21 -0700)]
stat-time: omit unnecessary AC_C_INLINE
* m4/stat-time.m4 (gl_STAT_TIME, gl_STAT_BIRTHTIME):
Do not require AC_C_INLINE.
Paul Eggert [Sat, 18 Aug 2012 23:18:18 +0000 (16:18 -0700)]
ignore-value: omit unnecessary AC_C_INLINE
* modules/ignore-value (configure.ac): Do not require AC_C_INLINE.
Paul Eggert [Sat, 18 Aug 2012 22:46:14 +0000 (15:46 -0700)]
sys_select: avoid 'static inline'
* lib/sys_select.in.h (rpl_fd_isset): Now static, not static inline.
Paul Eggert [Sat, 18 Aug 2012 22:34:37 +0000 (15:34 -0700)]
mktime: avoid 'static inline'
* lib/mktime.c (leapyear, ydhms_diff): Now static, not static inline.
* m4/mktime.m4 (gl_PREREQ_MKTIME): Do not require AC_C_INLINE.
Karl Berry [Sun, 19 Aug 2012 16:29:26 +0000 (09:29 -0700)]
autoupdate