From: "Andreas K. Huettel" <dilfridge@gentoo.org>
To: Wookey <wookey@wookware.org>
Cc: libc-alpha@sourceware.org, binutils@sourceware.org,
gcc@gcc.gnu.org, config-patches@gnu.org,
distributions@lists.linux.dev, devel@lists.fedoraproject.org,
glaubitz@debian.org, maskray@google.com,
dickey@invisible-island.net, toolchain@gentoo.org
Subject: Re: Proposed CHOST change for the 64bit time_t transition
Date: Thu, 05 Sep 2024 15:49:07 +0200 [thread overview]
Message-ID: <4449180.ejJDZkT8p0@noumea> (raw)
In-Reply-To: <20240905020617.GZ23787@mail.wookware.org>
[-- Attachment #1: Type: text/plain, Size: 4664 bytes --]
Hi Wookey,
> > in Gentoo Linux we want to change our CHOST triplets for 32-bit glibc systems that use
> > 64-bit time_t, since this is technically an ABI change which breaks binary compatibility [1].
>
> > * In an ideal world this change would be synchronized across distributions. Opinions? [5]
>
> Debian considered this issue over the last 18 months/2 years, and
> found very little enthusiasm for making new triplets.
I guess you mean "little enthusiasm within Debian".
I mean, I still remember your slides and attempts at clarification at FOSDEM, I was
there and definitely tried to get a conversation going. And we've also been sounding
out cooperation otherwise.
> Every distro that is using 64-bit time (on 32-bit arches) just enabled the flags
> and changed the ABI without setting a new arch/triplet
Could you maybe specify "every distro" a bit further? I'd guess Debian and Ubuntu,
plus Yocto/OpenEmbedded (which is in my opinion a special case, see separate
reply)?
> time, not have to install a new architecture, Debian and Ubuntu
> decided not to try and push a new triplet and do a library-name ABI
> update within the architecture(s). That went ahead between March and
> June this year and is now pretty-much done, modulo a few outstanding
> bugs
> (https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-arm@lists.debian.org;tag=time-t).
Which does not really change the long term problem we're trying to address.
I mean, one of the nice things about open source systems is that you can
keep legacy systems working for a long time without needless binary compatibility
breaks. The glibc developers are the real specialists for that.
TL;DR: Thanks for trying, we want to do better.
> seems to me that this is now a done deal, and 'everyone' has already
> switched within the existing triplets, even Debian, which is the
Again, please define "everyone".
> > [1] The ABI of glibc does technically NOT change, however, the type definition of, e.g., time_t does.
> > And as soon as any other library includes that in its public interfaces and data structures, that library
> > changes its ABI.
> > An example for an affected library (found real-world during testing) is gnutls, see
> > https://bugs.gentoo.org/828001
>
> Yes. We did a big ABI analysis to find out how many libraries were
> affected (including LFS which glibc ties into this transition) and it
> was about 700. (there were quite a few more where the automated ABI
> tools failed and it was easier to do a transition than work out why,
> so we ended up transitioning 1093 source packages
> (https://people.canonical.com/~vorlon/armhf-time_t/source-packages).
Very nice work. It shows the overall problem is actually larger than I assumed.
Doing the transition without giving a d*** about historical compatibility
would be fairly easy for Gentoo, after all, we are a rolling release,
source-based distribution, and rebuilds of packages are normal for our users.
That said, we tend to take the job serious and minimize the breakage.
> So yes it's an ABI change, but we don't always change the triplet for
> this, sometimes we just move the baseline along. This happened in the
> last for glibc 5->6 and libstdc++ v4 to v5 and the long-double
> redefinition in s390,alpha, sparc, powerpc. In fact, considering the
> whole-distro collective ABI, this happens every time there is an ABI
> change in a library. The arch/triplet remains the same, but the new
> release has a different ABI in some number of libraries and
> dependencies.
Most of the examples that you are listing here have a built-in mechanism
for coping with the upgrade.
As an example, a library changes soversion, and there is no reason not
to keep a library with the old version around if you need it still.
We have, e.g., in Gentoo a security-masked library-only package for
openssl 1.0 and 1.1 should anyone still need it, or even libstdc++ 3.
About s390, alpha, sparc, powerpc - yes, even our criteria might be a bit
looser there, however, that's mostly because the ecosystem is much smaller.
There should be by far not so many legacy binaries floating around in
comparison to x86.
> This was
> a borderline case that could have gone either way, but people decided
> to do it as a transition, not a new triplet.
I guess you mean "Debian decided". We certainly haven't heard from you.
Cheers,
Andreas
--
Andreas K. Hüttel
dilfridge@gentoo.org
Gentoo Linux developer
(council, comrel, toolchain, base-system, perl, libreoffice)
https://wiki.gentoo.org/wiki/User:Dilfridge
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-09-05 13:49 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-04 15:48 Proposed CHOST change for the 64bit time_t transition Andreas K. Huettel
2024-09-05 0:32 ` Oskari Pirhonen
2024-09-05 2:06 ` Wookey
2024-09-05 3:10 ` Khem Raj
2024-09-05 13:50 ` Andreas K. Huettel
2024-09-05 15:39 ` Paul Eggert
2024-09-05 16:33 ` Todd Vierling
2024-09-05 16:59 ` Andreas K. Huettel
2024-09-05 17:03 ` Andreas K. Huettel
2024-09-05 18:20 ` Paul Eggert
2024-09-05 21:54 ` Andreas K. Huettel
2024-09-06 16:06 ` Arsen Arsenović
2024-09-07 0:24 ` Bruno Haible
2024-09-07 11:52 ` Arsen Arsenović
2024-09-07 0:16 ` Bruno Haible
2024-09-08 14:08 ` Arsen Arsenović
2024-09-08 23:42 ` Jacob Bachmeyer
2024-09-09 23:08 ` Arsen Arsenović
2024-09-10 10:16 ` Andreas K. Huettel
2024-09-10 14:11 ` Todd Vierling
2024-09-10 16:23 ` Florian Weimer
2024-09-05 16:39 ` Khem Raj
2024-09-05 13:49 ` Andreas K. Huettel [this message]
2024-09-07 12:32 ` Michał Górny
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=4449180.ejJDZkT8p0@noumea \
--to=dilfridge@gentoo.org \
--cc=binutils@sourceware.org \
--cc=config-patches@gnu.org \
--cc=devel@lists.fedoraproject.org \
--cc=dickey@invisible-island.net \
--cc=distributions@lists.linux.dev \
--cc=gcc@gcc.gnu.org \
--cc=glaubitz@debian.org \
--cc=libc-alpha@sourceware.org \
--cc=maskray@google.com \
--cc=toolchain@gentoo.org \
--cc=wookey@wookware.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.