Bug#693040: [libav-devel] Strange build failure on several archs in Debian.

Loïc Minier lool at dooz.org
Tue Nov 13 15:05:52 UTC 2012


        Hey,

On Tue, Nov 13, 2012, Reinhard Tartler wrote:
> In the context of bug #693040, Måns had an unrelated question that I
> would like to forward to you, as you have tuned the package flavors
> for arm.

(Cc:ing #693040)

> On Tue, Nov 13, 2012 at 3:23 PM, Måns Rullgård <mans at mansr.com> wrote:
> >  BTW, why are you building armv4+vfp?
> > That makes no sense whatsoever since VFP has never been used with
> > anything prior to armv5, and in practice it is only found with armv6 and
> > later.

First some context: Debian and Ubuntu maintain(ed) multiple ARM ports;
usually one port per ABI.  "arm" is an obsolete OABI port.  Debian and
Ubuntu used mainly an "armel" port for some years which was EABI and
soft-float calling conventions, and both now have an increasingly
popular "armhf" port for EABI with hard-float calling conventions.

Debian or Ubuntu releases or any distro derivative can pick different
toolchain optimization defaults for the armel and armhf ports -- as long
as they honor the calling conventions -- so that Debian squeeze or
wheezy or Ubuntu lucid or precise can have different levels of
optimizations (armv4, armv5, armv6, armv7 etc.).  Some even turn VFP on
in the armel port (softfp).

The Debian/Ubuntu libav packaging ships multiple builds depending on the
distro toolchain defaults.  If the toolchain doesn't enable VFP by
default, then a VFP pass is built; if the toolchain doesn't enable NEON
by default, then a NEON pass is built; etc.


I guess the libav build you're seeing with armv4 + softfp is the VFP
pass for the Debian armel port.  It's using the toolchain defaults
(armv4 + float-abi=soft) for the main build and turns on VFP (-mfpu=vfp
--float-abi=softfp) for the VFP pass.


If there's absolutely NO ARMv4 hardware with VFP ever going to run
Debian armel and if enabling ARMv5 would greatly benefit the builds,
then we could special case this and force -march=armv5 for the vfp pass
if the toolchain defaults to armv4.

However, if there's some ARMv4 hardware with VFP around, the vfp flavor
of libav might get picked up by hwcaps and that will cause SIGILL at
runtime if we enable ARMv5 instructions.

I'm afraid I have no knowledge of what ARMv4 hardware we still care for
in Debian, nor whether there's a hwcap for ARMv5 that we could use here;
happy to follow recommendations!

     Cheers,
-- 
Loïc Minier



More information about the pkg-multimedia-maintainers mailing list