[Bug libfortran/103886] New: Use 64-bit time_t on 32-bit glibc targets

jb at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Jan 1 19:24:53 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103886

            Bug ID: 103886
           Summary: Use 64-bit time_t on 32-bit glibc targets
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: libfortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jb at gcc dot gnu.org
  Target Milestone: ---

In order to solve the Y2038 problem glibc now supports 64-bit time_t on 32-bit
platforms. As this is an ABI change, it has to be explicitly enabled through
setting the _TIME_BITS=64 preprocessor macro (similar to _FILE_OFFSET_BITS=64
to enable support for files larger than 2 GB).

See https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
and https://sourceware.org/glibc/wiki/Y2038ProofnessDesign

I don't think any time_t (or structs containing time_t members) are part of the
libgfortran ABI, so this should be an internal change not requiring any ABI
bumping.

Some other 32-bit targets already have 64-bit time_t; At least NetBSD, OpenBSD
and Linux with musl libc 1.2+, https://musl.libc.org/time64.html .


More information about the Gcc-bugs mailing list