Reported by Simon Josefsson.
* modules/strdup (Status): No longer obsolete.
* doc/posix-functions/strdup.texi (strdup): Document this.
Signed-off-by: Eric Blake <eblake@redhat.com>
* lib/fsusage.c: Fall back to (struct statfs).f_frsize
which is available since Linux 2.6.
* m4/fsusage.m4 (STAT_STATFS2_FRSIZE): Always define
when the member is available so it can be used as a fallback.
* doc/posix-functions/statvfs.texi: Mention the hang issue
on Linux < 2.6.36.
* doc/posix-functions/dprintf.texi: Mention the problem with special
'long double' values.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/fcntl.texi: Add glibc/Linux to the list of
platforms with F_DUPFD_CLOEXEC problems.
* doc/posix-functions/glob.texi: Mention which platforms are affected
by the problem with symbolic links.
* doc/posix-functions/linkat.texi: Mention the problem with
AT_SYMLINK_FOLLOW on Linux.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
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.
Signed-off-by: Eric Blake <eblake@redhat.com>
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* lib/math.in.h (expm1l): Test HAVE_DECL_EXPM1L, not HAVE_EXPM1L.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Don't assume expm1l() is declared when
it exists. Set HAVE_DECL_EXPM1L.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_EXPM1L, not
HAVE_EXPM1L.
* modules/math (Makefile.am): Substitute HAVE_DECL_EXPM1L, not
HAVE_EXPM1L.
* doc/posix-functions/expm1l.texi: Mention missing declaration problem.
* lib/math.in.h (remainderl): Test HAVE_DECL_REMAINDERL, not
HAVE_REMAINDERL.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Don't assume remainderl() is
declared when it exists. Set HAVE_DECL_REMAINDERL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_REMAINDERL,
not HAVE_REMAINDERL.
* modules/math (Makefile.am): Substitute HAVE_DECL_REMAINDERL, not
HAVE_REMAINDERL.
* doc/posix-functions/remainderl.texi: Mention missing declaration
problem.
* lib/math.in.h (rintf): Test HAVE_DECL_RINTF, not HAVE_RINTF.
* m4/rintf.m4 (gl_FUNC_RINTF): Don't assume rintf() is declared when it
exists. Set HAVE_DECL_RINTF.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_RINTF, not
HAVE_RINTF.
* modules/math (Makefile.am): Substitute HAVE_DECL_RINTF, not
HAVE_RINTF.
* doc/posix-functions/rintf.texi: Mention missing declaration problem.