public inbox for distributions@lists.linux.dev
 help / color / mirror / Atom feed
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 --]

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox