This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: First draft of the Y2038 design document


On Mon, Oct 26, 2015 at 10:41:02PM +0000, Joseph Myers wrote:
> On Mon, 26 Oct 2015, Rich Felker wrote:
> 
> > I too would strongly prefer NOT repeating the off64_t mistake and
> > instead just having new 32-bit targets with 64-bit time_t. This would
> > also allow fixing lots of old ABI mistakes at the same time.
> 
> I don't think there's likely to be any sort of consensus that it was a 
> mistake; there's much more likely to be consensus that it was not a 
> mistake and that long-term ABI support was and is very helpful to the 
> widespread adoption of GNU/Linux (and now the adoption is sufficiently 
> widespread that any move to libc.so.7 would likely be very hard, although 
> I'd welcome the ability to make such a transition occasionally, and maybe 
> it would make sense to maintain a list on the wiki of ABI-incompatible 
> changes people think would be desirable in such a transition, ***being 
> very careful to distinguish changes that have consensus from changes that 
> it's just one person's opinion would be a good idea***).

While _FILE_OFFSET_BITS or _TIME_BITS avoids an ABI transition in
libc, they force an ABI transition for all third-party libraries that
use the types. A library that uses off_t in its API and that's built
with _FILE_OFFSET_BITS=64 is ABI-incompatible with a version of
itself, or an application, built with _FILE_OFFSET_BITS=32. Thankfully
the use of these types in pubic APIs is not extremely widespread
outside libc, but it's still a concern and a possible source of subtle
but nasty breakage.

Perhaps there's some way the ABI-incompatibility could be encoded to
catch and avoid that? I don't see any obvious solution though since
you don't want to penalize (refuse to link) libraries where it doesn't
matter, which are much more common.

Another goal that might make this less distasteful than
_FILE_OFFSET_BITS would be a planned timeline for switching the
default to 64.

Rich


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]