signal to kernel headers that time_t is 64-bit
authorRich Felker <dalias@aerifal.cx>
Tue, 17 Dec 2019 23:19:05 +0000 (18:19 -0500)
committerRich Felker <dalias@aerifal.cx>
Tue, 17 Dec 2019 23:19:05 +0000 (18:19 -0500)
linux/input.h and perhaps others use this macro to determine whether
the userspace time_t is 64-bit when potentially defining types in
terms of time_t and derived structures. the name __USE_TIME_BITS64 is
unfortunate; it really should have been in the __UAPI namespace. but
this is what was chosen back in v4.16 when first preparing input.h for
time64 userspace, presumably based on expectations about what the
glibc-internal features.h macro for time64 would be, and changing it
now would just put a new minimum version requirement on kernel
headers.

the __USE_TIME_BITS64 macro is not intended as a public interface. it
is purely an internal contract between libc and Linux uapi headers.

include/alltypes.h.in

index 94aa208..d9ff462 100644 (file)
@@ -1,5 +1,6 @@
 #define __LITTLE_ENDIAN 1234
 #define __BIG_ENDIAN 4321
+#define __USE_TIME_BITS64 1
 
 TYPEDEF unsigned _Addr size_t;
 TYPEDEF unsigned _Addr uintptr_t;