From: Russ Allbery <eagle@eyrie.org>
To: Wookey <wookey@wookware.org>
Cc: Paul Eggert <eggert@cs.ucla.edu>, Bruno Haible <bruno@clisp.org>,
Zack Weinberg <zack@owlfolio.org>, Sam James <sam@gentoo.org>,
Florian Weimer <fweimer@redhat.com>,
Carlos O'Donell via Libc-alpha <libc-alpha@sourceware.org>,
autoconf@gnu.org, c-std-porting@lists.linux.dev,
toolchain@gentoo.org, bug-gnulib@gnu.org,
Arnd Bergmann <arnd@arndb.de>
Subject: Re: On time64 and Large File Support
Date: Sat, 12 Nov 2022 12:54:42 -0800 [thread overview]
Message-ID: <87bkpbx59p.fsf@hope.eyrie.org> (raw)
In-Reply-To: <20221112202321.GO27919@mail.wookware.org> (wookey@wookware.org's message of "Sat, 12 Nov 2022 20:23:21 +0000")
Wookey <wookey@wookware.org> writes:
> Now, I'm not yet sure if just having autoconf 2.72 will actually break
> things. AIUI, these changes only apply where LFS
> (-D_FILE_OFFSET_BITS=64) is turned on, so in Debian at least, where that
> is not the default on 32bit arches, maybe this is OK. But probably quite
> a lot of packages already enable LFS so they are suddenly going to get a
> new ABI if they expose timet anywhere?
> https://codesearch.debian.net/search?q=AC_SYS_LARGEFILE&perpkg=1 shows
> 163 pages of hits, and a quick peruse suggsts that AC_SYS_LARGEFILE is
> used by a lot of packages (as you might expect - this transition has
> been going on for many years). And just having that macro in
> configure.(in|ac) will turn 64-bit timet on if you autoreconf with
> 2.72. Right?
If indeed pre-existing use of AC_SYS_LARGEFILES would suddenly enable
64-bit time_t on autoreconf, I can name two packages just off the top of
my head that this change to Autoconf will immediately break if their
Debian packages are rebuilt with a newer version of Autoconf, creating
severe bugs.
libremctl will have its ABI changed without any coordination or versioning
(which I will be doing, moving forward, but have not started tackling yet
in part because I was waiting to see what the plan would be and whether
there will be some coordinated change to SONAMEs, a new architecture, or
what). And INN, which admittedly is a disaster about things like this for
lots of historical reasons, will have its *on-disk file format* changed
without notice in a way that will cause serious failure and possibly data
corruption on upgrades.
This is just wildly backward-incompatible and seems like an awful idea.
If we're going to throw a big switch and rebuild everything, it needs to
be done at a distro-wide level. I believe the only safe thing for
Autoconf to do is to provide an opt-in facility, similar to what was done
for AC_SYS_LARGEFILE, and then leave deciding whether to opt in to
higher-level machinery.
> However my limited understanding as of right now says that autoconf 2.72
> tying 64bit time_t to use of AC_SYS_LARGEFILE means that 2.72 can't be
> used in debian yet. So I currently favour not tying them together in
> this release.
That's also my understanding from the thread so far, although I'm not sure
that I'm following all of the subtleties.
> People have been using AC_SYS_LARGEFILE without 64bit time_t for many
> years now so it's not yet clear to me why that cannot continue.
And these are conceptually not at all the same thing. I saw Paul's
explanation for why he views them as fundamentally the same because of
their effect on system calls like stat, but I certainly don't think of
them that way and I am quite dubious many other people will either. The
set of things that I have to check to ensure that time_t is handled
correctly is totally different than the set of things I thought about when
enabling AC_SYS_LARGEFILE many years in the past.
I recognize that there will be overlap once file timestamps are past 2038
and that will happen sooner than anyone plans for, but it's still true
that this has *not* happened right now and this therefore is not currently
creating many bugs, whereas this switch in this way will create many, very
serious bugs immediately.
--
Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>
next prev parent reply other threads:[~2022-11-12 20:54 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-11 8:38 Sam James
2022-11-11 9:16 ` Paul Eggert
2022-11-11 9:19 ` Sam James
2022-11-11 23:48 ` Joseph Myers
2022-11-11 9:19 ` Florian Weimer
2022-11-11 9:27 ` Sam James
2022-11-11 11:38 ` Florian Weimer
2022-11-11 20:12 ` Paul Eggert
2022-11-12 2:20 ` Zack Weinberg
2022-11-12 3:57 ` Sam James
2022-11-12 14:16 ` Zack Weinberg
2022-11-12 17:41 ` Paul Eggert
2022-11-12 18:50 ` Bruno Haible
2022-11-12 19:15 ` Paul Eggert
2022-11-12 20:23 ` Wookey
2022-11-12 20:54 ` Russ Allbery [this message]
2022-11-12 21:31 ` Paul Eggert
2022-11-15 5:09 ` Sam James
2022-11-12 18:19 ` Paul Eggert
2022-11-11 9:40 ` Andreas K. Huettel
2022-11-11 11:30 ` Florian Weimer
2022-11-11 19:01 ` Andreas K. Huettel
2022-11-11 19:28 ` Palmer Dabbelt
2022-11-11 9:46 ` Paul Eggert
2022-11-11 11:22 ` Florian Weimer
2022-11-11 19:56 ` Paul Eggert
2022-11-12 4:20 ` Wookey
2022-11-12 4:28 ` Sam James
2022-11-12 4:56 ` Wookey
2022-11-12 4:59 ` Sam James
2022-11-12 18:33 ` Paul Eggert
2022-11-14 8:39 ` Adam Sampson
2022-11-14 11:47 ` Florian Weimer
2022-11-14 20:26 ` Arsen Arsenović
2022-11-14 20:52 ` Florian Weimer
2022-11-15 7:39 ` Arsen Arsenović
2022-11-11 10:25 ` Richard Purdie
2023-03-01 22:38 ` Eric Blake
2023-03-02 0:29 ` Demi Marie Obenour
2023-03-02 9:04 ` Daniel P. Berrangé
2023-03-02 10:28 ` Paul Eggert
2023-03-02 10:38 ` Andreas Schwab
2023-03-03 5:46 ` Paul Eggert
2023-03-06 8:58 ` Andreas Schwab
2023-03-06 10:19 ` Florian Weimer
2023-03-02 11:02 ` Richard W.M. Jones
2023-03-02 12:17 ` Bruno Haible
2023-03-02 13:24 ` Daniel P. Berrangé
2023-03-03 3:30 ` Wookey
2023-03-03 5:50 ` Paul Eggert
2023-03-03 14:01 ` Wookey
2023-03-03 14:14 ` Daniel P. Berrangé
2023-03-03 23:21 ` Arsen Arsenović
2023-03-03 11:49 ` Florian Weimer
2023-03-03 12:39 ` Richard W.M. Jones
2023-03-02 8:30 ` Richard W.M. Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bkpbx59p.fsf@hope.eyrie.org \
--to=eagle@eyrie.org \
--cc=arnd@arndb.de \
--cc=autoconf@gnu.org \
--cc=bruno@clisp.org \
--cc=bug-gnulib@gnu.org \
--cc=c-std-porting@lists.linux.dev \
--cc=eggert@cs.ucla.edu \
--cc=fweimer@redhat.com \
--cc=libc-alpha@sourceware.org \
--cc=sam@gentoo.org \
--cc=toolchain@gentoo.org \
--cc=wookey@wookware.org \
--cc=zack@owlfolio.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).