Skip to contentSkip to conversation

Hide textrel QA warning for ffmpeg

PATCH New Jussi Kukkonen 1 participant 3 messages Apr 6, 2016

lore
Share & tools
lore
#0 lore raw

cover Hide textrel QA warning for ffmpeg

ffmpeg disables position independent code on several architectures even when --enable-pic is set: this seems to be a conscious decision based on performance (see also previous discussion*).

First patch is an unrelated packaging fix, second adds INSANE_SKIPs to hide QA warnings about .text relocation.

*) http://lists.openembedded.org/pipermail/openembedded-core/2015-May/105501.html

Thanks,
Jussi

The following changes since commit f4f1d206f4ebafcde18c96c88a1bfc4ab7b0c119:

scripts/lib/bsp/help.py: Typo in help for yocto-bsp create (2016-04-05 14:33:58 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib jku/ffmpeg-textrel
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/ffmpeg-textrel

Jussi Kukkonen (2):
ffmpeg: Make configure options explicit ffmpeg, gstreamer1.0-libav: add textrel INSANE_SKIPs

 meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb       | 27 ++++++++++++++++++++--
 .../gstreamer/gstreamer1.0-libav.inc               |  3 +++
 2 files changed, 28 insertions(+), 2 deletions(-)
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/2 ffmpeg: Make configure options explicit

Currently ffmpeg builds libraries that are packaged but never appear in PACKAGES. Add PACKAGECONFIGs for all libraries, and make sure PACKAGES_DYNAMIC lists all dynamic packages.

Default choice (build all except libavresample) does not change.

---
 meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb +14 -2
index 7dfcf09..0296ada 100644
@@ -29,9 +29,21 @@ DEPENDS = "alsa-lib zlib libogg yasm-native"
 
 inherit autotools pkgconfig
 
-PACKAGECONFIG ??= "avdevice avfilter bzlib gpl lzma theora x264 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xv', '', d)}"
+PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \
+                   bzlib gpl lzma theora x264 \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xv', '', d)}"
+
+# libraries to build in addition to avutil
 PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
 PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
+PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec"
+PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
+PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
+PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
+PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
+PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
+
+# features to support
 PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
 PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac"
 PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
@@ -80,7 +92,7 @@ do_configure() {
     ${S}/configure ${EXTRA_OECONF}
 }
 
-PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util)|swscale).*"
+PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util|resample)|swscale|swresample|postproc).*"
 
 python populate_packages_prepend() {
     av_libdir = d.expand('${libdir}')
Signature · 1 line
2.1.4
#2 lore raw

PATCH 2/2 ffmpeg, gstreamer1.0-libav: add textrel INSANE_SKIPs

ffmpeg disables PIC on some platforms even when --enable-pic is set, apparently for performance reasons. Add INSANE_SKIPS for the relevant packages.

Fixes [YOCTO #9375].

---
 meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb             | 11 +++++++++++
 meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc |  3 +++
 2 files changed, 14 insertions(+)
meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb +11 -0
index 0296ada..1dfbb9b 100644
@@ -94,6 +94,17 @@ do_configure() {
 
 PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util|resample)|swscale|swresample|postproc).*"
 
+# ffmpeg disables PIC on some platforms (e.g. x86-32)
+INSANE_SKIP_${MLPREFIX}libavcodec = "textrel"
+INSANE_SKIP_${MLPREFIX}libavdevice = "textrel"
+INSANE_SKIP_${MLPREFIX}libavfilter = "textrel"
+INSANE_SKIP_${MLPREFIX}libavformat = "textrel"
+INSANE_SKIP_${MLPREFIX}libavutil = "textrel"
+INSANE_SKIP_${MLPREFIX}libavresample = "textrel"
+INSANE_SKIP_${MLPREFIX}libswscale = "textrel"
+INSANE_SKIP_${MLPREFIX}libswresample = "textrel"
+INSANE_SKIP_${MLPREFIX}libpostproc = "textrel"
+
 python populate_packages_prepend() {
     av_libdir = d.expand('${libdir}')
     av_pkgconfig = d.expand('${libdir}/pkgconfig')
meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc +3 -0
index 598a349..363101e 100644
@@ -41,3 +41,6 @@ FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
 # http://errors.yoctoproject.org/Errors/Details/20493/
 ARM_INSTRUCTION_SET_armv4 = "arm"
 ARM_INSTRUCTION_SET_armv5 = "arm"
+
+# ffmpeg/libav disables PIC on some platforms (e.g. x86-32)
+INSANE_SKIP_${PN} = "textrel"
Signature · 1 line
2.1.4