On 2025-04-21 10:19, Bruno Haible wrote:
when writing 'defined __linux__' one typically thinks about GNU/Linux and musl-based systems. Android systems are often so different and always require separate testing.
OK, thanks for the review. I installed the following patch to Gnulib. It should work the same as Po Lu's patch, while not unnecessarily repeating symbols which was my concern, and also while not assuming __ANDROID__ implies __linux__ which was your concern.
From cd9859b6f5908f933d2db7ee92bcd1e0db9aac1f Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Mon, 21 Apr 2025 10:58:58 -0700 Subject: [PATCH] getloadavg: port to Android 3.1- Problem reported by Po Lu in: https://lists.gnu.org/r/bug-gnulib/2025-04/msg00172.html * lib/getloadavg.c (getloadavg): Do not try to use sysinfo on Android 3.1 Honeycomb (API 12, 2011) and earlier. --- ChangeLog | 8 ++++++++ lib/getloadavg.c | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2d3705be93..6993f2d9b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2025-04-21 Paul Eggert <egg...@cs.ucla.edu> + + getloadavg: port to Android 3.1- + Problem reported by Po Lu in: + https://lists.gnu.org/r/bug-gnulib/2025-04/msg00172.html + * lib/getloadavg.c (getloadavg): Do not try to use sysinfo on + Android 3.1 Honeycomb (API 12, 2011) and earlier. + 2025-04-19 Bruno Haible <br...@clisp.org> Update users.txt. diff --git a/lib/getloadavg.c b/lib/getloadavg.c index 9da41c16c0..5b21ed525c 100644 --- a/lib/getloadavg.c +++ b/lib/getloadavg.c @@ -499,8 +499,9 @@ getloadavg (double loadavg[], int nelem) } # endif -# if !defined (LDAV_DONE) && (defined __linux__ || defined __ANDROID__) - /* Linux without glibc, Android, Cygwin */ +# if (!defined LDAV_DONE \ + && (defined __ANDROID__ ? 13 <= __ANDROID_API__ : __defined __linux__)) + /* non-Android Linux without glibc, Android 3.2+, Cygwin */ # define LDAV_DONE # undef LOAD_AVE_TYPE @@ -513,7 +514,7 @@ getloadavg (double loadavg[], int nelem) loadavg[2] = info.loads[2] / (double)(1U << SI_LOAD_SHIFT); elem = 3; } -# endif /* __linux__ || __ANDROID__ */ +# endif /* __ANDROID__ ? 13 <= __ANDROID_API__ : __linux__ */ # if !defined (LDAV_DONE) && defined __CYGWIN__ /* Cygwin */ -- 2.48.1