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 /manual | |
parent | a0698a5e92ceeed3409d28623b1d599da6bc887d (diff) | |
download | glibc-a4ed0471d71739928a0d0fa3258b3ff3b158e9b9.tar.gz 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 'manual')
-rw-r--r-- | manual/creature.texi | 6 | ||||
-rw-r--r-- | manual/maint.texi | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/manual/creature.texi b/manual/creature.texi index 3fc53619ea..be0a5ac7e6 100644 --- a/manual/creature.texi +++ b/manual/creature.texi @@ -192,6 +192,12 @@ Linux kernel version on which the system is running. For Linux kernel version above @b{5.1} syscalls supporting 64-bit time are used. Otherwise, a fallback code is used with legacy (i.e. 32-bit) syscalls. +On such platforms, @theglibc{} will also define @code{__USE_TIME64_REDIRECTS} +to indicate whether the declarations are expanded to different ones +(either by redefiniding the symbol name or using symbol aliais). +For instance, if the symbol @code{clock_gettime} expands to +@code{__glock_gettime64}. + @item If @code{_TIME_BITS} is defined to be 32, @code{time_t} is defined to be a 32-bit integer where that is supported. This is not recommended, diff --git a/manual/maint.texi b/manual/maint.texi index 89da704f45..04faa222e2 100644 --- a/manual/maint.texi +++ b/manual/maint.texi @@ -491,6 +491,10 @@ derived as in the dual-time configuration case, and which expands to the symbol's name. For instance, the macro @code{__clock_gettime64} expands to @code{clock_gettime}. +When @code{__TIMESIZE} is set to 64, @theglibc{} will also define +the@code{__USE_TIME_BITS64} macro. It is used by the Linux kernel ABI +to set the expected @code{time_t} size used on some syscalls. + These macros are purely internal to @theglibc{} and exist only so that a single definition of the 64-bit time functions can be used on both single-time and dual-time configurations, and so that glibc code can |