Andreas Schwab wrote: > > char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ > > That's still using reserved symbols.
Fixed through the patch below. But that is just a workaround. Is someone among the glibc people looking at the original glibc bug https://sourceware.org/bugzilla/show_bug.cgi?id=30701 ? 2023-08-14 Bruno Haible <br...@clisp.org> readutmp, boot-time: Don't use __UT_* symbols (regression 2023-08-11). * lib/readutmp.h (_GL_UT_USER_SIZE, _GL_UT_ID_SIZE, _GL_UT_LINE_SIZE, _GL_UT_HOST_SIZE): New macros. (struct utmpx32): Use them. diff --git a/lib/readutmp.h b/lib/readutmp.h index 1fbe29d86f..3ddecf3727 100644 --- a/lib/readutmp.h +++ b/lib/readutmp.h @@ -136,14 +136,18 @@ enum { UT_HOST_SIZE = -1 }; /* This is a near-copy of glibc's struct utmpx, which stops working after the year 2038. Unlike the glibc version, struct utmpx32 describes the file format even if time_t is 64 bits. */ +#define _GL_UT_USER_SIZE sizeof (((struct utmpx *) 0)->ut_user) +#define _GL_UT_ID_SIZE sizeof (((struct utmpx *) 0)->ut_id) +#define _GL_UT_LINE_SIZE sizeof (((struct utmpx *) 0)->ut_line) +#define _GL_UT_HOST_SIZE sizeof (((struct utmpx *) 0)->ut_host) struct utmpx32 { short int ut_type; /* Type of login. */ pid_t ut_pid; /* Process ID of login process. */ - char ut_line[__UT_LINESIZE]; /* Devicename. */ - char ut_id[4]; /* Inittab ID. */ - char ut_user[__UT_NAMESIZE]; /* Username. */ - char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ + char ut_line[_GL_UT_LINE_SIZE]; /* Devicename. */ + char ut_id[_GL_UT_ID_SIZE]; /* Inittab ID. */ + char ut_user[_GL_UT_USER_SIZE]; /* Username. */ + char ut_host[_GL_UT_HOST_SIZE]; /* Hostname for remote login. */ struct __exit_status ut_exit; /* Exit status of a process marked as DEAD_PROCESS. */ /* The fields ut_session and ut_tv must be the same size when compiled