Re: subarch support
On Tue, Jul 13, 2010 at 03:24:35PM +0200, Loïc Minier wrote:
> On Tue, Jul 13, 2010, Riku Voipio wrote:
> > If dpkg had subarchitecture support, lpia wouldn't have been as big
> > a issue. Ubuntu decided to shortcut and not add support for compatible
> > subarchs in dpkg, and the result was what it always is when people make
> > shortcuts...
> > Subarchs could also be useful if we wanted to build softfp abi compatible
> > armv6/armv7 armel builds of the whole debian repository. Of course we could do
> > builds without subarchs, but then users would be unable distinguish which
> > installed packages are for which cpu, and providing that via debian infra
> > would not be possible.
> It sounds like you have good ideas about the subarch concept; would you
> mind expanding on them a bit?
Basicly close to what RPM does, so it is not my idea :) For example:
On X86 one could have i486, i586, i686, atom, core2 - all being subarchs of
i386 and crossinstallable.
On ARM one could have armelv5, armelv6, armelv7, armelv7neon, .., all subarchs
armel and crossinstallable. Before someone jumps "what about a ARMv6 with NEON but
no VFP", obviously some discretion must be used when selecting subarchs to be
At package install time, package manager knows on what cpu we are running on,
and can thus select which subarchs are supported. For example a ARMv6 machine
could install armel.deb, armelv5.deb, armelv6.deb packages.
>From debian/rules point of view, the package would still building for armel
or i386. If we want, we can add a new DEB_HOST_* variable, but ideally
supported cpu features would be identified ./configure -time from what gcc
accepts with given defaults.
Also, compatible subarchs mean we don't neccessarily need to compile (and mirror)
every single package for every subarch. If a package doesn't actually use any
float/double variables, we could jsut skip building it on vfp subarchs. If the
package isn't performance critical at all, just compile it for the base arch.
This way ubuntu wouldn't have just had to drop armv5 support when building armv6
stuff, or make it impossible for lpia users to install i386 .debs.