diff options
author | Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr> | 2017-09-06 10:00:42 +0200 |
---|---|---|
committer | Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr> | 2018-10-24 12:53:27 +0200 |
commit | 3500dd283b8e5d8a4916423855514cdbfee36eac (patch) | |
tree | 1a4a7a09096f94d446db94617b86b5b10ebe4ea7 /manual | |
parent | f1869e11225d9aa054fb11474887d8f109af0949 (diff) | |
download | glibc-aaribaud/y2038.zip glibc-aaribaud/y2038.tar.gz glibc-aaribaud/y2038.tar.bz2 |
Y2038: add _TIME_BITS supportaaribaud/y2038
This makes all previously defined Y2038-proof API types, functions and
implementations the default when _TIME_BITS==64 and __WORDSIZE==32 (so
that 64-bit architectures are unaffected).
Note: it is assumed that the API is consistent, i.e. for each API type
which is enabled here, all API functions which depend on this type are
enabled and mapped to Y2038-proof implementations.
Diffstat (limited to 'manual')
-rw-r--r-- | manual/creature.texi | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/manual/creature.texi b/manual/creature.texi index 8876b2a..10b7111 100644 --- a/manual/creature.texi +++ b/manual/creature.texi @@ -165,6 +165,34 @@ This macro was introduced as part of the Large File Support extension (LFS). @end defvr +@defvr Macro _TIME_BITS +This macro determines the bit size of @code{time_t} (and therefore the +bit size of all @code{time_t} derived types and the prototypes of all +related functions). If @code{_TIME_BITS} is undefined, the bit size of +time_t equals the bit size of the architecture. + +If @code{_TIME_BITS} is undefined, or if @code{_TIME_BITS} is defined +to the value @code{32} and @code{__WORDSIZE} is defined to the value +@code{32}, or or if @code{_TIME_BITS} is defined to the value @code{64} +and @code{__WORDSIZE} is defined to the value @code{64}, nothing changes. + +If @code{_TIME_BITS} is defined to the value @code{64} and if +@code{__WORDSIZE} is defined to the value @code{32}, then the @w{64 bit} +time API and implementation are used even though the architecture word +size is @code{32}. Also, if the kernel provides @w{64 bit} time support, +it is used; otherwise, the @w{32 bit} kernel time support is used (with +no provision to address kernel Y2038 shortcomings). + +If @code{_TIME_BITS} is defined to the value @code{32} and if +@code{__WORDSIZE} is defined to the value @code{64}, then a compile-time +error is emitted. + +If @code{_TIME_BITS} is defined to a value different from both @code{32} +and @code{64}, then a compile-time error is emitted. + +This macro was introduced as part of the Y2038 support. +@end defvr + @defvr Macro _ISOC99_SOURCE @standards{GNU, (none)} If this macro is defined, features from ISO C99 are included. Since |