Bruno Haible <br...@clisp.org> writes: > Po Lu wrote: >> During the automated build of the Android port, the following errors >> were encountered with the Android NDK r10b and __ANDROID_API__ set to 8 >> (which is the oldest configuration Emacs supports.) >> ... >> boot-time.c: In function 'get_boot_time_uncached': >> boot-time.c:111:26: error: 'BOOT_TIME' undeclared (first use in this >> function) >> if (ut->ut_type == BOOT_TIME) >> ^ > > Unlike USER_PROCESS, which is defined in all versions of Android's <utmp.h>, > BOOT_TIME is only defined in newer versions. > > When compiling against an older version, we need to use the value from the > newer versions — otherwise a binary built against an older version might > not work right when running on a newer Android. > > This patch does it. > > > 2023-08-13 Bruno Haible <br...@clisp.org> > > readutmp, boot-time: Fix compilation error on old Android. > Reported by Po Lu in > <https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00108.html>. > * lib/readutmp.h (BOOT_TIME): Add fallback. > > diff --git a/lib/readutmp.h b/lib/readutmp.h > index 1cf588d265..f7cad36d44 100644 > --- a/lib/readutmp.h > +++ b/lib/readutmp.h > @@ -249,6 +249,13 @@ struct utmpx32 > # define WTMP_FILE "/etc/wtmp" > #endif > > +/* In early versions of Android, <utmp.h> did not define BOOT_TIME, only > + USER_PROCESS. We need to use the value that is defined in newer versions > + of Android. */ > +#if defined __ANDROID__ && !defined BOOT_TIME > +# define BOOT_TIME 2 > +#endif > + > /* Some platforms, such as OpenBSD, don't have an ut_type field and don't > have > the BOOT_TIME and USER_PROCESS macros. But we want to support them in > 'struct gl_utmp'. */
Both of your patches appear to work. Thanks.