Always define __USE_TIME_BITS64 when 64 bit time_t is used
commita4ed0471d71739928a0d0fa3258b3ff3b158e9b9
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 18 Jan 2024 13:18:01 +0000 (18 10:18 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 2 Apr 2024 18:28:36 +0000 (2 15:28 -0300)
treedb8118e3d4c787cdae80d343bb40bb7fc7ed2926
parenta0698a5e92ceeed3409d28623b1d599da6bc887d
Always define __USE_TIME_BITS64 when 64 bit time_t is used

It was raised on libc-help [1] that some Linux kernel interfaces expect
the libc to define __USE_TIME_BITS64 to indicate the time_t size for the
kABI.  Different than defined by the initial y2038 design document [2],
the __USE_TIME_BITS64 is only defined for ABIs that support more than
one time_t size (by defining the _TIME_BITS for each module).

The 64 bit time_t redirects are now enabled using a different internal
define (__USE_TIME64_REDIRECTS). There is no expected change in semantic
or code generation.

Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu, and
arm-linux-gnueabi

[1] https://sourceware.org/pipermail/libc-help/2024-January/006557.html
[2] https://sourceware.org/glibc/wiki/Y2038ProofnessDesign

Reviewed-by: DJ Delorie <dj@redhat.com>
75 files changed:
io/bits/poll2.h
io/fcntl.h
io/fts.h
io/ftw.h
io/sys/poll.h
io/sys/stat.h
io/utime.h
manual/creature.texi
manual/maint.texi
misc/sys/ioctl.h
misc/sys/select.h
posix/glob.h
posix/sched.h
posix/sys/wait.h
resolv/netdb.h
resource/sys/resource.h
rt/aio.h
rt/mqueue.h
signal/signal.h
socket/sys/socket.h
support/timespec.h
support/xtime.h
support/xunistd.h
sysdeps/generic/features-time64.h [deleted file]
sysdeps/nptl/pthread.h
sysdeps/pthread/semaphore.h
sysdeps/pthread/threads.h
sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
sysdeps/unix/sysv/linux/bits/socket-constants.h
sysdeps/unix/sysv/linux/bits/time.h
sysdeps/unix/sysv/linux/bits/timex.h
sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h
sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
sysdeps/unix/sysv/linux/csky/bits/struct_stat.h
sysdeps/unix/sysv/linux/features-time64.h
sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h
sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h
sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h
sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h
sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h
sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h
sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h
sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
sysdeps/unix/sysv/linux/sh/bits/struct_stat.h
sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h
sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
sysdeps/unix/sysv/linux/sys/epoll.h
sysdeps/unix/sysv/linux/sys/prctl.h
sysdeps/unix/sysv/linux/sys/timerfd.h
sysdeps/unix/sysv/linux/sys/timex.h
sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h
sysvipc/sys/msg.h
sysvipc/sys/sem.h
sysvipc/sys/shm.h
time/bits/types/struct_timespec.h
time/bits/types/struct_timeval.h
time/bits/types/time_t.h
time/sys/time.h
time/time.h