On Tue, 7 May 2024 at 01:20, Guillem Jover <guil...@debian.org> wrote:

> On Sat, 2024-05-04 at 01:07:59 +0200, Matthias Klose wrote:
> > On 03.05.24 11:27, Julian Andres Klode wrote:
> > > On Wed, Sep 06, 2023 at 11:27:02AM +0200, Guillem Jover wrote:
> > > > Some of the above problems could perhaps be avoided if we introduced
> > > > a concept of architecture aliases/ISAs (similar to what rpm has),
> which
> > > > would side-step the pool sharing issue, the binary package renaming,
> > > > etc. One big issue with this is that it requires for dpkg to have an
> > > > exhaustive table of all such aliases, and if there's ever a new alias
> > > > added, old dpkg versions need to be updated or they will not
> understand
> > > > what they match with. So this does not seem ideal either. So I guess
> this
> > > > is a variation over your proposal, but perhaps this could still be
> used
> > > > in specific contexts, say only at build-time (but not for dependency
> > > > relationships), for repo management (say binary-arm64v9/Packages.xz),
> > > > or binary package names where the field would specify the actual name
> > > > for the filename, say:
> > > >
> > > >    Architecture: arm64
> > > >    ArchitectureIsa: arm64v9
> > > >
> > > > or maybe better:
> > > >
> > > >    Architecture: arm64
> > > >    ArchitectureIsa: v9
> > > >
> > > > resulting in dpkg-deb generating:
> > > >
> > > >    binpkg_1.0-1_arm64v9.deb
> > > >
> > > > but targeting arm64. I also think I prefer naming this explicitly as
> ISA
> > > > variants, if you will, than just architecture variants as that gives
> > > > way too much room (which perhaps we want, but then that has other
> > > > implications over compatibility), and for the field perhaps just Isa
> is
> > > > better, to avoid the implicit repetition of
> > > > ArchitectureInstructionSetArchitecture :), but that makes it less
> easy
> > > > to associate both as related.
> > >
> > > I have thought more about this and I'm not particularly fond of the
> > > ArchitectureIsa name. While *this specific use case* is a variant of
> > > the architecture instruction set; you could just as well build other
> > > variants such as "compiled with -O3", "compiled with frame pointers",
> > > "compiled with -O0", or other shenanigans (I haven't thought about
> > > others outside compiler flags)
>
> These looks really out of scope for the initially proposed purpose,
> as they have nothing to do with the architecture, they are rebuilds
> with different compilation flags. Creating a new pseudo-architecture
> for those things seems just wrong and out of place. I understand that
> might seem convenient, but it does not make sense to me, conceptually
> and from a design PoV.
>

I think I agree although I would probably phrase it a bit the other way
around. The facility we are talking about adding here technically speaking
/could/ apply to any compiler settings that do not affect ABI, but /should/
it?

The motivation behind different -march flags seems sound. There are some
other things we could technically do that just seem like a bad idea (like a
variant built without hardening flags). I don't think having a variant with
-O3 makes sense -- I think it is the role of the distro to evaluate which
of -O2 and -O3 is better and not just punt that sort of thing to the user.
So I think a tighter target scope is best and if the naming of fields can
point in that direction it's probably a good thing? As much as
ArchitectureISA doesn't seem particularly aesthetic to me.

OTOH, something like this might be useful for experimentation, to be able
to spin up a variant as part of finding out if -O3 is better. We have other
ways to do this for Ubuntu but they are annoying and clunky.

Cheers,
mwh

Reply via email to