Paul Eggert [Sun, 15 Jul 2012 18:06:11 +0000 (11:06 -0700)]
pthread_sigmask: fix bug on FreeBSD 9
* lib/pthread_sigmask.c [PTHREAD_SIGMASK_INEFFECTIVE]:
Include string.h.
(pthread_sigmask) [PTHREAD_SIGMASK_INEFFECTIVE]:
When calling pthread_sigmask (1729, NEW, OLD), specify non-null NEW;
this avoids a bug on FreeBSD 9, where pthread_sigmask is effective
but pthread_sigmask (1729, NULL, NULL) returns zero.
See <http://bugs.gnu.org/11884>.
Avoid the need to call pthread_sigmask (1729, ...) in most cases,
by inspecting whether the main call changed the old mask.
Eric Blake [Fri, 13 Jul 2012 20:02:05 +0000 (14:02 -0600)]
maint.mk: new syntax check for HAVE_DECL checks
Based on Karel's report, we might as well enforce a syntax check
to help avoid future problems.
https://lists.gnu.org/archive/html/coreutils/2012-06/msg00037.html
Exempt a few files that still get picked up in the wild rather
than as a full gnulib module with m4 files.
* top/maint.mk (sc_prohibit_defined_have_decl_tests): New rule.
* cfg.mk
(exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests):
Exempt some false positives.
Based on a report by Karel Zak.
Eric Blake [Fri, 13 Jul 2012 17:50:59 +0000 (11:50 -0600)]
argp: make HAVE_DECL usage consistent
Autoconf guarantees that AC_CHECK_DECLS always defines the
corresponding HAVE_DECL_*. But our hand-coded use of AC_CHECK_DECL
did not define the macro to 0, leading to a false positive complaint:
https://lists.gnu.org/archive/html/coreutils/2012-06/msg00037.html
By sticking to conventions, we avoid the false positive.
* lib/argp-parse.c (__argp_parse): Check contents of HAVE_DECL
macros, not whether they are defined.
* m4/argp.m4 (gl_ARGP): Always define HAVE_DECL_* macros, per
convention with other declaration checks.
Reported by Karel Zak, with suggestions from Paul Eggert.
Eric Blake [Fri, 13 Jul 2012 17:43:40 +0000 (11:43 -0600)]
strndup: fix m4 usage error
Autoconf guarantees that AC_CHECK_DECLS_ONCE always defines the
corresponding HAVE_DECL_*, so checking #ifndef HAVE_DECL_* is bogus.
https://lists.gnu.org/archive/html/coreutils/2012-06/msg00037.html
* m4/strndup.m4 (gl_FUNC_STRNDUP): HAVE_DECL_STRNDUP is always
defined, to either 0 or 1.
Reported by Karel Zak.
Paul Eggert [Thu, 12 Jul 2012 04:16:27 +0000 (21:16 -0700)]
gettext: do not assume '#define ... defined ...' behavior
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS):
Do not use '#define FOO ... defined BAR ...', as the C standard says
it's not portable to expect that this works after macro expansion.
Problem reported for gzip by Steven M. Schweda in
<http://lists.gnu.org/archive/html/bug-gzip/2012-07/msg00000.html>.
Paul Eggert [Tue, 10 Jul 2012 23:50:06 +0000 (16:50 -0700)]
getloadavg: clean out old Emacs and Autoconf cruft
See Glenn Morris in <http://bugs.gnu.org/11905>.
* lib/getloadavg.c: Include <config.h>, <stdbool.h> always.
Include <sys/param.h> if HAVE_SYS_PARAM_H, not if unix or __unix.
(LDAV_CVT): Remove no-longer-used LOAD_AVE_CVT hook.
* m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Check for <sys/param.h>.
Reported by Jim Meyering.
* build-aux/bootstrap (warn): Remove, replaced by...
(warnf_, warn_): these.
Adjust callers.
Shorten messages that no longer fit in 80 columns.
Bugs in both of those conspired to make the
sc_vulnerable_makefile_CVE-2009-4029 rule 99% useless.
_sc_search_regexp's handling of non-empty $in_files would filter
out any offending file names. sc_vulnerable_makefile_CVE-2009-4029's
choice of in_files value meant there would be no match in most
projects, due to the presence of two or more Makefile.in files.
* top/maint.mk (_sc_search_regexp) [in_vc_files,in_files]: Clarify.
Fix a bug in how a non-empty $$in_files was processed:
(sc_vulnerable_makefile_CVE-2009-4029): Fix erroneous use of in_files:
in spite of the name, it's a regexp, not a list of file names.
Paul Eggert [Mon, 9 Jul 2012 08:17:51 +0000 (01:17 -0700)]
getloadavg, getopt: fix commentary re configure.in
Autoconf is deprecating the name 'configure.in', so change it to
to the new name 'configure.ac' in a couple of places.
* lib/getloadavg.c: configure.in -> configure.ac, in comment.
* m4/getopt.m4 (gl_GETOPT_IFELSE, gl_GETOPT_SUBSTITUTE_HEADER)
(gl_PREREQ_GETOPT): Remove obsolete commentary re Emacs configure.in.
Emacs has renamed it to configure.ac, and it no longer refers
to these macros anyway.
Paul Eggert [Fri, 6 Jul 2012 02:28:29 +0000 (02:28 +0000)]
sys_time: allow too-wide tv_sec
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Allow struct
timeval even if tv_sec is wider than time_t. This allows
OpenBSD 5.1 amd64 and fixes an Emacs porting glitch with utimens.c,
as without this patch gnulib replaces struct timeval
and OpenBSD futimes therefore has a type mismatch.
* doc/posix-headers/sys_time.texi: Mention this.
Paul Eggert [Fri, 6 Jul 2012 01:42:11 +0000 (18:42 -0700)]
pthread: check for both pthread_create and pthread_join
* m4/pthread.m4 (gl_PTHREAD_CHECK): Revert previous change, but
alter the check so that it tests for both pthread_create and
pthread_join. This should be more portable to hosts like OSF/1 5.1.
Suggested by Bruno Haible and Richard Yao in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-07/msg00048.html>.
do-release-commit-and-tag: fix the previous commit
* build-aux/do-release-commit-and-tag: Actually the test was right,
but the comment and the error message were misleading.
Fix comment, and improve error message.
Perform check first, so that NEWS is not modified uselessly.
Paul Eggert [Thu, 5 Jul 2012 04:28:15 +0000 (21:28 -0700)]
pthread: check for pthread_create, not pthread_join
* m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_create, not
pthread_join. On FreeBSD 9, pthread_create is in libpthread but
pthread_join in libc. I hope this removes the need for all the
OSF/1 5.1 pthread_join business. Reported by Richard Yao in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-07/msg00042.html>.
Jim Meyering [Wed, 4 Jul 2012 10:58:07 +0000 (12:58 +0200)]
parse-datetime: fix failure to diagnose invalid input
date -d "$(printf '\xb0')" would print 00:00:00 with today's date
rather than diagnosing the invalid input. Now it reports this:
date: invalid date '\260'
* lib/parse-datetime.y (to_uchar): Define.
(yylex): Don't sign-extend "other" bytes.
* m4/parse-datetime.m4: Require AC_C_INLINE for first use of "inline".
Thanks to Bruno Haible for the patch to this file.
* tests/test-parse-datetime.c (main): Add a test to trigger the bug.
Peter Evans reported the bug in GNU date: http://bugs.gnu.org/11843
Jim Meyering [Tue, 3 Jul 2012 20:22:49 +0000 (22:22 +0200)]
bootstrap: do not require now-removed build-aux/missing
Now that build-aux/missing is, er, missing, bootstrap would
silently fail.
* build-aux/bootstrap (gnulib_extra_files): Remove $build_aux/missing
from the list, now that (since commit v0.0-7489-gd0f486f) the file is
no longer part of gnulib.
Diagnose the failure.
Paul Eggert [Tue, 3 Jul 2012 17:08:41 +0000 (10:08 -0700)]
alloca: add support for HP NonStop TNS/E native
* lib/alloca.in.h (alloca): Support the new host.
From a suggestion by Joachim Schmitz in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-06/msg00355.html>.
fsusage: remove code not needed on non GNU/Linux systems.
* lib/fsusage.c [STAT_STATVFS || STAT_STATVFS64]:
Don't include headers no longer needed in this case.
* lib/fsusage.c [STAT_STATVFS &&
! (__linux__ && (__GLIBC__||__UCLIBC__))]: Undefine
STAT_STATFS2_FRSIZE to exclude code not used in this case.
Paul Eggert [Mon, 2 Jul 2012 21:24:04 +0000 (14:24 -0700)]
fsusage: include files needed for glibc 2.6 fallback
* lib/fsusage.c [STAT_STATVFS || STAT_STATVFS64]:
Include <sys/param.h>, <sys/mount.h>, <sys/vfs.h>
as they are needed for the 2.6 < glibc/Linux < 2.6.36 fallback.
Problem reported by Ludovic Courtès in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-07/msg00005.html>.
Bruno Haible [Thu, 28 Jun 2012 10:50:41 +0000 (12:50 +0200)]
remove: No longer override on all platforms. Fixes bug from 2012-03-20.
* m4/remove.m4 (gl_FUNC_REMOVE): Test gl_cv_func_unlink_honors_slashes,
not gl_cv_func_unlink_works.
Reported by Carlos O'Donell <carlos_odonell@mentor.com>.
Eric Blake [Tue, 26 Jun 2012 17:23:18 +0000 (11:23 -0600)]
config: drop scripts that automake says are not independent
These three scripts are too closely tied to automake internals to
be independently useful. In fact, automake would rather that
people did not mix the latest version of these scripts with older
versions of automake, as there is no effort being put into
maintaining backwards-compatibility when these scripts are updated.
The remaining scripts pulled from automake, such as mdate-sh or
depcomp, are independently useful, so a future patch may end up
reparenting those scripts to have gnulib instead of automake as
the master owner.
* config/srclist.txt: Drop elisp-comp, missing, and ylwrap.
* build-aux/elisp-comp: Delete.
* build-aux/missing: Likewise.
* build-aux/ylwrap: Likewise.
* modules/elisp-comp: Likewise.
* MODULES.html.sh: Drop mention of elisp-comp.
* NEWS: Mention this.
Paul Eggert [Tue, 26 Jun 2012 22:16:07 +0000 (15:16 -0700)]
regex: use locale-independent comparison for codeset name
See Bruno Haible's comment in <http://bugs.gnu.org/10305#120>.
* lib/regcomp.c (init_dfa): Use just ASCII case comparison
for codeset name.
* lib/regex_internal.h: Do not include <strings.h>, since we
no longer use strcasecmp.
* modules/regex (Depends-on): Remove strcase.
Bruno Haible [Tue, 26 Jun 2012 17:53:01 +0000 (19:53 +0200)]
getopt-posix: No longer guarantee that option processing is resettable.
* doc/posix-functions/getopt.texi: Drop description of problem with
internal state. Fix info about mingw and msvc9.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Don't require a resettable
option processing by getopt(). Run three test programs instead of one.
Simplify cross-compilation guess.
* NEWS: Mention the change.
Reported by Rich Felker <dalias@aerifal.cx>.
Bruno Haible [Sun, 24 Jun 2012 23:00:57 +0000 (01:00 +0200)]
ptsname_r: Make it consistent with ptsname on AIX.
* lib/ptsname_r.c (__ptsname_r): For AIX, use nearly the same
implementation as for OSF/1.
* tests/test-ptsname_r.c (main) [AIX]: Use the modern way of opening
a pty master.
Bruno Haible [Sun, 24 Jun 2012 15:05:25 +0000 (17:05 +0200)]
ptsname_r: Fix test failures on IRIX, Solaris.
* m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Test whether isatty sets
errno when it fails. Define ISATTY_FAILS_WITHOUT_SETTING_ERRNO
accordingly.
* lib/ptsname_r.c: Include <fcntl.h>.
(__ptsname_r): When isatty returned false, then on IRIX, Solaris
set errno if fd is invalid.
* tests/test-isatty.c (main): Update comments.
Bruno Haible [Sat, 23 Jun 2012 15:08:47 +0000 (17:08 +0200)]
getopt-gnu: Handle suboptimal getopt_long's abbreviation handling.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): If getopt_long exists but
does not handle abbreviated long options with equivalent
disambiguations, set gl_replace_getopt to yes.
* doc/posix-functions/getopt.texi: Mention the OpenBSD 5.0 problem.
* lib/grantpt.c: Don't include <fcntl.h>.
(grantpt): Don't verify the validity of the file descriptor.
* modules/grantpt (Depends-on): Remove fcntl-h.
* tests/test-grantpt.c (main): Allow grantpt to succeed for invalid
file descriptors.
* doc/posix-functions/grantpt.texi: Document more platforms on which
grantpt succeeds for invalid file descriptors.
Reported by Rich Felker <dalias@aerifal.cx>.
Bruno Haible [Fri, 22 Jun 2012 10:02:54 +0000 (12:02 +0200)]
fbufmode test: Don't test unportable behaviour.
* tests/test-fbufmode.c (test_mode): New function, extracted from main.
(main): Invoke it three times.
Reported by Szabolcs Nagy <nsz@port70.net>
and Rich Felker <dalias@aerifal.cx>.
Bruno Haible [Thu, 21 Jun 2012 20:45:22 +0000 (22:45 +0200)]
gnulib-tool: Refactor inctests variable.
* gnulib-tool: Normalize inctests to 'true' or 'false', not ''.
(func_modules_transitive_closure,
func_modules_transitive_closure_separately,
func_import, func_create_testdir): Update.
* gnulib-tool: Accept option --without-tests.
(func_usage): Document --without-tests option. Rearrange.
(inctests): Normalize according to the mode.
* NEWS: Mention the change.
Suggested by Simon Josefsson.
Bruno Haible [Thu, 21 Jun 2012 10:39:37 +0000 (12:39 +0200)]
nonblocking: Avoid compilation error on mingw64.
* m4/stdio_h.m4 (gl_STDIO_H): Invoke gl_MODULE_INDICATOR for scanf,
fscanf.
* modules/vscanf (configure.ac): Invoke gl_MODULE_INDICATOR.
* modules/vfscanf (configure.ac): Likewise.
* lib/stdio-read.c (scanf, fscanf, vscanf, vfscanf): Enable function
definition only if stdio.h has prepared it.
Reported by Daniel P. Berrange <berrange@redhat.com>.
Bernd Jendrissek [Wed, 20 Jun 2012 23:04:28 +0000 (01:04 +0200)]
Do use readlink if available
The main effect of this patch is to make gnulib-tool not spam the
terminal with failures from ls. Despite the copious stderr output,
files still get linked correctly.
gnulib-tool: Use readlink if it is available.
* gnulib-tool (func_readlink): Choose function more appropriately.
Running under dash, type -p readlink fails because dash doesn't
understand -p. That causes gnulib-tool to fall back to ls to read
symlinks, despite readlink being available. That, in turn, spams the
terminal when func_ln_if_changed's DEST argument doesn't exist.
The output from type goes to /dev/null anyway, so asking for -p has no
purpose.
Paul Eggert [Thu, 21 Jun 2012 09:13:59 +0000 (02:13 -0700)]
posixtm-tests: port to buggy compiler
Problem reported by Simon Josefsson in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-06/msg00246.html>.
* modules/posixtm-tests (Depends-on): Add stdint.
* tests/test-posixtm.c (struct posixtm_test.t_expected):
Now of type int_least64_t, not int64_t, both because that's
what INT64_C returns and because int_least64_t works even
on 72-bit hosts.
(T): Use INT64_C on constants outside the traditional int range,
to work around compiler bug noted by Simon.
Paul Eggert [Thu, 21 Jun 2012 08:49:15 +0000 (01:49 -0700)]
mktime: fix integer overflow in 'configure'-time test
* m4/mktime.m4 (gl_FUNC_MKTIME): Do not rely on undefined behavior
after integer overflow. Problem reported by Rich Felker in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-06/msg00257.html>.
Also, don't look for further instances of a bug if we've already
found one instance; this helps 'configure' run faster.
Paul Eggert [Wed, 20 Jun 2012 14:06:54 +0000 (07:06 -0700)]
init.sh: do not rely on autoupated PWD
This addresses symptoms of the problem reported by Nelson H.F. Beebe in
<http://lists.gnu.org/archive/html/bug-gzip/2012-06/msg00008.html>.
Although Nelson's bug was not necessarily fixed by this patch,
it seems wise to make the change for safety.
* tests/init.sh (path_prepend_): Do not rely on PWD updating
automagically after 'cd'; this is not reliable on older shells.
(setup_): Fail if we cannot cd to temporary directory.
Bruno Haible [Wed, 20 Jun 2012 00:01:14 +0000 (02:01 +0200)]
stat, fstat: Avoid warnings on mingw64.
* lib/stat.c (stat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Undefine before
redefining.
* lib/fstat.c (stat, fstat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Likewise.
Reported by Daniel P. Berrange <berrange@redhat.com>.
Bruno Haible [Tue, 19 Jun 2012 21:35:08 +0000 (23:35 +0200)]
stdioext: Add support for musl libc.
* m4/fbufmode.m4 (gl_FUNC_FBUFMODE): Test whether __fbufsize exists.
* lib/fbufmode.c (fbufmode): Add conditional code for musl.
* m4/fseterr.m4: New file.
* lib/fseterr.h (fseterr): Define as an alias of __fseterr if that
function exists.
* modules/fseterr (Files): Add m4/fseterr.m4.
(configure.ac): Invoke gl_FUNC_FSETERR. Compile fseterr.c if
__fseterr does not exist.
(Makefile.am): Remove fseterr.c from lib_SOURCES.
* lib/freadable.h: Update comment.
* lib/fwritable.h: Update comment.
* lib/freading.h: Update comment.
* lib/fwriting.h: Update comment.
* m4/freadahead.m4: New file.
* lib/freadahead.h (freadahead): Define as an alias of __freadahead if
that function exists.
* modules/freadahead (Files): Add m4/freadahead.m4.
(configure.ac): Invoke gl_FUNC_FREADAHEAD. Compile freadahead.c if
__freadahead does not exist.
(Makefile.am): Remove freadahead.c from lib_SOURCES.
* m4/freadptr.m4: New file.
* lib/freadptr.h (freadptr): Define as an alias of __freadptr if that
function exists.
* modules/freadptr (Files): Add m4/freadptr.m4.
(configure.ac): Invoke gl_FUNC_FREADPTR. Compile freadptr.c if
__freadptr does not exist.
(Makefile.am): Remove freadptr.c from lib_SOURCES.
* m4/freadseek.m4: New file.
* lib/freadseek.c (freadptrinc): Use __freadptrinc if that function
exists.
* modules/freadseek (Files): Add m4/freadseek.m4.
(configure.ac): Invoke gl_FUNC_FREADSEEK.
* lib/fpurge.c (fpurge): Update comment.
Reported by and with help from Rich Felker <dalias@aerifal.cx>.
Paul Eggert [Sun, 17 Jun 2012 16:55:15 +0000 (09:55 -0700)]
regex: avoid warning when pointers are not long
* lib/regcomp.c (parse_dup_op, mark_opt_subexp): Cast between void *
and uintptr_t, not long, for portability to hosts where pointers and
long have different sizes. Issue noted by Daniel P. Berrange in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-06/msg00122.html>
and fix suggested by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-06/msg00128.html>.
Akim Demaille [Tue, 12 Jun 2012 10:23:59 +0000 (12:23 +0200)]
announce-gen: VPATH issues
* build-aux/announce-gen (--srcdir): New option, used to trim the
$srcdir part of the path from $builddir to NEWS.
* top/maint.mk (announcement): Adjust.
Akim Demaille [Thu, 7 Jun 2012 14:17:36 +0000 (16:17 +0200)]
gnu-web-doc-update: VPATH builds
* build-aux/gnu-web-doc-update (--builddir): New option.
Revamp the handling of options.
Prefer $(...) to `...`.
Don't pass --tmpdir=. to mktemp, it is useless given that we specify
the template, and it is GNU mktemp specific.
Prefer set -e to long series of &&.
Restore the initial git branch, not "master".
Properly initialize submodules (don't rely only on bootstrap)
Do not reconfigure blindly, use config.status.
* top/README-release: Update instructions for gnu-web-doc-update.
Jim Meyering [Mon, 11 Jun 2012 09:32:54 +0000 (11:32 +0200)]
maint.mk: revert most of the previous change re "all these"
* top/maint.mk (prohibit_undesirable_word_seq_RE_): Remove that pair.
For rationale, see the discussion at
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30912
Jim Meyering [Sun, 10 Jun 2012 19:49:59 +0000 (21:49 +0200)]
maint.mk: prohibit common grammar error: "all these"
* top/maint.mk (prohibit_undesirable_word_seq_RE_): Add "all these" to
the list of prohibited word sequences. It should be "all of these".
* lib/tempname.c (__gen_tempname): Fix one of them.
Akim Demaille [Thu, 7 Jun 2012 14:17:30 +0000 (16:17 +0200)]
do-release-commit-and-tag: support VPATH builds
* build-aux/do-release-commit-and-tag: Prefer $(...) to `...`.
(noteworthy): Defined earlier to factor its value.
(noteworthy_stub): New.
Use it to factor.
(help_version): Split into...
(help, version): these.
Adjust the option processing part.
Support "--option=value" in addition to "--option value".
(builddir): New.
(--builddir): New option.
* top/README-release: Document this.
Reword slightly so that the reader cannot understand that he
has to do these steps before calling do-release-commit-and-tag.
Paolo Bonzini [Sun, 3 Jun 2012 16:29:00 +0000 (18:29 +0200)]
error, strerror-override: Support mingw64 from Fedora 17.
* lib/errno.in.h (GNULIB_defined_ESTREAMS): Use a different indicator
for ETXTBSY, ENODATA, ENOSR, ENOSTR, ETIME, EOTHER, compared to
EINPROGRESS.
* lib/strerror-override.h (strerror_override): Test it.
* lib/strerror-override.c (strerror_override): Likewise.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also ETXTBSY.