From: Bruno Haible Date: Tue, 7 Nov 2023 01:04:59 +0000 (+0100) Subject: fenv-*: Avoid test failures on OpenBSD/mips64. X-Git-Tag: v1.0~632 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=0c60267ad3c90d1c7b35a678171b7b259f16ae1e;p=gnulib.git fenv-*: Avoid test failures on OpenBSD/mips64. * tests/test-fenv-round.c (test_towardzero, test_upward, test_downward): Skip the 'long double' tests on OpenBSD/mips64. * tests/test-fenv-except-tracking-2.c (main): On OpenBSD/mips64, skip the 'long double' test. * tests/test-fenv-except-trapping-2.c (main): Skip the '4' tests and the 'long double' tests also on OpenBSD/mips64. * doc/posix-functions/fesetround.texi: Mention OpenBSD/mips64 here too. --- diff --git a/ChangeLog b/ChangeLog index 7fd78a2bd8..ac84b28734 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2023-11-06 Bruno Haible + fenv-*: Avoid test failures on OpenBSD/mips64. + * tests/test-fenv-round.c (test_towardzero, test_upward, test_downward): + Skip the 'long double' tests on OpenBSD/mips64. + * tests/test-fenv-except-tracking-2.c (main): On OpenBSD/mips64, skip + the 'long double' test. + * tests/test-fenv-except-trapping-2.c (main): Skip the '4' tests and the + 'long double' tests also on OpenBSD/mips64. + * doc/posix-functions/fesetround.texi: Mention OpenBSD/mips64 here too. + fenv-exceptions-tracking-c99: Fix test failures on OpenBSD/mips64. * m4/fenv-exceptions-tracking.m4 (gl_FENV_EXCEPTIONS_TRACKING): On OpenBSD/mips, set REPLACE_FECLEAREXCEPT to 1. diff --git a/doc/posix-functions/fesetround.texi b/doc/posix-functions/fesetround.texi index 73d6c034fa..bb06c4192a 100644 --- a/doc/posix-functions/fesetround.texi +++ b/doc/posix-functions/fesetround.texi @@ -20,5 +20,5 @@ Portability problems not fixed by Gnulib: @itemize @item The rounding mode has no effect on @code{long double} operations on some platforms: -FreeBSD/arm64, NetBSD/sparc64. +FreeBSD/arm64, NetBSD/sparc64, OpenBSD/mips64. @end itemize diff --git a/tests/test-fenv-except-tracking-2.c b/tests/test-fenv-except-tracking-2.c index 9844166d81..6687a79b2b 100644 --- a/tests/test-fenv-except-tracking-2.c +++ b/tests/test-fenv-except-tracking-2.c @@ -67,10 +67,12 @@ main (int argc, char *argv[]) /* This test does not work on Linux/loongarch64 with glibc 2.37. Likewise on Linux/alpha with glibc 2.7 on Linux 2.6.26. Likewise on FreeBSD 12.2/sparc and NetBSD 8.0/sparc. + Likewise on OpenBSD 7.4/mips64. Cause unknown. */ #if !((__GLIBC__ >= 2 && defined __loongarch__) \ || ((__GLIBC__ == 2 && __GLIBC_MINOR__ < 36) && defined __alpha) \ - || ((defined __FreeBSD__ || defined __NetBSD__) && defined __sparc)) + || ((defined __FreeBSD__ || defined __NetBSD__) && defined __sparc) \ + || (defined __OpenBSD__ && defined __mips64)) { volatile long double a, b; _GL_UNUSED volatile long double c; diff --git a/tests/test-fenv-except-trapping-2.c b/tests/test-fenv-except-trapping-2.c index 21d3548401..8c3c902437 100644 --- a/tests/test-fenv-except-trapping-2.c +++ b/tests/test-fenv-except-trapping-2.c @@ -435,7 +435,7 @@ main (int argc, char *argv[]) macOS/i386, macOS/x86_64, macOS/arm64, FreeBSD/i386, FreeBSD/x86_64, NetBSD/i386, NetBSD/x86_64, - OpenBSD/i386, OpenBSD/x86_64, + OpenBSD/i386, OpenBSD/x86_64, OpenBSD/mips64, Minix/i386, AIX/powerpc, Solaris/i386, Solaris/x86_64, @@ -460,6 +460,7 @@ main (int argc, char *argv[]) || (defined MUSL_LIBC && ((defined __i386 || defined _M_IX86) || defined __powerpc__)) \ || ((defined __APPLE__ && defined __MACH__) && ((defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86) || defined __aarch64__)) \ || ((defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__) && ((defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86))) \ + || (defined __OpenBSD__ && defined __mips64) \ || (defined __minix && (defined __i386 || defined _M_IX86)) \ || (defined _AIX && defined __powerpc__) \ || (defined __sun && ((defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86))) \ @@ -480,10 +481,12 @@ main (int argc, char *argv[]) /* The 'l' tests do not work on Linux/loongarch64 with glibc 2.37. Likewise on Linux/alpha with glibc 2.7 on Linux 2.6.26. Likewise on FreeBSD 12.2/sparc and NetBSD 8.0/sparc. + Likewise on OpenBSD 7.4/mips64. Cause unknown. */ #if (__GLIBC__ >= 2 && defined __loongarch__) \ || ((__GLIBC__ == 2 && __GLIBC_MINOR__ < 36) && defined __alpha) \ - || ((defined __FreeBSD__ || defined __NetBSD__) && defined __sparc) + || ((defined __FreeBSD__ || defined __NetBSD__) && defined __sparc) \ + || (defined __OpenBSD__ && defined __mips64) known_failure |= (type_arg[0] == 'l'); #endif if (known_failure) diff --git a/tests/test-fenv-round.c b/tests/test-fenv-round.c index b697fb1301..637b204bfd 100644 --- a/tests/test-fenv-round.c +++ b/tests/test-fenv-round.c @@ -45,7 +45,7 @@ test_towardzero () a = -1; b = 3; q = a / b; p = b * q; ASSERT (p > a); } -#if !((defined __FreeBSD__ && defined __aarch64__) || (defined __NetBSD__ && defined __sparcv9 /* sparc64 */)) +#if !((defined __FreeBSD__ && defined __aarch64__) || (defined __NetBSD__ && defined __sparcv9 /* sparc64 */) || (defined __OpenBSD__ && defined __mips64)) { long double volatile a, b, q, p; @@ -80,7 +80,7 @@ test_upward () a = -1; b = 3; q = a / b; p = b * q; ASSERT (p > a); } -#if !((defined __FreeBSD__ && defined __aarch64__) || (defined __NetBSD__ && defined __sparcv9 /* sparc64 */)) +#if !((defined __FreeBSD__ && defined __aarch64__) || (defined __NetBSD__ && defined __sparcv9 /* sparc64 */) || (defined __OpenBSD__ && defined __mips64)) { long double volatile a, b, q, p; @@ -115,7 +115,7 @@ test_downward () a = -1; b = 3; q = a / b; p = b * q; ASSERT (p < a); } -#if !((defined __FreeBSD__ && defined __aarch64__) || (defined __NetBSD__ && defined __sparcv9 /* sparc64 */)) +#if !((defined __FreeBSD__ && defined __aarch64__) || (defined __NetBSD__ && defined __sparcv9 /* sparc64 */) || (defined __OpenBSD__ && defined __mips64)) { long double volatile a, b, q, p;