[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Packaging for multiarch i386 sse2/non-sse2



On Sun, Aug 18, 2013 at 10:39:12PM +0200, Fabien Givors (Debian) wrote:
> As this can be expected, this library rely on sse2 instruction set.
> However, most of the features (except for software video rendering) are
> available (sometimes in a degraded mode, eg. the sound part might be
> slower) for non-sse2-capable hardware.
> 
> Should I preferably:
> 
> A - build a "lib-without-sse2" package on all but amd64 architectures
> and a "lib-with-sse2" package on i386 and amd64 architectures ?

That would make it useless on most i386 machines.  sse2 support doesn't
imply being amd64 capable, but the subset of systems that have sse2 but
can't run amd64 is limited to just some early Pentium 4 models.

Quite a few people run i386 on amd64 machines, true, but I'd say the
primary purpose of i386 is to support legacy stuff.  Thus, shipping a
library that requires a newer processor is pointless -- precisely same
as if you required hardware math in an armel package.  It will run on
some machines but not all (heck, I'm typing these words on an armhf
capable device running armel maemo, with a good subset of packages
recompiled for thumb2).

> B - build a "lib" package on all architectures which will be build with
> sse2 options on amd64, with non-sse2 on all except i386 and amd64 and
> with both versions on i386 (I've heard that multiarch permits to ship
> both versions so that ld chose the right one at runtime)

Multiarch by itself permits only shipping per-architecture but not per-model
versions.  There are proposals to do so, but they're in exploratory stages
yet.  If such a support for sub-architectures gets added to dpkg, it would
be a solution for you.

> C - <your solution here>

C - ship both versions on i386 and switch between them on runtime

D - just build non-sse2 on i386

-- 
ᛊᚨᚾᛁᛏᚣ᛫ᛁᛊ᛫ᚠᛟᚱ᛫ᚦᛖ᛫ᚹᛖᚨᚲ


Reply to: