Paul Eggert wrote: > 0006-readutmp-switch-new-struct-to-struct-timespec.patch
> @@ -150,12 +150,11 @@ struct gl_utmp > ⎣ ut_addr_v6 [u]int[4] glibc, musl, Android > */ > > -# include <utmp.h> > # if !HAVE_DECL_GETUTENT > struct utmp *getutent (void); > # endif > # define UTMP_STRUCT_NAME utmp > -# define UT_TIME_MEMBER(UT) ((UT)->ut_time) > +# define UT_TIME_MEMBER(UT) ((UT)->ut_ts.tv_sec) > # define SET_UTMP_ENT setutent > # define GET_UTMP_ENT getutent > # define END_UTMP_ENT endutent This causes a compilation error on OpenBSD, AIX, and Android: On OpenBSD: ../../gllib/readutmp.c:76:20: error: no member named 'ut_ts' in 'struct utmp' bool user_proc = IS_USER_PROCESS (ut); ^~~~~~~~~~~~~~~~~~~~ ../../gllib/readutmp.h:297:36: note: expanded from macro 'IS_USER_PROCESS' || (UT_TYPE_NOT_DEFINED && UT_TIME_MEMBER (UT) != 0))) ^~~~~~~~~~~~~~~~~~~ ../../gllib/readutmp.h:158:36: note: expanded from macro 'UT_TIME_MEMBER' # define UT_TIME_MEMBER(UT) ((UT)->ut_ts.tv_sec) ~~~~ ^ On AIX: "../../gllib/readutmp.c", line 76.20: 1506-022 (S) "ut_ts" is not a member of "const struct utmp". make: 1254-004 The error code from the last command is 1. On Android: ../../gllib/readutmp.c:76:20: error: no member named 'ut_ts' in 'struct utmp'; did you mean 'ut_tv'? This patch fixes it. 2023-08-08 Bruno Haible <br...@clisp.org> readutmp: Fix compilation error on OpenBSD and AIX (regr. 2023-08-03). * lib/readutmp.h (UT_TIME_MEMBER) [HAVE_UTMP_H]: Revert last change. diff --git a/lib/readutmp.h b/lib/readutmp.h index 9f53246597..043ae6df16 100644 --- a/lib/readutmp.h +++ b/lib/readutmp.h @@ -155,7 +155,7 @@ struct gl_utmp struct utmp *getutent (void); # endif # define UTMP_STRUCT_NAME utmp -# define UT_TIME_MEMBER(UT) ((UT)->ut_ts.tv_sec) +# define UT_TIME_MEMBER(UT) ((UT)->ut_time) # define SET_UTMP_ENT setutent # define GET_UTMP_ENT getutent # define END_UTMP_ENT endutent