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