bug-gnulib
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]