Bug#870676: ffmpeg requires NEON on armhf, which is not part of the ARMv7 ABI

Steve Langasek steve.langasek at canonical.com
Fri Aug 4 01:03:59 UTC 2017


Package: ffmpeg
Version: 7:3.3.3-1
Severity: important
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu artful ubuntu-patch autopkgtest

Dear maintainers,

The latest release of ffmpeg enables NEON support by default when building
on armhf; however, NEON support is not a standard part of the ARMv7 ABI, and
Debian supports running armhf on chips that do not implement NEON.

Using NEON based on runtime detection of support for it is fine, but the
existing ffmpeg implementation doesn't appear to do this, instead using NEON
based on build-time configuration with no fallback.

This issue was noticed in Ubuntu only because the autopkgtests for ffmpeg
and x264 triggered an unaligned access in the NEON code, which is *also* not
a portable assumption on armhf; however, if the NEON code had not had any
unaligned access, the fact that NEON was used would have gone unnoticed on
Ubuntu infrastructure.

  http://autopkgtest.ubuntu.com/packages/f/ffmpeg/artful/armhf
  http://autopkgtest.ubuntu.com/packages/x/x264/artful/armhf

(And if upstream does fix their code to support runtime detection of NEON
support, then there will be a different bug for us to worry about fixing!)

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
diff -Nru ffmpeg-3.3.3/debian/rules ffmpeg-3.3.3/debian/rules
--- ffmpeg-3.3.3/debian/rules	2017-08-01 07:33:41.000000000 -0700
+++ ffmpeg-3.3.3/debian/rules	2017-08-03 17:43:44.000000000 -0700
@@ -127,6 +127,14 @@
 		--enable-libiec61883
 endif
 
+# upstream does not implement runtime detection of NEON support at runtime;
+# therefore NEON must be disabled at build time.  (This also works around
+# the fact that the NEON implementation does unaligned access, which is not
+# a portable assumption for armhf.)
+ifeq ($(DEB_HOST_ARCH),armhf)
+	CONFIG += --disable-neon
+endif
+
 # Some build-dependencies are not installable on some architectures.
 ifeq (,$(filter $(DEB_HOST_ARCH),powerpcspe))
 	CONFIG_extra += --enable-netcdf


More information about the pkg-multimedia-maintainers mailing list