time64 / Large File Support: 2) default time64 breaks legacy 32bit binaries
Paul Eggert
eggert@cs.ucla.edu
Thu Jan 26 04:13:25 GMT 2023
On 1/25/23 15:59, Andreas K. Huettel via Libc-alpha wrote:
> This was discussed already in the previous thread on this list [1], with reactions
> ranging from "need new triplet" via "need new libdir" to "meh"....
> [1] https://sourceware.org/pipermail/libc-alpha/2022-November/143386.html
One thing new since that November email is that in bleeding-edge
Autoconf we've scaled back AC_SYS_LARGEFILE so it no longer widens
time_t by default. Instead, you need to pass a new option
--enable-year2038 to 'configure' if you want 64-bit time_t on 32-bit
glibc x86 and ARM platforms, which as I understand it are the only
platforms that have this problem. If a package author wants
--enable-year2038 to be the default, they need to use Autoconf's new
AC_SYS_YEAR2038 macro. This change has also percolated into Gnulib so
source packages using recent Gnulib will need to use the new Gnulib
module year2038 if they want --enable-year2038 to be the default.
This change was done out of concern that although AC_SYS_LARGEFILE has
long tweaked blkcnt_t, dev_t, ino_t, fsblkcnt_t, fsfilcnt_t and rlim_t
(in addition to off_t of course), having it also tweak time_t was a
compatibility bridge too far.
> Proposal: glibc gains two new build-time configure options:
> * --enable-hard-time64
> * --enable-hard-lfs
This sort of thing sounds like a good way to go. However, I suggest
simplifying things, by having just one option (say,
--enable-hard-sys-types64) that does both at once, because
--enable-hard-time64 and --enable-hard-lfs would not be orthogonal and
this would be confusing, and anyway nobody sane will want to use one
option without also using the other - who wants the agony of *two*
conversions?
More information about the Libc-alpha
mailing list