Re: Proposed CHOST change for the 64bit time_t transition
"Andreas K. Huettel" <[email protected]> Thu, 05 Sep 2024 18:59:41 +0200
| Newsgroups | dev.linux.lists.distributions |
|---|---|
| Organization | Gentoo Linux |
| Message-ID | <5066141.31r3eYUQgx@noumea> |
--nextPart4711099.LvFx2qVVIh Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1"; protected-headers="v1" From: "Andreas K. Huettel" <[email protected]> Subject: Re: Proposed CHOST change for the 64bit time_t transition Date: Thu, 05 Sep 2024 18:59:41 +0200 Message-ID: <5066141.31r3eYUQgx@noumea> Organization: Gentoo Linux MIME-Version: 1.0 Hi Todd,=20 > Versioned symbols in glibc should mean that old binaries will still run (= even if they=20 > misbehave when they look at the system time), just like with most previou= s ABI changes=20 > to libc over the years. That is irrelevant here. glibc takes care of its own interface and is not a= problem. The types exported by glibc, as used in *other* libraries' interfaces, are = the problem. > Generally the triplet has never changed except to flag that something is = being=20 > intentionally built for an *older* API/ABI. For instance, autoconf had fo= r some time=20 > a separate triplet to identify a.out/libc5/glibc1 when ELF/libc6/glibc2 h= ad become the=20 > new standard, flagging the deprecated rather than current revision. That's incorrect, else we wouldn't have -gnueabi (on arm) or -gnuabin32 (on= mips). > What matters is whether it's "easy" to pick up a mix of shared objects bu= ilt for different=20 > ABIs which are representing a data type differently. The thing being aske= d here is=20 > fundamentally a search for a technical solution to this risk, but changin= g a triplet=20 > alone doesn't address that risk at all. Maybe not alone, but it minimizes the risk of accidental confusion, and mak= es 100% clear which ABI is present. >=20 > Some technical options to address the actual question include: >=20 Most of this is actually irrelevant to the specific question I'm asking, be= cause... > 1. Total flag day. No versioned symbols, no compatibility. >=20 > 2. Partial flag day. Provide only the bare minimum of compatibility libra= ries, and=20 > intentionally change the versions (sonames) of libc-downstream libraries = so that new=20 > binaries won't pick the old libraries. Applications that dlopen("libfoo.s= o") will break,=20 > but... please don't dlopen() an unversioned .so filename kthx because tha= t already risks=20 > ABI breakage. =2E.. how this is done exactly during the transition is something each dist= ribution can easily organize on their own. Doesn't mean we can't talk about it, but it's= right now and in this context not important. > 3. Keep new libraries partitioned; no more installing directly into /usr/= lib{,64}=20 > depending on your distro, rather everything must now go in a new place, a= nd the dynamic=20 > linker needs to know which paths to use and which to ignore. This would r= equire new e > xecutables being tagged in some form at link time. Yes. I was already joking about 'libt64'. (That was a JOKE, please please p= lease dont take it serious.) =2D-=20 Andreas K. H=FCttel [email protected] Gentoo Linux developer=20 (council, comrel, toolchain, base-system, perl, libreoffice) https://wiki.gentoo.org/wiki/User:Dilfridge --nextPart4711099.LvFx2qVVIh Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE/Rnm0xsZLuTcY+rT3CsWIV7VQSoFAmbZ430ACgkQ3CsWIV7V QSrheA/5AeU+7T6HThVrIYMnw0pQ1ouDcg12X/46kimnwT3I2HAqEqmPPUE4ZZc+ uFf47n+nzOfqs9O4s46a3thL0Rbg1izbtBCaFo/QUptt2ALvkb6Dr6g/TbZD4Vdy mIXNaYWUS6H4GBQVoG6lezc2GVlN5WDZU6/T5CdkvBJXW7uyFkO+fo6+BzKCzgIK Mf9KzbU1zzWOZmmyU602pxOcqZ1BOqxG66xJhHIkZniEiO1A/eWWnDsSdINWkw+m QxLygpUrnLJvYY03yAEMcd2YprFIRmlPodyEgDkh9aKxdmBZdU74NBu7vRuHlJtb OLWe0dlGJr93R1j+0zf7FWxY4c4BdfQbI/mCSrtNki6lu77+2rq1KvBaOxF7Uo4J jegt8PEBdmHFsByBCQgClTXKkemguVnWq4SGvAeWp+doFlWAGv+aTbZBnBVtc8D1 OjQdSjywI9TH4weHa8SZI7v76Baa1CERyIegtLMHwM4ePK4S5jRIaOTU7Ds3I5Ip ABehjm+/lPCIt09n/6jX7JmmN68wTVfy+nyrPO4nyIHKjvcIoTlBzL8WPV5GcVxd HvFYfD+6kyIi+10vD+pojs4dDXQP+ji2jUWPxKjHdTJ9ML6HPnVH0nhhE8TUKbic DriOvpRrnOHDMhuYQgxpV9sufxzyB6tVHXiztbSOxk+txjAIUEM= =cOi7 -----END PGP SIGNATURE----- --nextPart4711099.LvFx2qVVIh--