Okay, Iâm going to repeat some things here and try to give some history. Iâm also not perfect, so I may remember things slightly incorrectly or not understand new things perfectly. Saying that, people seem pretty confused in the thread and the Change Proposal could probably have used a bit more detail to help everyone.
First off, to see what your machines support you can run: /lib64/ld-linux-x86-64.so.2 --help | grep -E "v[0-9]"
Some history of micro/sub arches in Fedora:
For the initial Fedora Core 1 we had i686 as well as i386 for a couple of packages, Basically the three: glibc; kernel; openssl. The idea was that getting a performance boost on those packages was worth a lot, and if you had an older CPU than youâd still get the i386 version and everything would work. Everybody installed everything via. packages (through anaconda/kickstart the first time which was fine being i386 only and then yum), so this was âmostlyâ easy to solve as the package installer looked at which package to install it would pick the i686 or i386 arch depending on your capabilities.
This continued upto Fedora 10 but by Fedora 12 almost all of the packages were i686, but obviously we had 5 years of speedups for the couple of packages.
It wasnât perfect though, even then, as some people would randomly provide i686/i586 packages outside of the distro. and the package manager had to deal with a bunch of edge cases for things like âthereâs a newer package available but itâs only i586 and i386, but we have the i686 one installed right nowâ ⊠where different people could realistically expect/want different results. Itâs fair to say that when we moved to x86_64 and had a single arch again, a lot of people sighed with relief (as they tried to not think about multilib ;).
However we donât live in the same world as Fedora Core 1. Package installers are not the only way people use Fedora. We have live installers, containers, VMs, Silverblue/ostree/etc. ⊠so to support this feature well a lot more things will need changing/testing than the three outlined in the change proposal.
Thereâs the problem that users write/use software that isnât part of the distribution and we havenât had microarches for ~15 years, so there could be a bunch of random software that thinks the entire world is noarch/x86_64 and maybe aarch64.
Then, as Neal has said, x86_64 can already actually mean v1 or v3 within the Fedora ecosystem. Then thereâs the fact that x86_64_v3 is ~13 years old right now and from what I understand v4 is basically unusable as a real std. ⊠so this will be a huge cost to developers and users, but will be a small-ish speedup for another couple of releases before everything will be x86_64_v3 arch anyway.
As an alternate proposal we could look at supporting FatELF binaries, and use that for a small number of packages that would benefit the most. This does require a non-trivial amount of work, but that work will be very limited in the scope of which things need to change (and the users of Fedora donât have any weird issues).
tl;dr
- This has been tried before, and it wasnât as fun as the CP is making it out to be.
- Itâs going to be a lot less fun now.
- We can just move to using v3 flags for x86_64 arch fairly soon anyway.
- Thereâs no v4 or v5 etc. to make all the work useful in the future.
- There is other software we donât distribute that will have to change due to us adding a new x86_64 arch.
- The 2x storage alone is a lot for the entire distribution now (what I think the CP wants to do), and it seems unlikely the cost would be worth it for only doing a few packages.
- x86_64_v3 has to be the most ugly arch name Iâve seen (and others agree as people keep using x86_64-v3 in this thread, but that canât be used in rpm).