As of glibc-2.34, the size of members in struct timex varies depending on
the _TIME_BITS macro.
Fixes: https://github.com/systemd/systemd/issues/21826
conf.set('SIZEOF_INO_T', cc.sizeof('ino_t', prefix : '#include <sys/types.h>'))
conf.set('SIZEOF_TIME_T', cc.sizeof('time_t', prefix : '#include <sys/time.h>'))
conf.set('SIZEOF_RLIM_T', cc.sizeof('rlim_t', prefix : '#include <sys/resource.h>'))
+conf.set('SIZEOF_TIMEX_MEMBER', cc.sizeof('((struct timex *)0)->freq', prefix : '#include <sys/timex.h>'))
decl_headers = '''
#include <uchar.h>
# error Unknown time_t size
#endif
-#if defined __x86_64__ && defined __ILP32__
+#if SIZEOF_TIMEX_MEMBER == 8
# define PRI_TIMEX PRIi64
-#else
+#elif SIZEOF_TIMEX_MEMBER == 4
# define PRI_TIMEX "li"
+#else
+# error Unknown timex member size
#endif
#if SIZEOF_RLIM_T == 8