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.
Bruno Haible [Mon, 12 Mar 2012 12:15:48 +0000 (13:15 +0100)]
uninorm: Don't crash in out-of-memory conditions.
* lib/uninorm/u-normalize-internal.h (FUNC): Handle malloc() failure
gracefully.
* lib/uninorm/uninorm-filter.c (uninorm_filter_write): Likewise.
Based on a report and patch by Stephen Gallagher <sgallagh@redhat.com>.
Bruno Haible [Sun, 11 Mar 2012 21:14:04 +0000 (22:14 +0100)]
log2f-ieee: Work around test failure on NetBSD 5.1 and Solaris 10.
* m4/log2f-ieee.m4: New file.
* m4/log2f.m4 (gl_FUNC_LOG2F): If gl_FUNC_LOG2F_IEEE is present, test
whether log2f works with a minus zero argument. Replace it if not.
* modules/log2f-ieee (Files): Add m4/log2f-ieee.m4.
(Depends-on): Add log2-ieee.
(configure.ac): Invoke gl_FUNC_LOG2F_IEEE.
* doc/posix-functions/log2f.texi: Mention the log2f-ieee module.
Bruno Haible [Sun, 11 Mar 2012 21:12:34 +0000 (22:12 +0100)]
log2-ieee: Work around test failure on NetBSD 5.1 and Solaris 10.
* m4/log2-ieee.m4: New file.
* m4/log2.m4 (gl_FUNC_LOG2): If gl_FUNC_LOG2_IEEE is present, test
whether log2 works with a minus zero argument. Replace it if not.
* modules/log2-ieee (Files): Add m4/log2-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG2_IEEE.
* doc/posix-functions/log2.texi: Mention the log2-ieee module.
Bruno Haible [Sun, 11 Mar 2012 19:50:08 +0000 (20:50 +0100)]
New module 'log2l'.
* lib/math.in.h (log2l): New declaration.
* lib/log2l.c: New file.
* m4/log2l.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log2l is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2L, HAVE_DECL_LOG2L,
REPLACE_LOG2L.
* modules/math (Makefile.am): Substitute GNULIB_LOG2L, HAVE_DECL_LOG2L,
REPLACE_LOG2L.
* modules/log2l: New file.
* tests/test-math-c++.cc: Check the declaration of log2l.
* doc/posix-functions/log2l.texi: Mention the new module and the IRIX
and OSF/1 problems.
Bruno Haible [Sun, 11 Mar 2012 16:57:12 +0000 (17:57 +0100)]
New module 'log2f'.
* lib/math.in.h (log2f): New declaration.
* lib/log2f.c: New file.
* m4/log2f.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log2f is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2F, HAVE_DECL_LOG2F,
REPLACE_LOG2F.
* modules/math (Makefile.am): Substitute GNULIB_LOG2F, HAVE_DECL_LOG2F,
REPLACE_LOG2F.
* modules/log2f: New file.
* tests/test-math-c++.cc: Check the declaration of log2f.
* doc/posix-functions/log2f.texi: Mention the new module and the IRIX
and OSF/1 and Cygwin problems.
Bruno Haible [Sun, 11 Mar 2012 13:42:17 +0000 (14:42 +0100)]
New module 'log2'.
* lib/math.in.h (log2): New declaration.
* lib/log2.c: New file.
* m4/log2.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log2 is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2, HAVE_DECL_LOG2,
REPLACE_LOG2.
* modules/math (Makefile.am): Substitute GNULIB_LOG2, HAVE_DECL_LOG2,
REPLACE_LOG2.
* modules/log2: New file.
* tests/test-math-c++.cc: Check the declaration of log2.
* doc/posix-functions/log2.texi: Mention the new module and the IRIX
and OSF/1 and Cygwin problems.
Bruno Haible [Sun, 11 Mar 2012 14:45:46 +0000 (15:45 +0100)]
exp2* tests: More tests.
* tests/test-exp2.h (test_function): Test all integral arguments that
don't need to overflow or denormalized numbers.
* tests/test-exp2.c (MAX_EXP, MIN_EXP): New macros.
* tests/test-exp2f.c (MAX_EXP, MIN_EXP): Likewise.
* tests/test-exp2l.c (MAX_EXP, MIN_EXP): Likewise.
Bruno Haible [Sun, 11 Mar 2012 01:36:40 +0000 (02:36 +0100)]
log1pl-ieee: Work around test failure on IRIX 6.5.
* m4/log1pl-ieee.m4: New file.
* m4/log1pl.m4 (gl_FUNC_LOG1PL): If gl_FUNC_LOG1PL_IEEE is present,
test whether log1pl works with a minus zero argument. Replace it if
not.
* lib/math.in.h (log1pl): Override if REPLACE_LOG1PL is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG1PL.
* modules/math (Makefile.am): Substitute REPLACE_LOG1PL.
* modules/log1pl (configure.ac): Consider REPLACE_LOG1PL.
(Depends-on): Update conditions.
* modules/log1pl-ieee (Files): Add m4/log1p-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_LOG1PL_IEEE.
* doc/posix-functions/log1pl.texi: Mention the log1pl-ieee module.
Bruno Haible [Sun, 11 Mar 2012 01:06:49 +0000 (02:06 +0100)]
log1pf-ieee: Work around test failure on OpenBSD 4.9 and AIX 7.1.
* m4/log1pf-ieee.m4: New file.
* m4/log1pf.m4 (gl_FUNC_LOG1PF): If gl_FUNC_LOG1PF_IEEE is present,
test whether log1pf works with a minus zero argument. Replace it if
not.
* modules/log1pf-ieee (Files): Add m4/log1pf-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_LOG1PF_IEEE.
* doc/posix-functions/log1pf.texi: Mention the log1pf-ieee module.
Bruno Haible [Sun, 11 Mar 2012 00:27:59 +0000 (01:27 +0100)]
log1p-ieee: Work around test failure on AIX 7.1 and HP-UX 11.
* m4/log1p-ieee.m4: New file.
* m4/log1p.m4 (gl_FUNC_LOG1P): If gl_FUNC_LOG1P_IEEE is present, test
whether log1p works with a minus zero argument. Replace it if not.
* lib/math.in.h (log1p): Override if REPLACE_LOG1P is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG1P.
* modules/math (Makefile.am): Substitute REPLACE_LOG1P.
* modules/log1p (configure.ac): Consider REPLACE_LOG1P.
(Depends-on): Update conditions.
* modules/log1p-ieee (Files): Add m4/log1p-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_LOG1P_IEEE.
* doc/posix-functions/log1p.texi: Mention the log1p-ieee module.
Bruno Haible [Sat, 10 Mar 2012 23:48:36 +0000 (00:48 +0100)]
New module 'log1pl'.
* lib/math.in.h (log1pl): New declaration.
* lib/log1pl.c: New file.
* m4/log1pl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log1pl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1PL, HAVE_LOG1PL.
* modules/math (Makefile.am): Substitute GNULIB_LOG1PL, HAVE_LOG1PL.
* modules/log1pl: New file.
* tests/test-math-c++.cc: Check the declaration of log1pl.
* doc/posix-functions/log1pl.texi: Mention the new module.
Bruno Haible [Sat, 10 Mar 2012 21:28:49 +0000 (22:28 +0100)]
New module 'log1pf'.
* lib/math.in.h (log1pf): New declaration.
* lib/log1pf.c: New file.
* m4/log1pf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log1pf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1PF, HAVE_LOG1PF,
REPLACE_LOG1PF.
* modules/math (Makefile.am): Substitute GNULIB_LOG1PF, HAVE_LOG1PF,
REPLACE_LOG1PF.
* modules/log1pf: New file.
* tests/test-math-c++.cc: Check the declaration of log1pf.
* doc/posix-functions/log1pf.texi: Mention the new module.
Bruno Haible [Sat, 10 Mar 2012 23:38:11 +0000 (00:38 +0100)]
math tests: Small simplification.
* tests/test-exp.h (test_function): Use the same err_bound for
'double' on platforms with sizeof (long double) == sizeof (double)
than on platforms with sizeof (long double) > sizeof (double).
* tests/test-exp2.h (test_function): Likewise.
* tests/test-expm1.h (test_function): Likewise.
* tests/test-log.h (test_function): Likewise.
Paul Eggert [Sat, 10 Mar 2012 20:15:44 +0000 (12:15 -0800)]
regex: allow inclusion of <regex.h> before <limits.h>
Without this patch, portable programs had to include <limits.h> before
<regex.h> if they wanted a consistent value for RE_DUP_MAX.
I ran into this problem with a test version of GNU grep on Solaris 8.
* lib/regex.h: Include <limits.h> if _REGEX_INCLUDE_LIMITS_H.
This is done conditionally so that this change can be merged
back to glibc.
* m4/regex.m4 (gl_REGEX): Define _REGEX_INCLUDE_LIMITS_H if
using the included regex.
Paul Eggert [Sat, 10 Mar 2012 20:10:17 +0000 (12:10 -0800)]
fts: depend on fdopendir
* modules/fts (Depends-on): Depend on fdopendir. This is needed
on Solaris 8, at least, since it lacks fdopendir. Evidently the
problem was introduced when fdopendir was split out.
Bruno Haible [Sat, 10 Mar 2012 15:05:56 +0000 (16:05 +0100)]
logf-ieee: Work around test failure on NetBSD 5.1.
* m4/logf-ieee.m4: New file.
* m4/logf.m4 (gl_FUNC_LOGF): If gl_FUNC_LOGF_IEEE is present, test
whether logf works with a negative argument. Replace it if not.
* lib/logf.c (logf): For negative arguments, return NaN.
* modules/logf-ieee (Files): Add m4/logf-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOGF_IEEE.
* doc/posix-functions/logf.texi: Mention the logf-ieee module.
Bruno Haible [Sat, 10 Mar 2012 11:26:57 +0000 (12:26 +0100)]
log-ieee: Work around test failure on NetBSD 5.1 and Solaris 11.
* m4/log-ieee.m4: New file.
* m4/log.m4 (gl_FUNC_LOG): If gl_FUNC_LOG_IEEE is present, test whether
log works with a negative argument. Replace it if not.
* lib/log.c (log): For negative arguments, return NaN.
* modules/log-ieee (Files): Add m4/log-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG_IEEE.
* doc/posix-functions/log.texi: Mention the log-ieee module.
Pádraig Brady [Tue, 6 Mar 2012 15:02:40 +0000 (15:02 +0000)]
timer-time: link explicitly with pthreads on glibc
To support static linking we need to explicitly
specify the pthreads library which is referenced
(but not used on modern Linux kernels at least).
* m4/timer_time.m4 (LIB_TIMER_TIME): Add -lpthread
when newer GLIBC is detected as that contains
the pthread emulation.
* modules/timer-time: Depend on threadlib to
pull in the appropriate library to link
Bruno Haible [Sat, 10 Mar 2012 01:48:48 +0000 (02:48 +0100)]
logl: Work around OSF/1 5.1 bug.
* lib/math.in.h (logl): Override if REPLACE_LOGL is 1.
* lib/logl.c (logl): If logf exists, use it and provide just the
workaround.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): New macro.
(gl_FUNC_LOGL): Invoke it. Set REPLACE_LOGL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGL.
* modules/math (Makefile.am): Substitute REPLACE_LOGL.
* modules/logl (configure.ac): Consider REPLACE_LOGL.
(Depends-on): Update conditions.
* doc/posix-functions/logl.texi: Mention the OSF/1 5.1 problem.
Bruno Haible [Fri, 9 Mar 2012 23:55:48 +0000 (00:55 +0100)]
logf: Work around OSF/1 5.1 bug.
* lib/math.in.h (logf): Override if REPLACE_LOGF is 1.
* lib/logf.c (logf): If logf exists, use it and provide just the
workaround.
* m4/logf.m4 (gl_FUNC_LOGF_WORKS): New macro.
(gl_FUNC_LOGF): Invoke it. Set REPLACE_LOGF.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGF.
* modules/math (Makefile.am): Substitute REPLACE_LOGF.
* modules/logf (configure.ac): Consider REPLACE_LOGF.
(Depends-on): Update conditions.
* doc/posix-functions/logf.texi: Mention the OSF/1 5.1 problem.
Bruno Haible [Fri, 9 Mar 2012 01:14:26 +0000 (02:14 +0100)]
exp2l-ieee: Work around test failure on OpenBSD 4.9 and IRIX 6.5.
* m4/exp2l-ieee.m4: New file.
* m4/exp2l.m4 (gl_FUNC_EXP2L): If gl_FUNC_EXP2L_IEEE is present,
test whether exp2l works with a NaN argument and with a negative
infinity argument. Replace it if not.
* lib/math.in.h (exp2l): Override if REPLACE_EXP2L is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXP2L.
* modules/math (Makefile.am): Substitute REPLACE_EXP2L.
* modules/exp2l (configure.ac): Consider REPLACE_EXP2L.
(Depends-on): Update conditions.
* modules/exp2l-ieee (Files): Add m4/exp2l-ieee.m4.
(configure.ac): Invoke gl_FUNC_EXP2L_IEEE.
* doc/posix-functions/exp2l.texi: Mention the exp2l-ieee module.
Bruno Haible [Fri, 9 Mar 2012 00:13:40 +0000 (01:13 +0100)]
New module 'exp2l'.
* lib/math.in.h (exp2l): New declaration.
* lib/exp2l.c: New file.
* lib/expl-table.c: New file, extracted from lib/expl.c.
* lib/expl.c (gl_expl_table): New declaration.
(expl): Remove expl_table. Update reference.
* m4/exp2l.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether exp2l is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2L, HAVE_DECL_EXP2L.
* modules/math (Makefile.am): Substitute GNULIB_EXP2L, HAVE_DECL_EXP2L.
* modules/exp2l: New file.
* modules/expl (Files): Add lib/expl-table.c.
(configure.ac): Compile also expl-table.c.
* tests/test-math-c++.cc: Check the declaration of exp2l.
* doc/posix-functions/exp2l.texi: Mention the new module and the IRIX
problem.
Bruno Haible [Thu, 8 Mar 2012 19:24:53 +0000 (20:24 +0100)]
New module 'exp2f'.
* lib/math.in.h (exp2f): New declaration.
* lib/exp2f.c: New file.
* m4/exp2f.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether exp2f is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2F, HAVE_DECL_EXP2F.
* modules/math (Makefile.am): Substitute GNULIB_EXP2F, HAVE_DECL_EXP2F.
* modules/exp2f: New file.
* tests/test-math-c++.cc: Check the declaration of exp2f.
* doc/posix-functions/exp2f.texi: Mention the new module and the
IRIX problem.
Bruno Haible [Wed, 7 Mar 2012 02:29:32 +0000 (03:29 +0100)]
New module 'exp2'.
* lib/math.in.h (exp2): New declaration.
* lib/exp2.c: New file.
* m4/exp2.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether exp2 is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2, HAVE_DECL_EXP2,
REPLACE_EXP2.
* modules/math (Makefile.am): Substitute GNULIB_EXP2, HAVE_DECL_EXP2,
REPLACE_EXP2.
* modules/exp2: New file.
* tests/test-math-c++.cc: Check the declaration of exp2.
* doc/posix-functions/exp2.texi: Mention the new module and the IRIX
and OpenBSD problems.
Bruno Haible [Thu, 8 Mar 2012 11:33:36 +0000 (12:33 +0100)]
fma, fmaf, fmal: Override undeclared system functions on IRIX 6.5.
* m4/fma.m4 (gl_FUNC_FMA): If fma() exists but is not declared,
arrange to set REPLACE_FMA=1, not HAVE_FMA=0.
* m4/fmaf.m4 (gl_FUNC_FMAF): If fmaf() exists but is not declared,
arrange to set REPLACE_FMAF=1, not HAVE_FMAF=0.
* m4/fmal.m4 (gl_FUNC_FMAL): If fmal() exists but is not declared,
arrange to set REPLACE_FMAL=1, not HAVE_FMAL=0.
Bruno Haible [Thu, 8 Mar 2012 11:02:35 +0000 (12:02 +0100)]
remainderf: Override buggy system function on IRIX 6.5.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): New macro.
(gl_FUNC_REMAINDERF): Invoke it. Don't assume remainderf() is declared
when it exists.
* doc/posix-functions/remainderf.texi: Mention the IRIX problems.