diff options
| author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-01-18 10:18:01 -0300 |
|---|---|---|
| committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-04-02 15:28:36 -0300 |
| commit | a4ed0471d71739928a0d0fa3258b3ff3b158e9b9 (patch) | |
| tree | db8118e3d4c787cdae80d343bb40bb7fc7ed2926 /time/bits/types | |
| parent | a0698a5e92ceeed3409d28623b1d599da6bc887d (diff) | |
| download | glibc-a4ed0471d71739928a0d0fa3258b3ff3b158e9b9.tar.xz glibc-a4ed0471d71739928a0d0fa3258b3ff3b158e9b9.zip | |
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>
Diffstat (limited to 'time/bits/types')
| -rw-r--r-- | time/bits/types/struct_timespec.h | 4 | ||||
| -rw-r--r-- | time/bits/types/struct_timeval.h | 2 | ||||
| -rw-r--r-- | time/bits/types/time_t.h | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/time/bits/types/struct_timespec.h b/time/bits/types/struct_timespec.h index 489e81136d..1141015f27 100644 --- a/time/bits/types/struct_timespec.h +++ b/time/bits/types/struct_timespec.h @@ -10,14 +10,14 @@ has nanoseconds instead of microseconds. */ struct timespec { -#ifdef __USE_TIME_BITS64 +#ifdef __USE_TIME64_REDIRECTS __time64_t tv_sec; /* Seconds. */ #else __time_t tv_sec; /* Seconds. */ #endif #if __WORDSIZE == 64 \ || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ - || (__TIMESIZE == 32 && !defined __USE_TIME_BITS64) + || (__TIMESIZE == 32 && !defined __USE_TIME64_REDIRECTS) __syscall_slong_t tv_nsec; /* Nanoseconds. */ #else # if __BYTE_ORDER == __BIG_ENDIAN diff --git a/time/bits/types/struct_timeval.h b/time/bits/types/struct_timeval.h index 3466137c35..0c8e88c82c 100644 --- a/time/bits/types/struct_timeval.h +++ b/time/bits/types/struct_timeval.h @@ -7,7 +7,7 @@ microsecond but also has a range of years. */ struct timeval { -#ifdef __USE_TIME_BITS64 +#ifdef __USE_TIME64_REDIRECTS __time64_t tv_sec; /* Seconds. */ __suseconds64_t tv_usec; /* Microseconds. */ #else diff --git a/time/bits/types/time_t.h b/time/bits/types/time_t.h index 84d67f6ac3..00cde92c62 100644 --- a/time/bits/types/time_t.h +++ b/time/bits/types/time_t.h @@ -4,7 +4,7 @@ #include <bits/types.h> /* Returned by `time'. */ -#ifdef __USE_TIME_BITS64 +#ifdef __USE_TIME64_REDIRECTS typedef __time64_t time_t; #else typedef __time_t time_t; |
