Hash :
c19cabc0
Author :
Date :
2023-11-05T15:00:29
fenv-environment: New module. * lib/fenv.in.h (fenv_t) [hppa]: Remove the __exception field. (FE_DFL_ENV): Override if <fenv.h> exists but HAVE_FE_DFL_ENV is not defined. (fegetenv, fesetenv, feupdateenv, feholdexcept): New declarations. * lib/fenv-env.c: New file, based on glibc. * lib/fenv-env-hold.c: New file. * lib/fenv-env-update.c: New file. * m4/fenv-environment.m4: New file. * m4/mathfunc.m4 (gl_MATHFUNC): Handle also the 'fenv_t *' type. * m4/fenv_h.m4 (gl_FENV_H_DEFAULTS): Initialize REPLACE_FEGETENV, REPLACE_FEHOLDEXCEPT, REPLACE_FESETENV, REPLACE_FEUPDATEENV. * modules/fenv (Makefile.am): Substitute REPLACE_FEGETENV, REPLACE_FEHOLDEXCEPT, REPLACE_FESETENV, REPLACE_FEUPDATEENV. * modules/fenv-environment: New file. * doc/posix-functions/fegetenv.texi: Mention the new module and the bugs on glibc, macOS, AIX. * doc/posix-functions/feholdexcept.texi: Mention the new module and the bugs on glibc, musl libc, FreeBSD, AIX, mingw, MSVC. * doc/posix-functions/fesetenv.texi: Mention the new module and the bugs on musl libc, FreeBSD, NetBSD, AIX, Solaris, Cygwin, mingw, MSVC. * doc/posix-functions/feupdateenv.texi: Mention the new module and the bugs on glibc, musl libc, macOS, FreeBSD, AIX, Solaris, mingw, MSVC.
@node feholdexcept
@section @code{feholdexcept}
@findex feholdexcept
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/feholdexcept.html}
Gnulib module: fenv-environment
Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, Solaris 9, Cygwin 1.7.7, MSVC 9, Android 4.4.
@item
This function does not work on some platforms:
@c https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=a8c79c4088e8c04e4297936efa0dee6c8e6e974d
glibc 2.5,
@c https://cgit.freebsd.org/src/commit/?id=34cc08e336987a8ebc316595e3f552a4c09f1fd4
FreeBSD 12.2/arm64.
@item
This function does not save the exception trap bits on some platforms:
AIX 7.3.
@item
This function does not clear the exception trap bits on some platforms:
musl libc, mingw.
@item
This function may fail on some platforms:
MSVC 14.
@item
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@end itemize