From 6c1237ff0fb6a1e709a6bdfdea2ef56ae93342ec Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Fri, 19 Jan 2024 10:55:13 +0100
Subject: [PATCH] fenv-*: Avoid test failures on OpenBSD/sparc64.

* tests/test-fenv-except-tracking-2.c (main): On OpenBSD/sparc64, skip
the 'long double' test.
* tests/test-fenv-except-trapping-2.c (main): Skip the 'long double'
tests also on OpenBSD/sparc64.
---
 ChangeLog                           | 8 ++++++++
 tests/test-fenv-except-tracking-2.c | 4 ++--
 tests/test-fenv-except-trapping-2.c | 4 ++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a17ffa60de..196553ffad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2024-01-19  Bruno Haible  <bruno@clisp.org>
+
+	fenv-*: Avoid test failures on OpenBSD/sparc64.
+	* tests/test-fenv-except-tracking-2.c (main): On OpenBSD/sparc64, skip
+	the 'long double' test.
+	* tests/test-fenv-except-trapping-2.c (main): Skip the 'long double'
+	tests also on OpenBSD/sparc64.
+
 2024-01-18  Bruno Haible  <bruno@clisp.org>
 
 	fenv-rounding: Avoid a test failure on OpenBSD/arm64.
diff --git a/tests/test-fenv-except-tracking-2.c b/tests/test-fenv-except-tracking-2.c
index 9a76c8afda..2db4949882 100644
--- a/tests/test-fenv-except-tracking-2.c
+++ b/tests/test-fenv-except-tracking-2.c
@@ -66,12 +66,12 @@ main (int argc, char *argv[])
       case 'l':
         /* 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 FreeBSD 12.2/sparc, NetBSD 8.0/sparc, OpenBSD 7.2/sparc64.
            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 __OpenBSD__) && defined __sparc) \
               || (defined __OpenBSD__ && defined __mips64))
         {
           volatile long double a, b;
diff --git a/tests/test-fenv-except-trapping-2.c b/tests/test-fenv-except-trapping-2.c
index 63f7bc67e5..57b9341f46 100644
--- a/tests/test-fenv-except-trapping-2.c
+++ b/tests/test-fenv-except-trapping-2.c
@@ -480,12 +480,12 @@ main (int argc, char *argv[])
       #endif
       /* 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 FreeBSD 12.2/sparc, NetBSD 8.0/sparc, OpenBSD 7.2/sparc64.
          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 __OpenBSD__) && defined __sparc) \
           || (defined __OpenBSD__ && defined __mips64)
       known_failure |= (type_arg[0] == 'l');
       #endif
-- 
2.39.5