Just noticed this bug.

The discussion in this bug makes me worry that people do not fully
understand the implications of enabling 64-bit time and large file
system support respectively.

It's great to see people starting to care about this issue and fix
things (it's overdue), but I'm just chiming in to point out that some
care is needed before turning these options on.  Debian is in the
process of developing a plan for this transition, but has not got very far yet.

I have just started a wiki page to cover the issues (and tagged this
bug): https://wiki.debian.org/ReleaseGoals/64bit-time
https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-de...@lists.debian.org;tag=time64

If tar is currently building without LFS enabled, I'd suggest maybe
turning that on, checking things, and uploading before also turning on
64bit time_t. They can be done separately (in that order only). Both
have the potential to change file formats and ABIs (although tar is a
program not a library so no ABI is exposed). Hopefully upstream has
looked at all this carefully and is reasonably sure nothing important
will break?

For LFS enablement you should be aware that LARGEFILE_SOURCE and
FILE_OFFSET_BITS=64 do different things. The former enables both 32
and 64-bit interfaces, the latter chooses the 64-bit interface
only. You probably only want the latter. (depending how these are used
in the codebase, it may not make any practical difference)

For 64-bit time_t enablement you might want to wait for the dpkg
standard debian mechanism to appear and use that:
https://bugs.debian.org/1030159

You certainly want to be sure that things tar depends on (and expose
ABIs or file formats that change) have switched first. Now tar is
close to the bottom of the stack so this may well be fine, but it's
linked against libacl, libselinux, libc and libpcre2, so we should
check those.

I am in the process of running abi-compliance-checker over all debian
libraries to get a list of ones that expose an ABI change from either
enabling LFS or 64bit-time_t. tests so far say:
libacl1 is safe (no change)
libselinux is unknown (did not build)
libpcre2 is unknown (did not build)
(I'll take a look at those now as they are pretty fundamental)

If you choose to use gnulib, note that it turns 64-bit time on by
default if detected in glibc, unless you set a macro to explicitly keep 32-bit 
time.

So in summary, tar is a good candidate for enabling LFS and time64
early but some checks should be done first, unless it is known that
there are no external interface changes other than to glibc.

I hope that is helpful.

Wookey
-- 
Principal hats:  Debian, Wookware, ARM
http://wookware.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to