On 2023-06-06 11:45 +0100, Simon McVittie wrote:

I missed most of this conversation due to being on holiday, so just catching up 
now.

I hesitate to continue the i386-distraction thread because what's
actually important is getting this transition underway on the other
arches, particularly arm32 (hf/el). But at least one aspect seems to
have been missed in the discussion so I thought I should point this
out (and we can't easily move forward without a plan for i386 as dpkg
defaults affect all arches unless we make explicit excetions).

> When considering the future of i386, a factor that we need to bear in
> mind is that there are two major use-cases for i386, with requirements
> that sometimes conflict:
> 
> 1. i386 as a fully-featured architecture that you can run independently
>    on 32-bit x86 systems from roughly the 2000-2010 era
> 
> 2. i386 as a multiarch foreign architecture to run legacy binaries on
>    modern x86_64 systems
>    2a. legacy native Linux i386 binaries
>    2b. legacy Windows i386 binaries via Wine (which requires a somewhat
>        complete i386 Linux library stack)

It is possible to have both these things, by treating this transtion
as a new-ABI (i.e new architecture) transition, not a within-arch ABI 
transition.

i.e we could keep the existing i386 for the gamers and have i386t64
(or whatever we call it) for ongoing use of i386 as a real OS.

This seems to me the 'right' way to deal with this 'the two possible
i386 ABIs are different but both useful in different ways'. 

That way we don't have to choose one or the other and everyone could be happy.

If we do that for other arches too then it greatly simplifies the
transition because we don't have to do a library transition at all. And
bootstrapping an arch is dramatically easier than it used to be thanks
to rebootstrap.

However there are major disadvantages too.

We'd end up quite a few new arches for at least one release, and we'd
spoil the upgrade path for people who would like their existing arch
to just move with the times. We'd have to think up and agree new
triplets and get them into toolchains, and fix architecture exceptions
in packaging.

There is no appetite for this (new triplet) work outside debian, but
if we do it right people will probably agree/follow (because it is
technically correct).

My assessment is that this is just as much work as doing the
transition in-arch, and will probably take longer due to the external
co-ordination needed.

Given all that I don't think the option of 'new arch for everyone' makes much 
sense.

Which gets us back to 'new arch for i386, other arches do in-arch
transition'. So we still get to do the library transition anyway.

But we _could_ also make a new i386t64 arch to enable i386-the-real-OS
a post 2038 future.  Does anyone care enough about that to do the
work?  If so I think we should let them.  This is the only i386
use-case I care about, but in practice I'm only going to care about it
for a few more years which will be served by the current releases so I
don't think I'm going to bother bootstrapping the new version. Happy
to help others though. 

Just thought this was worth bringing up because whilst the existing
'i386' arch has to choose one ABI or another, nothing stops us from
having both variants in the archive if we want them enough.

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

Attachment: signature.asc
Description: PGP signature

Reply via email to