Jim Meyering [Thu, 19 Apr 2012 14:39:12 +0000 (16:39 +0200)]
announce-gen: avoid failure due to lack of Digest::SHA1
Even with the preferred Digest::SHA available, this script
would fail when the backup module, Digest::SHA1, was not installed.
* build-aux/announce-gen: Quote the conditional use of "use".
Reported by Reuben Thomas in:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30444
Jim Meyering [Thu, 19 Apr 2012 14:02:23 +0000 (16:02 +0200)]
bootstrap: don't let a user's CDPATH setting affect this script
When CDPATH is set, cd will sometimes generate output.
When "cd" is run in a subshell whose output matters, that
surprising-to-some output can cause malfunction.
Unsetting CDPATH turns off this shell "feature."
* build-aux/bootstrap (CDPATH): Unset.
Reported by Reuben Thomas in:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30435
and inspired by his patch here:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30440
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
* top/maint.mk (prohibit_undesirable_word_seq_RE_): An @xref{...}
should start a sentence and should not be preceded by "see",
"see also", etc. Add heuristic for @pxref too.
Jim Meyering [Mon, 16 Apr 2012 16:22:40 +0000 (18:22 +0200)]
configmake: correct minor inconsistency in Makefile rule
* modules/configmake (Makefile.am): All other rules like this one
run the final "mv -f ..." in the same backslash-continued command
as the one that does everything else. This one put the mv -f ...
command on a separate, non-backslash-continued line.
Make it like the others.
Joel E. Denny [Mon, 16 Apr 2012 15:27:48 +0000 (08:27 -0700)]
Fix recursion of install-* into po directories.
Bison's install-pdf bug reported by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* build-aux/po/Makefile.in.in (install-dvi, install-html)
(install-info, install-pdf, install-ps): New targets.
Bruno Haible [Thu, 12 Apr 2012 18:59:22 +0000 (20:59 +0200)]
New module 'sys_resource'.
* lib/sys_resource.in.h: New file.
* m4/sys_resource_h.m4: New file.
* modules/sys_resource: New file.
* doc/posix-headers/sys_resource.texi: Mention the new module.
Paul Eggert [Wed, 4 Apr 2012 07:56:15 +0000 (00:56 -0700)]
regex: remove unnecessary type punning
Problem reported by Vladimir Serbinenko in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-04/msg00006.html>.
* lib/regex.h (struct re_pattern_buffer): Change the type of
__REPB_PREFIX(buffer) from unsigned char * to struct re_dfa_t *.
Fix comment to match code.
* lib/regcomp.c (re_compile_fastmap, re_compile_fastmap_iter, regfree)
(re_compile_internal, free_workarea_compile, analyze, lower_subexp)
(parse, parse_reg_exp, parse_branch, parse_expression, parse_sub_exp):
* lib/regexec.c (regexec, re_search_stub, re_search_internal)
(set_regs):
Omit no-longer-necessary casts.
Bruno Haible [Tue, 3 Apr 2012 19:58:52 +0000 (21:58 +0200)]
New module 'ilogbl'.
* lib/math.in.h (ilogbl): New declaration.
* lib/ilogbl.c: New file.
* m4/ilogbl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether ilogbl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGBL, HAVE_ILOGBL.
* modules/math (Makefile.am): Substitute GNULIB_ILOGBL, HAVE_ILOGBL.
Split sed invocation, to avoid the limit of 100 substitutions of
HP-UX 'sed'.
* modules/ilogbl: New file.
* tests/test-math-c++.cc: Check the declaration of ilogbl.
* doc/posix-functions/ilogbl.texi: Mention the new module.
Bruno Haible [Tue, 3 Apr 2012 19:13:26 +0000 (21:13 +0200)]
New module 'ilogbf'.
* lib/math.in.h (ilogbf): New declaration.
* lib/ilogbf.c: New file.
* m4/ilogbf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether ilogbf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGBF, HAVE_ILOGBF,
REPLACE_ILOGBF.
* modules/math (Makefile.am): Substitute GNULIB_ILOGBF, HAVE_ILOGBF,
REPLACE_ILOGBF.
* modules/ilogbf: New file.
* tests/test-math-c++.cc: Check the declaration of ilogbf.
* doc/posix-functions/ilogbf.texi: Mention the new module.
Bruno Haible [Tue, 3 Apr 2012 17:02:15 +0000 (19:02 +0200)]
Tests for module 'ilogb'.
* modules/ilogb-tests: New file.
* tests/test-ilogb.c: New file.
* tests/test-ilogb.h: New file, based on tests/test-logb.h and
tests/test-logb-ieee.h.
Bruno Haible [Tue, 3 Apr 2012 16:59:33 +0000 (18:59 +0200)]
New module 'ilogb'.
* lib/math.in.h (ilogb): New declaration.
* lib/ilogb.c: New file.
* m4/ilogb.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether ilogb is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGB, HAVE_ILOGB,
REPLACE_ILOGB.
* modules/math (Makefile.am): Substitute GNULIB_ILOGB, HAVE_ILOGB,
REPLACE_ILOGB.
* modules/ilogb: New file.
* tests/test-math-c++.cc: Check the declaration of ilogb.
* doc/posix-functions/ilogb.texi: Mention the new module.
Bruno Haible [Tue, 3 Apr 2012 10:53:31 +0000 (12:53 +0200)]
New module 'logbl'.
* lib/math.in.h (logbl): New declaration.
* lib/logbl.c: New file.
* m4/logbl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logbl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBL, HAVE_LOGBL,
REPLACE_LOGBL.
* modules/math (Makefile.am): Substitute GNULIB_LOGBL, HAVE_LOGBL,
REPLACE_LOGBL.
* modules/logbl: New file.
* tests/test-math-c++.cc: Check the declaration of logbl.
* doc/posix-functions/logbl.texi: Mention the new module.
Bruno Haible [Tue, 3 Apr 2012 02:44:59 +0000 (04:44 +0200)]
New module 'logbf'.
* lib/math.in.h (logbf): New declaration.
* lib/logbf.c: New file.
* m4/logbf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logbf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBF, HAVE_LOGBF,
REPLACE_LOGBF.
* modules/math (Makefile.am): Substitute GNULIB_LOGBF, HAVE_LOGBF,
REPLACE_LOGBF.
* modules/logbf: New file.
* tests/test-math-c++.cc: Check the declaration of logbf.
* doc/posix-functions/logbf.texi: Mention the new module.
Bruno Haible [Tue, 3 Apr 2012 00:57:26 +0000 (02:57 +0200)]
logb tests: More tests.
* tests/test-logb.h: New file, based on tests/test-logb.c and
tests/test-frexp.h.
* tests/test-logb.c: Include minus-zero.h, test-logb.h.
(main): Just invoke test_function.
* modules/logb-tests (Files): Add tests/test-logb.h,
tests/minus-zero.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_logb_SOURCES.
Bruno Haible [Sun, 1 Apr 2012 17:29:21 +0000 (19:29 +0200)]
log10l: Work around log10l-ieee test failure on IRIX 6.5.
* lib/log10l.c: Include <float.h>
(log10l): On IRIX, normalize the +Infinity value.
* modules/log10l (Depends-on): Add 'float'.
* doc/posix-functions/log10l.texi: Mention the IRIX problem with
+Infinity.
Bruno Haible [Sun, 1 Apr 2012 15:56:33 +0000 (17:56 +0200)]
log10f-ieee: Work around test failure on NetBSD 5.1.
* m4/log10f-ieee.m4: New file.
* m4/log10f.m4 (gl_FUNC_LOG10F): If gl_FUNC_LOG10F_IEEE is present,
test whether log10f works with a negative argument. Replace it if not.
* lib/log10f.c (log10f): For negative arguments, return NaN.
* modules/log10f-ieee (Files): Add m4/log10f-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG10F_IEEE.
* doc/posix-functions/log10f.texi: Mention the log10f-ieee module.
Bruno Haible [Sun, 1 Apr 2012 15:10:01 +0000 (17:10 +0200)]
log10-ieee: Work around test failure on NetBSD 5.1 and Solaris 11.
* m4/log10-ieee.m4: New file.
* m4/log10.m4 (gl_FUNC_LOG10): If gl_FUNC_LOG10_IEEE is present, test
whether log10 works with a negative argument. Replace it if not.
* lib/log10.c (log10): For negative arguments, return NaN.
* modules/log10-ieee (Files): Add m4/log10-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG10_IEEE.
* doc/posix-functions/log10.texi: Mention the log10-ieee module.
Bruno Haible [Sun, 1 Apr 2012 12:41:57 +0000 (14:41 +0200)]
log10l: Work around AIX 5.1, IRIX 6.5, OSF/1 5.1 bug.
* lib/math.in.h (log10l): Override if REPLACE_LOG10L is 1.
* lib/log10l.c (log10l): If log10l exists, use it and provide just the
workaround.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): New macro.
(gl_FUNC_LOG10L): Invoke it. Set REPLACE_LOG10L.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10L.
* modules/math (Makefile.am): Substitute REPLACE_LOG10L.
* modules/log10l (configure.ac): Consider REPLACE_LOG10L.
(Depends-on): Update conditions.
* doc/posix-functions/log10l.texi: Mention the MSVC9, AIX 5.1,
IRIX 6.5, OSF/1 5.1 problems.
Bruno Haible [Sun, 1 Apr 2012 12:29:37 +0000 (14:29 +0200)]
log10f: Work around OSF/1 5.1 bug.
* lib/math.in.h (log10f): Override if REPLACE_LOG10F is 1.
* lib/log10f.c (log10f): If logf exists, use it and provide just the
workaround.
* m4/log10f.m4 (gl_FUNC_LOG10F_WORKS): New macro.
(gl_FUNC_LOG10F): Invoke it. Set REPLACE_LOG10F.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10F.
* modules/math (Makefile.am): Substitute REPLACE_LOG10F.
* modules/log10f (configure.ac): Consider REPLACE_LOG10F.
(Depends-on): Update conditions.
* doc/posix-functions/log10f.texi: Mention the OSF/1 5.1 problem.
Paul Eggert [Fri, 30 Mar 2012 22:24:06 +0000 (15:24 -0700)]
regex: pacify GCC when compiling GRUB
* lib/regcomp.c (init_dfa): Make a pointer 'const', to avoid
a diagnostic. Reported by Vladimir Serbinenko in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00163.html>.
Eric Blake [Thu, 29 Mar 2012 19:30:41 +0000 (13:30 -0600)]
stdio: don't assume gets any more
Gnulib intentionally does not have a gets module, and now that C11
and glibc have dropped it, we should be more proactive about warning
any user on a platform that still has a declaration of this dangerous
interface.
* m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
support.
* modules/stdio (Makefile.am): Likewise.
* lib/stdio-read.c (gets): Likewise.
* tests/test-stdio-c++.cc: Likewise.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
* lib/stdio.in.h (gets): Make warning occur in more places.
* doc/posix-functions/gets.texi (gets): Update documentation.
Reported by Christer Solskogen.
Eric Blake [Fri, 30 Mar 2012 02:47:55 +0000 (20:47 -0600)]
maint.mk: fix syntax checks without exclusions
Commit 727075d0 skipped per-line exclusions if ${exclude} is left
undefined, but was immediately broken by commit 44de969c which
always initialized the variable to the empty string.
* top/maint.mk (_sc_search_regexp): Allow for empty variable.
Reported by Daniel P. Berrange.
Bruno Haible [Sun, 25 Mar 2012 11:56:33 +0000 (13:56 +0200)]
locale: Provide a complete 'struct lconv'.
* m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
'struct lconv' does not contain int_p_cs_precedes.
* tests/test-locale.c (main): Check that 'struct lconv' is complete.
* doc/posix-headers/locale.texi: Update.
Bruno Haible [Sun, 25 Mar 2012 11:22:41 +0000 (13:22 +0200)]
locale: Provide a working 'struct lconv'.
* lib/locale.in.h (lconv): Override if REPLACE_STRUCT_LCONV is 1.
* m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
'struct lconv' does not even contain decimal_point.
(gl_LOCALE_H_DEFAULTS): Initialize REPLACE_STRUCT_LCONV.
* modules/locale (Makefile.am): Substitute REPLACE_STRUCT_LCONV.
* tests/test-locale.c (main): Check that 'struct lconv' is complete.
* doc/posix-headers/locale.texi: Mention the problems with
'struct lconv'.
Reported by Gianluigi Tiesi <sherpya@netfarm.it>.
gnulib-tool: fix imprecise comments w.r.t. an automake bug
It's not just Automake versions < 1.9b that creates an empty
pkgdatadir at installation time if pkgdata_DATA is specified
to empty; modern automake versions do this as well, at least
until automake 1.11.4 (not yet released at the moment of writing,
but soon to appear). That behaviour was generally considered a
feature rather than a bug, at least until this discussion:
<http://lists.gnu.org/archive/html/automake/2012-03/msg00014.html>
Jim Meyering [Tue, 20 Mar 2012 19:35:44 +0000 (20:35 +0100)]
tests: avoid gcc warnings about argv vs. const initializers
* tests/test-posix_spawn1.c (main): Cast to "(char *)" to avoid two
warnings about discarding 'const' qualifier from pointer target type.
* tests/test-posix_spawn2.c (main): Likewise.
git-version-gen: don't let "prefix" envvar cause trouble
* build-aux/git-version-gen (prefix): Initialize properly,
so as not to use a value specified via the environment.
Details here: http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10810
Paul Eggert [Fri, 16 Mar 2012 21:17:55 +0000 (14:17 -0700)]
regex: diagnose too-large repeat counts in EREs
Previously, the code did not diagnose the too-large repeat count
in EREs like 'b{1000000000}'; instead, it silently treated the ERE
as if it were 'b\{1000000000}', which is unexpected.
* lib/regcomp.c (parse_dup_op): Fail with REG_ESIZE if a repeat count
is too large. REG_ESIZE is used nowhere else, and the diagnostic
is a reasonable one for this problem. Another option would be to
create a new REG_OVERFLOW error for repeat counts that are too large.
(fetch_number): Return RE_DUP_MAX + 1, not REG_ERROR, if the repeat
count is too large, so that the caller can distinguish the two cases.
* lib/regex.h (_REG_ESIZE): Document that this is now a generic
"Too large" return code, and that repeat counts are one example of this.
Paul Eggert [Fri, 16 Mar 2012 18:50:38 +0000 (11:50 -0700)]
doc: some glibc x32 integer width issues
* doc/posix-headers/sys_types.texi (sys/types.h):
* doc/posix-headers/time.texi (time.h):
Mention that glibc x32 does not conform to POSIX in a couple of
areas related to integer widths.
Bruno Haible [Wed, 14 Mar 2012 02:25:16 +0000 (03:25 +0100)]
hypotl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* m4/hypotl.m4 (gl_FUNC_HYPOTL_WORKS): New macro.
(gl_FUNC_HYPOTL): Invoke it. If the function does not work, set
REPLACE_HYPOTL to 1.
* doc/posix-functions/hypotl.texi: Mention the OpenBSD 5.1/SPARC bug.
Bruno Haible [Wed, 14 Mar 2012 01:40:49 +0000 (02:40 +0100)]
remainderl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): New macro.
(gl_FUNC_REMAINDERL): Invoke it. If the function does not work, set
REPLACE_REMAINDERL to 1.
* doc/posix-functions/remainderl.texi: Mention the OpenBSD 5.1/SPARC
bug.
Bruno Haible [Wed, 14 Mar 2012 00:51:10 +0000 (01:51 +0100)]
sqrtl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* lib/math.in.h (sqrtl): Replace it if REPLACE_SQRTL is 1.
* m4/sqrtl.m4 (gl_FUNC_SQRTL_WORKS): New macro.
(gl_FUNC_SQRTL): Invoke it. Set REPLACE_SQRTL to 1 if sqrtl() produces
too big rounding errors.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_SQRTL.
* modules/math (Makefile.am): Substitute REPLACE_SQRTL.
* modules/sqrtl (configure.ac): Consider REPLACE_SQRTL.
(Depends-on): Update conditions.
* tests/test-sqrtl.c (my_ldexpl): New function.
(main): Add test of a particular value.
* doc/posix-functions/sqrtl.texi: Mention the OpenBSD 5.1/SPARC bug.
Bruno Haible [Tue, 13 Mar 2012 23:40:18 +0000 (00:40 +0100)]
cbrtl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* m4/cbrtl.m4 (gl_FUNC_CBRTL_WORKS): New macro.
(gl_FUNC_CBRTL): Invoke it. If the function does not work, set
REPLACE_CBRTL to 1.
* doc/posix-functions/cbrtl.texi: Mention the OpenBSD 5.1/SPARC bug.