Hi Bruno,
I see the following test failure on Android 16 after building a testdir
of all modules:
$ cat gltests/test-snan-1.log
test-snan-1.c:99: assertion 'fetestexcept (FE_INVALID)' failed
Aborted
FAIL test-snan-1 (exit status: 134)
Here is what I ran ./configure with:
$ ./configure CC='clang -target aarch64-unknown-linux-android28'
$ make check
My understanding is that Bionic imports all it's math functions from the
BSDs. Based on the symbols this case looks like same as why
FreeBSD/arm64 fails:
$ nm ./gltests/test-snan-1 | grep -F __addtf
0000000000008d0c T __addtf3
Okay to disable this test with the attached patch?
Collin
>From f9e2752faf18fc11b933a95f971bdf53622b1e2f Mon Sep 17 00:00:00 2001
Message-ID: <f9e2752faf18fc11b933a95f971bdf53622b1e2f.1761015036.git.collin.fu...@gmail.com>
From: Collin Funk <[email protected]>
Date: Mon, 20 Oct 2025 19:49:45 -0700
Subject: [PATCH] snan tests: Avoid test failure on Android.
* tests/test-snan-1.c (main): Disable test that is known to fail.
---
ChangeLog | 5 +++++
tests/test-snan-1.c | 6 +++---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 959300b1ca..87fc8281c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2025-10-20 Collin Funk <[email protected]>
+
+ snan tests: Avoid test failure on Android.
+ * tests/test-snan-1.c (main): Disable test that is known to fail.
+
2025-10-20 Bruno Haible <[email protected]>
glob: Add support for Android.
diff --git a/tests/test-snan-1.c b/tests/test-snan-1.c
index a958e9af0b..75359a3813 100644
--- a/tests/test-snan-1.c
+++ b/tests/test-snan-1.c
@@ -83,14 +83,14 @@ main ()
#endif
/* This test does not work on eglibc 2.13/mips64
(bug in libc function __addtf3).
- This test does not work on FreeBSD/arm64 and OpenBSD/mips64
- (bug in libc function __addtf3).
+ This test does not work on FreeBSD/arm64, Android/arm64,
+ and OpenBSD/mips64 (bug in libc function __addtf3).
This test does not work on FreeBSD/sparc64 and NetBSD/sparc64
(bug in libc function _Qp_add).
This test does not work on MSVC/i386, because of the general IA-32
problem (see above) and 'long double' == 'double'. */
#if !((((__GLIBC__ == 2 && __GLIBC_MINOR__ < 19 && defined __mips64) \
- || ((defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__) && (defined __aarch64__ || defined __mips64__ || defined __sparc))) \
+ || ((defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined __ANDROID__) && (defined __aarch64__ || defined __mips64__ || defined __sparc))) \
&& !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE) \
|| ((defined __i386 || defined _M_IX86) && HAVE_SAME_LONG_DOUBLE_AS_DOUBLE))
{
--
2.51.0