On 09/11/2023 23:36, Bruno Haible wrote:
All three failures occur in situations where the code expects a trap from
a floating-point exception, but a trap is not occurring.
Understood.
The first step is to take note of the values of the gl_cv_func_fe*
variables in config.cache. (Pass the option '-C' to configure.)
gl_cv_func_fcntl_f_dupfd_cloexec=${gl_cv_func_fcntl_f_dupfd_cloexec=no}
gl_cv_func_fcntl_f_dupfd_works=${gl_cv_func_fcntl_f_dupfd_works=yes}
gl_cv_func_fdopen_works=${gl_cv_func_fdopen_works=yes}
gl_cv_func_feenableexcept_in_libm=${gl_cv_func_feenableexcept_in_libm=no}
gl_cv_func_feenableexcept_no_libm=${gl_cv_func_feenableexcept_no_libm=no}
gl_cv_func_feraiseexcept_no_libm=${gl_cv_func_feraiseexcept_no_libm=yes}
gl_cv_func_fesettrapenable_in_libm=${gl_cv_func_fesettrapenable_in_libm=no}
gl_cv_func_fesettrapenable_no_libm=${gl_cv_func_fesettrapenable_no_libm=no}
gl_cv_func_fpsetmask_in_libm=${gl_cv_func_fpsetmask_in_libm=no}
gl_cv_func_fpsetmask_no_libm=${gl_cv_func_fpsetmask_no_libm=no}
gl_cv_func_free_preserves_errno=${gl_cv_func_free_preserves_errno=no}
The second step is to retry the configuration in a way that ignores
the relevant functions from libc, and uses the gnulib code instead.
It goes like this (after "make distclean", of course):
gl_cv_func_feenableexcept_in_libm=no \
gl_cv_func_feenableexcept_no_libm=no \
gl_cv_func_fesetenv_in_libm=no \
gl_cv_func_fesetenv_no_libm=no \
gl_cv_func_fesetround_in_libm=no \
gl_cv_func_fesetround_no_libm=no \
gl_cv_func_feraiseexcept_in_libm=no \
gl_cv_func_feraiseexcept_no_libm=no \
gl_cv_func_fesetexcept_in_libm=no \
gl_cv_func_fesetexcept_no_libm=no \
gl_cv_func_fesetexceptflag_in_libm=no \
gl_cv_func_fesetexceptflag_no_libm=no \
gl_cv_func_fetestexceptflag_in_libm=no \
gl_cv_func_fetestexceptflag_no_libm=no \
./configure
What's the result when you do this?
test-fenv-except-tracking-1 & test-fenv-except-trapping-1 pass.
FAIL: test-fenv-except-tracking-2.sh
====================================
Failed: ./test-fenv-except-tracking-2 f
FAIL test-fenv-except-tracking-2.sh (exit status: 1)
FAIL: test-fenv-except-tracking-3.sh
====================================
Failed: ./test-fenv-except-tracking-3 FE_INVALID
FAIL test-fenv-except-tracking-3.sh (exit status: 1)
FAIL: test-fenv-except-trapping-2.sh
====================================
Failed (got no trap): ./test-fenv-except-trapping-2 1 p f
Failed (got no trap): ./test-fenv-except-trapping-2 1 p d
Failed (got no trap): ./test-fenv-except-trapping-2 1 p l
Failed (got no trap): ./test-fenv-except-trapping-2 1 q f
Failed (got no trap): ./test-fenv-except-trapping-2 1 q d
Failed (got no trap): ./test-fenv-except-trapping-2 1 q l
Failed (got no trap): ./test-fenv-except-trapping-2 1 r f
Failed (got no trap): ./test-fenv-except-trapping-2 1 r d
Failed (got no trap): ./test-fenv-except-trapping-2 1 r l
Failed (got no trap): ./test-fenv-except-trapping-2 2 p f
Failed (got no trap): ./test-fenv-except-trapping-2 2 p d
Failed (got no trap): ./test-fenv-except-trapping-2 2 p l
Failed (got no trap): ./test-fenv-except-trapping-2 2 q f
Failed (got no trap): ./test-fenv-except-trapping-2 2 q d
Failed (got no trap): ./test-fenv-except-trapping-2 2 q l
Failed (got no trap): ./test-fenv-except-trapping-2 2 r f
Failed (got no trap): ./test-fenv-except-trapping-2 2 r d
Failed (got no trap): ./test-fenv-except-trapping-2 2 r l
Failed (got no trap): ./test-fenv-except-trapping-2 3 p f
Failed (got no trap): ./test-fenv-except-trapping-2 3 p d
Failed (got no trap): ./test-fenv-except-trapping-2 3 p l
Failed (got no trap): ./test-fenv-except-trapping-2 3 q f
Failed (got no trap): ./test-fenv-except-trapping-2 3 q d
Failed (got no trap): ./test-fenv-except-trapping-2 3 q l
Failed (got no trap): ./test-fenv-except-trapping-2 3 r f
Failed (got no trap): ./test-fenv-except-trapping-2 3 r d
Failed (got no trap): ./test-fenv-except-trapping-2 3 r l
Failed (got no trap): ./test-fenv-except-trapping-2 4 p f
Failed (got no trap): ./test-fenv-except-trapping-2 4 p d
Failed (got no trap): ./test-fenv-except-trapping-2 4 p l
Failed (got no trap): ./test-fenv-except-trapping-2 4 q f
Failed (got no trap): ./test-fenv-except-trapping-2 4 q d
Failed (got no trap): ./test-fenv-except-trapping-2 4 q l
Failed (got no trap): ./test-fenv-except-trapping-2 4 r f
Failed (got no trap): ./test-fenv-except-trapping-2 4 r d
Failed (got no trap): ./test-fenv-except-trapping-2 4 r l
Failed (got no trap): ./test-fenv-except-trapping-2 5 p f
Failed (got no trap): ./test-fenv-except-trapping-2 5 p d
Failed (got no trap): ./test-fenv-except-trapping-2 5 p l
Failed (got no trap): ./test-fenv-except-trapping-2 5 q f
Failed (got no trap): ./test-fenv-except-trapping-2 5 q d
Failed (got no trap): ./test-fenv-except-trapping-2 5 q l
Failed (got no trap): ./test-fenv-except-trapping-2 5 r f
Failed (got no trap): ./test-fenv-except-trapping-2 5 r d
Failed (got no trap): ./test-fenv-except-trapping-2 5 r l
Failed (got no trap): ./test-fenv-except-trapping-2 6 p f
Failed (got no trap): ./test-fenv-except-trapping-2 6 p d
Failed (got no trap): ./test-fenv-except-trapping-2 6 p l
Failed (got no trap): ./test-fenv-except-trapping-2 6 q f
Failed (got no trap): ./test-fenv-except-trapping-2 6 q d
Failed (got no trap): ./test-fenv-except-trapping-2 6 q l
Failed (got no trap): ./test-fenv-except-trapping-2 6 r f
Failed (got no trap): ./test-fenv-except-trapping-2 6 r d
Failed (got no trap): ./test-fenv-except-trapping-2 6 r l
Failed (got no trap): ./test-fenv-except-trapping-2 7 p f
Failed (got no trap): ./test-fenv-except-trapping-2 7 p d
Failed (got no trap): ./test-fenv-except-trapping-2 7 p l
Failed (got no trap): ./test-fenv-except-trapping-2 7 q f
Failed (got no trap): ./test-fenv-except-trapping-2 7 q d
Failed (got no trap): ./test-fenv-except-trapping-2 7 q l
Failed (got no trap): ./test-fenv-except-trapping-2 7 r f
Failed (got no trap): ./test-fenv-except-trapping-2 7 r d
Failed (got no trap): ./test-fenv-except-trapping-2 7 r l
Failed (got no trap): ./test-fenv-except-trapping-2 8 p f
Failed (got no trap): ./test-fenv-except-trapping-2 8 p d
Failed (got no trap): ./test-fenv-except-trapping-2 8 p l
Failed (got no trap): ./test-fenv-except-trapping-2 8 q f
Failed (got no trap): ./test-fenv-except-trapping-2 8 q d
Failed (got no trap): ./test-fenv-except-trapping-2 8 q l
Failed (got no trap): ./test-fenv-except-trapping-2 8 r f
Failed (got no trap): ./test-fenv-except-trapping-2 8 r d
Failed (got no trap): ./test-fenv-except-trapping-2 8 r l
Failed (got no trap): ./test-fenv-except-trapping-2 9 p f
Failed (got no trap): ./test-fenv-except-trapping-2 9 p d
Failed (got no trap): ./test-fenv-except-trapping-2 9 p l
Failed (got no trap): ./test-fenv-except-trapping-2 9 q f
Failed (got no trap): ./test-fenv-except-trapping-2 9 q d
Failed (got no trap): ./test-fenv-except-trapping-2 9 q l
Failed (got no trap): ./test-fenv-except-trapping-2 9 r f
Failed (got no trap): ./test-fenv-except-trapping-2 9 r d
Failed (got no trap): ./test-fenv-except-trapping-2 9 r l
FAIL test-fenv-except-trapping-2.sh (exit status: 1)
Sevan