[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64
From: |
Paul Eggert |
Subject: |
Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64 |
Date: |
Mon, 5 Jul 2021 13:14:08 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
On 7/5/21 7:32 AM, Florian Weimer wrote:
I assume GNU clisp (at least in a full build) need to link to some
system libraries which are not dual ABI (and probably never will be).
If gnulib forces the use of time64 mode, then it creates a push towards
time64 mode in those libraries, too.
Only in libraries that expose time_t (or time_t-dependent types like
struct timespec and struct stat) directly to their users, right? For
example, libselinux is unaffected by this issue even though it calls
'lstat' internally, because its user-side ABI is unaffected by time_t width.
I take your point, though, that there will be a hassle with libraries
whose user-side ABIs depend on time_t width. I expect distros will
migrate these libraries and their users to _TIME_BITS=64 in an
all-or-nothing way.
But again, this is not strictly a Gnulib issue. Apps like Coreutils
should be fine even with the new Gnulib, as Coreutils doesn't use any of
the problematic libraries. Conversely, apps that '#define _TIME_BITS 64'
directly and use GLib (or whatever) can have the problem, even if they
don't use Gnulib.
It is not, gnulib is pushing things in one particular direction, a
direction that not everyone working on the GNU toolchain agrees with.
That's OK; we needn't have universal agreement on this point, which is a
good thing because it'd be impractical to insist on universal agreement.
There is a way to build with 32-bit time_t even in Gnulib-using apps,
so distros wanting to stick with 32-bit time_t can build Gnulib-using
apps with the appropriate flags so that they're still living in the
32-bit time_t world for now.
There are some major differences to _FILE_OFFSET_BITS=64:
There weren't 20+ years of backwards compatibility in 2005
Not on Linux-based platforms of course, but there were on BSD-based
platforms with 20+ years of backwards compatibility back then (SunOS
comes to mind). Admittedly there were fewer computers back then but the
compatibility issues were quite extensive.
64-bit file offsets enabled real use cases.
Designing devices now, that will be used past 2038, is a real use case.
- [PATCH] year2038: support glibc 2.34 _TIME_BITS=64, Paul Eggert, 2021/07/01
- Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64, Florian Weimer, 2021/07/02
- Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64, Bruno Haible, 2021/07/05
- Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64, Florian Weimer, 2021/07/07
- Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64, Paul Eggert, 2021/07/07
- Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64, Florian Weimer, 2021/07/08
- Re: [PATCH] year2038: support glibc 2.34 _TIME_BITS=64, Paul Eggert, 2021/07/16