* m4/remainder-ieee.m4: New file.
* m4/remainder.m4 (gl_FUNC_REMAINDER): If gl_FUNC_REMAINDER_IEEE is
present, test whether remainder works with a zero second argument.
Replace it if not.
* lib/math.in.h (remainder): Override if REPLACE_REMAINDER is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_REMAINDER.
* modules/math (Makefile.am): Substitute REPLACE_REMAINDER.
* modules/remainder (configure.ac): Consider REPLACE_REMAINDER.
(Depends-on): Update dependencies.
* modules/remainder-ieee (Files): Add m4/remainder-ieee.m4.
(configure.ac): Invoke gl_FUNC_REMAINDER_IEEE.
* doc/posix-functions/remainder.texi: Mention the remainder-ieee module.
* m4/fmodl-ieee.m4: New file.
* m4/fmodl.m4 (gl_FUNC_FMODL): If gl_FUNC_FMODL_IEEE is present, test
whether fmodl works with zero arguments. Replace it if not.
* modules/fmodl-ieee (Files): Add m4/fmodl-ieee.m4.
(Depends-on): Add fmod-ieee.
(configure.ac): Invoke gl_FUNC_FMODL_IEEE.
* doc/posix-functions/fmodl.texi: Mention the fmodl-ieee module.
* m4/fmodf-ieee.m4: New file.
* m4/fmodf.m4 (gl_FUNC_FMODF): If gl_FUNC_FMODF_IEEE is present, test
whether fmodf works with zero arguments. Replace it if not.
* lib/math.in.h (fmodf): Override if REPLACE_FMODF is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FMODF.
* modules/math (Makefile.am): Substitute REPLACE_FMODF.
* modules/fmodf (configure.ac): Consider REPLACE_FMODF.
(Depends-on): Update dependencies.
* modules/fmodf-ieee (Files): Add m4/fmodf-ieee.m4.
(configure.ac): Invoke gl_FUNC_FMODF_IEEE.
* doc/posix-functions/fmodf.texi: Mention the problem on OSF/1.
* m4/fmod-ieee.m4: New file.
* m4/fmod.m4 (gl_FUNC_FMOD): If gl_FUNC_FMOD_IEEE is present, test
whether fmod works with zero arguments. Replace it if not.
* lib/math.in.h (fmod): New declaration.
* lib/fmod.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether fmod is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMOD, REPLACE_FMOD.
* modules/math (Makefile.am): Substitute GNULIB_FMOD, REPLACE_FMOD.
* modules/fmod (Files): Add lib/fmod.c.
(Depends-on): Add math, isinf, trunc, fma.
(configure.ac): Arrange to compile lib/fmod.c if needed.
* modules/fmod-ieee (Files): Add m4/fmod-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_FMOD_IEEE.
* tests/test-math-c++.cc: Check the declaration of fmod.
* doc/posix-functions/fmod.texi: Mention the fmod-ieee module.
* m4/modf-ieee.m4: New file.
* m4/modf.m4 (gl_FUNC_MODF): If gl_FUNC_MODF_IEEE is present, test
whether modf works with NaN and Inf. Replace it if not.
* lib/math.in.h (modf): New declaration.
* lib/modf.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether modf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_MODF, REPLACE_MODF.
* modules/math (Makefile.am): Substitute GNULIB_MODF, REPLACE_MODF.
* modules/modf (Files): Add lib/modf.c.
(Depends-on): Add math, isfinite, trunc, isinf.
(configure.ac): Addrange to compile lib/modf.c if needed.
* modules/modf-ieee (Files): Add m4/modf-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_MODF_IEEE.
* tests/test-math-c++.cc: Check the declaration of modf.
* doc/posix-functions/modf.texi: Mention the modf-ieee module.
* lib/popen.c: On native Windows, use the _popen based code even if
HAVE_POPEN is set.
* doc/posix-functions/popen.texi: Mention necessity of COMSPEC
environment variable on native Windows.
* doc/posix-functions/getlogin_r.texi: List the incompatible
declaration problem under "not fixed by gnulib".
* doc/posix-functions/setstate.texi: Mention incompatible declaration
problem on Solaris 11 and other platforms.
* doc/posix-functions/isatty.texi: Mention the MSVC problem.
* lib/isatty.c: Include <errno.h>, msvc-inval.h.
(_isatty_nothrow): New function.
(isatty): Use it instead of _isatty.
(IsConsoleHandle): Add comment, from Paolo Bonzini.
* lib/poll.c (IsConsoleHandle): Likewise.
* lib/select.c (IsConsoleHandle): Likewise.
* m4/isatty.m4 (gl_FUNC_ISATTY): Fix comment. Reported by Eli Zaretskii.
(gl_PREREQ_ISATTY): New macro.
* modules/isatty (Depends-on): Add msvc-inval.
(configure.ac): Invoke gl_PREREQ_ISATTY.
* lib/unistd.in.h (isatty): New declaration.
* lib/isatty.c: New file, based on an idea of
Bastien Roucariès <roucaries.bastien@gmail.com>.
* m4/isatty.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether isatty is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_ISATTY, REPLACE_ISATTY.
* modules/unistd (Makefile.am): Substitute GNULIB_ISATTY,
REPLACE_ISATTY.
* modules/isatty: New file.
* doc/posix-functions/isatty.texi: Mention the new module.
Suggested by Paolo Bonzini.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Require
AC_CANONICAL_HOST. Assign exit code 31 to the bug seen on AIX 5.1..7.1.
Use a different value for gl_cv_func_getcwd_path_max. Move the
definition of HAVE_PARTLY_WORKING_GETCWD from here...
* m4/getcwd.m4 (gl_FUNC_GETCWD): ... to here. Invoke
gl_FUNC_GETCWD_PATH_MAX also when $gl_cv_func_getcwd_null is 'no'.
Define HAVE_MINIMALLY_WORKING_GETCWD.
* lib/getcwd.c (__getcwd): Don't use the system's getcwd on platforms
where it is not even minimally working, that is, on AIX.
* tests/test-getcwd.c (test_long_name): Distinguish the same cases as
m4/getcwd-path-max.m4.
(main): Update exit code computation.
* doc/posix-functions/getcwd.texi: Mention list of platforms where
getcwd does not handle long file names.
For now, this replacement focuses solely on compilation
compatibility, and assumes that isatty() and ttyname_r() work
on a master side pty; if this assumption fails, or if
thread-safety is also required, then a later patch can follow
the lead of strerror_r.c in wrapping the system ptsname()
with a lock.
* modules/ptsname_r: New module.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): New file.
* lib/ptsname.c (__ptsname_r): Split...
* lib/ptsname_r.c: ...into new file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl.
(gl_STDLIB_H_DEFAULTS): Set witness defaults.
* modules/stdlib (Makefile.am): Substitute witnesses.
* lib/stdlib.in.h (ptsname_r): Declare it.
* doc/glibc-functions/ptsname_r.texi (ptsname_r): Document it.
* MODULES.html.sh (Misc): Likewise.
* modules/ptsname (Depends-on): Alter dependency.
* doc/posix-functions/ptsname.texi (ptsname): Mention new module.
Signed-off-by: Eric Blake <eblake@redhat.com>
* lib/math.in.h (fmal): New declaration.
* lib/fmal.c: New file.
* m4/fmal.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whethern fmal is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMAL, HAVE_FMAL, REPLACE_FMAL.
* modules/math (Makefile.am): Substitute GNULIB_FMAL, HAVE_FMAL,
REPLACE_FMAL.
* modules/fmal: New file.
* doc/posix-functions/fmal.texi: Mention the new module and the various
bugs.
* lib/math.in.h (fmaf): New declaration.
* lib/fmaf.c: New file.
* m4/fmaf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whethern fmaf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMAF, HAVE_FMAF, REPLACE_FMAF.
* modules/math (Makefile.am): Substitute GNULIB_FMAF, HAVE_FMAF,
REPLACE_FMAF.
* modules/fmaf: New file.
* doc/posix-functions/fmaf.texi: Mention the new module and the various
bugs.
* lib/math.in.h (fma): New declaration.
* lib/fma.c: New file.
* m4/fma.m4: New file.
* m4/fegetround.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whethern fma is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMA, HAVE_FMA, REPLACE_FMA.
* modules/math (Makefile.am): Substitute GNULIB_FMA, HAVE_FMA,
REPLACE_FMA.
* modules/fma: New file.
* doc/posix-functions/fma.texi: Mention the new module and the various
bugs.
* lib/openat.h (chmodat, lchmodat): Enable only if GNULIB_FCHMODAT is
defined.
* m4/fchmodat.m4: New file, extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FCHMODAT. Don't test
for fchmodat, lchmod. Don't set HAVE_FCHMODAT.
* modules/fchmodat: New file, extracted from modules/openat.
* modules/openat (Files): Remove lib/fchmodat.c.
(configure.ac): Remove AC_LIBOBJ of fchmodat.
* modules/fchmodat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-fchmodat.c.
(Makefile.am): Remove rules for test-fchmodat.
* doc/posix-functions/fchmodat.texi: Mention module 'fchmodat' instead
of module 'openat'.
* NEWS: Mention the change.
* lib/utimensat.c (rpl_utimensat) [Linux/hppa]: Reject invalid tv_nsec
values.
* doc/posix-functions/utimensat.texi: Mention the problem on Linux/hppa.
* lib/posix_openpt.c (posix_openpt): Renamed from posix_openpty.
* doc/posix-functions/posix_openpt.texi: Mention ENOENT error code.
Mention the openpty module as an alternative.
* lib/math.in.h (rintl): New declaration.
* lib/rintl.c: New file.
* m4/rintl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether rintl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_RINTL, HAVE_RINTL.
* modules/math (Makefile.am): Substitute GNULIB_RINTL, HAVE_RINTL.
* modules/rintl: New file.
* tests/test-math-c++.cc: Check the declaration of rintl.
* modules/math-c++-tests (Makefile.am): Link test-math-c++ against
$(RINTL_LIBM). Needed on IRIX 6.5 with cc.
* doc/posix-functions/rintl.texi: Mention the new module.
* lib/math.in.h (rintf): New declaration.
* lib/rintf.c: New file.
* m4/rintf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether rintf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_RINTF, HAVE_RINTF.
* modules/math (Makefile.am): Substitute GNULIB_RINTF, HAVE_RINTF.
* modules/rintf: New file.
* tests/test-math-c++.cc: Check the declaration of rintf.
* doc/posix-functions/rintf.texi: Mention the new module.
* lib/math.in.h (rint): New declaration.
* lib/rint.c: New file.
* m4/rint.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether rint is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_RINT, HAVE_RINT.
* modules/math (Makefile.am): Substitute GNULIB_RINT, HAVE_RINT.
* modules/rint (Description): Fix.
(Files): Add lib/rint.c, m4/rint.m4.
(Depends-on): Add math.
(configure.ac): Invoke gl_FUNC_RINT, AC_LIBOBJ,
gl_MATH_MODULE_INDICATOR.
* tests/test-math-c++.cc: Check the declaration of rint.
* modules/math-c++-tests (Makefile.am): Link test-math-c++ against
$(RINT_LIBM). Needed on IRIX 6.5 with cc.
* doc/posix-functions/rint.texi: Mention the replacement provided by
the module.