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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
Description:
A GNU-like <fenv.h>.
It nearly conforms to C99 and to C23.
Files:
lib/fenv.in.h
m4/fenv_h.m4
Depends-on:
gen-header
include_next
snippet/c++defs
snippet/warn-on-use
configure.ac:
gl_FENV_H
gl_FENV_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
Makefile.am:
BUILT_SOURCES += fenv.h
# We need the following in order to create an override of <fenv.h>.
fenv.h: fenv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
@NMD@ $(AM_V_GEN)$(MKDIR_P) '%reldir%'
$(gl_V_at)$(SED_HEADER_STDOUT) \
-e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
-e 's/@''HAVE_FENV_H''@/$(HAVE_FENV_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_FENV_H''@|$(NEXT_FENV_H)|g' \
-e 's/@''GNULIB_FECLEAREXCEPT''@/$(GNULIB_FECLEAREXCEPT)/g' \
-e 's/@''GNULIB_FEDISABLEEXCEPT''@/$(GNULIB_FEDISABLEEXCEPT)/g' \
-e 's/@''GNULIB_FEENABLEEXCEPT''@/$(GNULIB_FEENABLEEXCEPT)/g' \
-e 's/@''GNULIB_FEGETENV''@/$(GNULIB_FEGETENV)/g' \
-e 's/@''GNULIB_FEGETEXCEPT''@/$(GNULIB_FEGETEXCEPT)/g' \
-e 's/@''GNULIB_FEGETEXCEPTFLAG''@/$(GNULIB_FEGETEXCEPTFLAG)/g' \
-e 's/@''GNULIB_FEGETROUND''@/$(GNULIB_FEGETROUND)/g' \
-e 's/@''GNULIB_FEHOLDEXCEPT''@/$(GNULIB_FEHOLDEXCEPT)/g' \
-e 's/@''GNULIB_FERAISEEXCEPT''@/$(GNULIB_FERAISEEXCEPT)/g' \
-e 's/@''GNULIB_FESETENV''@/$(GNULIB_FESETENV)/g' \
-e 's/@''GNULIB_FESETEXCEPT''@/$(GNULIB_FESETEXCEPT)/g' \
-e 's/@''GNULIB_FESETEXCEPTFLAG''@/$(GNULIB_FESETEXCEPTFLAG)/g' \
-e 's/@''GNULIB_FESETROUND''@/$(GNULIB_FESETROUND)/g' \
-e 's/@''GNULIB_FETESTEXCEPT''@/$(GNULIB_FETESTEXCEPT)/g' \
-e 's/@''GNULIB_FETESTEXCEPTFLAG''@/$(GNULIB_FETESTEXCEPTFLAG)/g' \
-e 's/@''GNULIB_FEUPDATEENV''@/$(GNULIB_FEUPDATEENV)/g' \
-e 's|@''HAVE_FECLEAREXCEPT''@|$(HAVE_FECLEAREXCEPT)|g' \
-e 's|@''HAVE_FEDISABLEEXCEPT''@|$(HAVE_FEDISABLEEXCEPT)|g' \
-e 's|@''HAVE_FEENABLEEXCEPT''@|$(HAVE_FEENABLEEXCEPT)|g' \
-e 's|@''HAVE_FEGETENV''@|$(HAVE_FEGETENV)|g' \
-e 's|@''HAVE_FEGETEXCEPT''@|$(HAVE_FEGETEXCEPT)|g' \
-e 's|@''HAVE_FEGETEXCEPTFLAG''@|$(HAVE_FEGETEXCEPTFLAG)|g' \
-e 's|@''HAVE_FEGETROUND''@|$(HAVE_FEGETROUND)|g' \
-e 's|@''HAVE_FEHOLDEXCEPT''@|$(HAVE_FEHOLDEXCEPT)|g' \
-e 's|@''HAVE_FERAISEEXCEPT''@|$(HAVE_FERAISEEXCEPT)|g' \
-e 's|@''HAVE_FESETENV''@|$(HAVE_FESETENV)|g' \
-e 's|@''HAVE_FESETEXCEPT''@|$(HAVE_FESETEXCEPT)|g' \
-e 's|@''HAVE_FESETEXCEPTFLAG''@|$(HAVE_FESETEXCEPTFLAG)|g' \
-e 's|@''HAVE_FESETROUND''@|$(HAVE_FESETROUND)|g' \
-e 's|@''HAVE_FETESTEXCEPT''@|$(HAVE_FETESTEXCEPT)|g' \
-e 's|@''HAVE_FETESTEXCEPTFLAG''@|$(HAVE_FETESTEXCEPTFLAG)|g' \
-e 's|@''HAVE_FEUPDATEENV''@|$(HAVE_FEUPDATEENV)|g' \
-e 's|@''REPLACE_FECLEAREXCEPT''@|$(REPLACE_FECLEAREXCEPT)|g' \
-e 's|@''REPLACE_FEDISABLEEXCEPT''@|$(REPLACE_FEDISABLEEXCEPT)|g' \
-e 's|@''REPLACE_FEENABLEEXCEPT''@|$(REPLACE_FEENABLEEXCEPT)|g' \
-e 's|@''REPLACE_FEGETENV''@|$(REPLACE_FEGETENV)|g' \
-e 's|@''REPLACE_FEGETEXCEPT''@|$(REPLACE_FEGETEXCEPT)|g' \
-e 's|@''REPLACE_FEGETEXCEPTFLAG''@|$(REPLACE_FEGETEXCEPTFLAG)|g' \
-e 's|@''REPLACE_FEGETROUND''@|$(REPLACE_FEGETROUND)|g' \
-e 's|@''REPLACE_FEHOLDEXCEPT''@|$(REPLACE_FEHOLDEXCEPT)|g' \
-e 's|@''REPLACE_FERAISEEXCEPT''@|$(REPLACE_FERAISEEXCEPT)|g' \
-e 's|@''REPLACE_FESETENV''@|$(REPLACE_FESETENV)|g' \
-e 's|@''REPLACE_FESETEXCEPT''@|$(REPLACE_FESETEXCEPT)|g' \
-e 's|@''REPLACE_FESETEXCEPTFLAG''@|$(REPLACE_FESETEXCEPTFLAG)|g' \
-e 's|@''REPLACE_FESETROUND''@|$(REPLACE_FESETROUND)|g' \
-e 's|@''REPLACE_FETESTEXCEPT''@|$(REPLACE_FETESTEXCEPT)|g' \
-e 's|@''REPLACE_FEUPDATEENV''@|$(REPLACE_FEUPDATEENV)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
$(srcdir)/fenv.in.h > $@-t
$(AM_V_at)mv $@-t $@
MOSTLYCLEANFILES += fenv.h fenv.h-t
Include:
<fenv.h>
License:
LGPLv2+
Maintainer:
all