On Mon, Jan 22, 2024 at 4:24 PM Paul Eggert via tz <tz@iana.org> wrote:
POSIX doesn't require int64_t. This is true even of POSIX 202x/D4.
And even if POSIX required int64_t, it wouldn't need to require time_t to be 64 bits. It could allow 60-bit time_t on implementations that have 60-bit integer types, much as it already allows 60-bit implementations of types like off_t and size_t.
This is all hypothetical of course. ...
Forgive me if I am getting standards / versions mixed up, but doesn't POSIX require CHAR_BIT==8? And recent POSIX says time_t is an integral type (compared to an arithmetic type)? Wouldn't this mean that time_t has to at least be a multiple of 8-bit in size now? And for historical purposes, weird non-POSIX platforms with C compilers have long life in the DSP and micro-controller world. I worked on a system into the early 2000's that had CHAR_BIT==32, and sizeof() all types was 1 as a result (along with 40-bit non-IEEE floating point). It also wouldn't surprise me if there is a VAX somewhere that won't die, and someone still is dealing with the MJD epoch and 100ns ticks. --Matthew Donadio (matt@mxd120.com)