Bug#738760: libav: Add proper raspberry pi CPU detection

Janne Grunau janne-libav at jannau.net
Fri Sep 26 11:12:42 UTC 2014


On 2014-09-05 00:17:15 +0200, Florian Will wrote:
> Hi,
> 
> Please note that I'm not the bug submitter.
> 
> > Can you provide a patch, please?
> 
> As of now, I can't. :/ I don't have the hardware to reproduce this or to
> verify the correctness of a patch.
> 
> So I can only give a few hints about the background of this bug report.
> Anyone not planning to come up with a patch can probably skip it. :-)
> 
> > I don't know much about raspbian, and don't understand what you
> > actually want to be changed here.
> 
> I've used raspbian some time ago. The issue with some packages is that
> they enable ARM NEON instructions (and other illegal instructions?)
> during compilation, either generally for the armhf architecture, or
> based on what the build machine supports. The Raspberry Pi is armhf, but
> does not support NEON. Raspbian buildds *do* probably support NEON though.
> 
> The Raspbian toolchain is configured to disable NEON. However, libav
> apparently still ends up with NEON instructions in the binary.

That is not a problem. If NEON is disabled in the toolchain there will 
be still NEON specific asm included which will be only used if a CPU 
with NEON is detected at runtime. I'm quite certain that this works as 
intended.

> Surprisingly, NEON is supposed to get enabled for libav only if the
> "debian/confflag" script detects that the toolchain supports NEON.
> 
> Still, for the libav package in Raspbian, this line was changed:
>     #RPI -- don't build neon flavour
>     #FLAVORS += neon

That's now how I read the debian/confflags in 
http://security.debian.org/debian-security/pool/updates/main/liba/libav/libav_0.8.16-1.debian.tar.gz

It checks if the toolchain supports NEON and other things by default. If 
it does *not* support NEON, the debian package will build a additional 
NEON flavor of the package. Building that flavor is quite pointless if a 
single CPU without NEON is targeted. So disabling that in raspbian makes 
sense.

Building a NEON flavor makes sense for general distribution like Debian 
that will run on different CPUs with different supported instruction set 
extensions.

That is the only relevant change I see in debian/ for the libav src 
package.

So unless the original patch reported specifies what he wants exactly 
I'd say everything is fine and working as expected.

The only minor issue is that if the toolchain uses NEON by default and 
one uses '-mfpu=' to disable it, the check will be wrong. I don;t think 
any of the debian toolchains are configured this way though.

Janne



More information about the pkg-multimedia-maintainers mailing list