Import libav from meta-oe
cover Import libav from meta-oe
Bring in the libav (ffmpeg replacement) recipe from meta-oe. Motivations behind this:
* Enhances the performance/capability of gst-ffmpeg (which we already have in OE-Core) by switching it to use an up-to-date version of libav instead of the old internal copy of ffmpeg
* Allows dropping the gst-ffmpeg bbappend from meta-oe which does the above
* Provides a standard libav recipe to prevent ffmpeg/libav needing to be added by other layers
A number of improvements to the recipes themselves have been made in the process, see individual changes for details. Note that these recipes are protected by LICENSE_FLAGS = "commercial".
The following changes since commit 291ab168fac15eae0e4c9234e16f394b0e1547a0:
subversion: Add patch to use neon 0.30 (2013-08-07 07:43:31 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/libav
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/libav
Paul Eggleton (6):
yasm: add from meta-oe and tweak
x264: add from meta-oe, update and tweak
libav: add from meta-oe, update and tweak
gst-ffmpeg: merge in bbappend from meta-oe
gst-ffmpeg: enable using yasm during build
gst-ffmpeg: set SUMMARY instead of DESCRIPTION
meta/recipes-devtools/yasm/yasm_1.2.0.bb | 13 +++ .../gstreamer/gst-ffmpeg_0.10.13.bb | 12 +- .../0001-configure-enable-pic-for-AArch64.patch | 23 ++++ meta/recipes-multimedia/libav/libav.inc | 129 +++++++++++++++++++++ meta/recipes-multimedia/libav/libav_0.8.8.bb | 18 +++ meta/recipes-multimedia/libav/libav_git.bb | 16 +++ .../don-t-default-to-cortex-a9-with-neon.patch | 20 ++++ meta/recipes-multimedia/x264/x264_git.bb | 52 +++++++++ 8 files changed, 277 insertions(+), 6 deletions(-) create mode 100644 meta/recipes-devtools/yasm/yasm_1.2.0.bb create mode 100644 meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch create mode 100644 meta/recipes-multimedia/libav/libav.inc create mode 100644 meta/recipes-multimedia/libav/libav_0.8.8.bb create mode 100644 meta/recipes-multimedia/libav/libav_git.bb create mode 100644 meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch create mode 100644 meta/recipes-multimedia/x264/x264_git.bb
Signature · 1 line
1.8.1.2
PATCH 1/6 yasm: add from meta-oe and tweak
This is needed for x264. Enabling it for libav also improves performance on x86 and x86-64. Two minor changes from the meta-oe recipe:
* Set SUMMARY instead of DESCRIPTION
* Drop setting of S - it was setting it to the same as the default
--- meta/recipes-devtools/yasm/yasm_1.2.0.bb | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 meta/recipes-devtools/yasm/yasm_1.2.0.bb
meta/recipes-devtools/yasm/yasm_1.2.0.bb new file +13 -0
@@ -0,0 +1,13 @@ +SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes" +LICENSE = "BSD" +HOMEPAGE = "http://www.tortall.net/projects/yasm/" + +LIC_FILES_CHKSUM = "file://COPYING;md5=26c9f3d11f88911950f9ff62189d3d4f" + +SRC_URI = "http://www.tortall.net/projects/yasm/releases/yasm-${PV}.tar.gz" +SRC_URI[md5sum] = "4cfc0686cf5350dd1305c4d905eb55a6" +SRC_URI[sha256sum] = "768ffab457b90a20a6d895c39749adb547c1b7cb5c108e84b151a838a23ccf31" + +inherit autotools gettext + +BBCLASSEXTEND = "native"
Signature · 1 line
1.8.1.2
PATCH 2/6 x264: add from meta-oe, update and tweak
In reply to Paul EggletonThis is required by the default configuration of libav being brought over from meta-oe. Changes from the meta-oe recipe:
* Update to the latest revision from the stable branch (upstream does not seem to provide stable releases.)
* Add LICENSE_FLAGS = "commercial"
* Enable PIC to fix text relocation warnings and disable warning for i586 (since PIC can't be used there)
* Make SUMMARY value slightly shorter
* Indent SRC_URI properly
--- .../don-t-default-to-cortex-a9-with-neon.patch | 20 +++++++++ meta/recipes-multimedia/x264/x264_git.bb | 52 ++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch create mode 100644 meta/recipes-multimedia/x264/x264_git.bb
meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch new file +20 -0
@@ -0,0 +1,20 @@ +-march flag is not in CFLAGS so this will always default to -mcpu=cortex-a8 +-mfpu=neon. + +Upstream-Status: Pending +Signed-off-by: Andrei Gherzan <[email protected]> + +Index: git/configure +=================================================================== +--- git.orig/configure 2013-02-10 16:26:40.666343682 +0200 ++++ git/configure 2013-02-10 16:27:49.198341677 +0200 +@@ -703,9 +703,6 @@ + fi + + if [ $asm = auto -a $ARCH = ARM ] ; then +- # set flags so neon is built by default +- echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon" +- + if cc_check '' '' '__asm__("rev ip, ip");' ; then define HAVE_ARMV6 + cc_check '' '' '__asm__("movt r0, #0");' && define HAVE_ARMV6T2 + cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEON
meta/recipes-multimedia/x264/x264_git.bb new file +52 -0
52 lines not on this page · raw message
Signature · 1 line
1.8.1.2
PATCH 3/6 libav: add from meta-oe, update and tweak
In reply to Paul EggletonChanges from the meta-oe recipe:
* Update stable recipe to 0.8.8
* Update git recipe to the tag for 9.8 (for now)
* Switch over to a tarball for the release version recipe
* Add LICENSE_FLAGS = "commercial"
* Set SUMMARY instead of DESCRIPTION
* Add yasm-native to DEPENDS since there is now a recipe for it
* Remove libvpx from DEPENDS and add a PACKAGECONFIG option for it, disabled by default since it wasn't actually being enabled
* Add a PACKAGECONFIG option for x11 to enable/disable x11grab, and add the proper DEPENDS if so (still defaults to enabled)
* Add a number of other PACKAGECONFIG options, replacing some old comments as well as offering the ability to disable x264.
* Hide text relocation warning when building for i586 (PIC can't be enabled for 32-bit x86).
* Drop PR
Notes for the git recipe:
* This hasn't been able to be built recently in meta-oe since there was a circular dependency between libav and libpostproc. libpostproc is part of libav 0.8.x but was split out in 9+ and is not needed at all anymore by libav itself, so this dependency was removed.
* Additionally the recipe was filtering out the option to enable libpostproc but this option wasn't being added by the inc file and thus the filter wasn't doing anything, so I dropped this as well.
--- .../0001-configure-enable-pic-for-AArch64.patch | 23 ++++ meta/recipes-multimedia/libav/libav.inc | 129 +++++++++++++++++++++ meta/recipes-multimedia/libav/libav_0.8.8.bb | 18 +++ meta/recipes-multimedia/libav/libav_git.bb | 16 +++ 4 files changed, 186 insertions(+) create mode 100644 meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch create mode 100644 meta/recipes-multimedia/libav/libav.inc create mode 100644 meta/recipes-multimedia/libav/libav_0.8.8.bb create mode 100644 meta/recipes-multimedia/libav/libav_git.bb
meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch new file +23 -0
@@ -0,0 +1,23 @@ +From 58db99e98f615d79ea90cac8f4bcf11c94e3e7c7 Mon Sep 17 00:00:00 2001 +From: Marcin Juszkiewicz <[email protected]> +Date: Thu, 10 Jan 2013 12:42:19 +0100 +Subject: [PATCH] configure: enable pic for AArch64 + +Signed-off-by: Marcin Juszkiewicz <[email protected]> + +Upstream-Status: Backport +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- git.orig/configure ++++ git/configure +@@ -2393,7 +2393,7 @@ check_host_cflags -std=c99 + check_host_cflags -Wall + + case "$arch" in +- alpha|ia64|mips|parisc|ppc|sparc) ++ alpha|ia64|mips|parisc|ppc|sparc|aarch64) + spic=$shared + ;; + x86)
meta/recipes-multimedia/libav/libav.inc new file +129 -0
129 lines not on this page · raw message
meta/recipes-multimedia/libav/libav_0.8.8.bb new file +18 -0
@@ -0,0 +1,18 @@ +require libav.inc + +SRC_URI = "http://libav.org/releases/libav-0.8.8.tar.xz \ + file://0001-configure-enable-pic-for-AArch64.patch" + +SRC_URI[md5sum] = "34b8f1279a04466386ed67731197efe3" +SRC_URI[sha256sum] = "e95cf618eb6239177a62c46f15e840c37e02e8308baf94912fc5910ff4aacbf2" + +LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +EXTRA_OECONF += " \ + --enable-postproc \ +" + +
meta/recipes-multimedia/libav/libav_git.bb new file +16 -0
@@ -0,0 +1,16 @@ +require libav.inc + +LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +PV = "9.8+git${SRCPV}" + +DEFAULT_PREFERENCE = "-1" + +SRCREV = "9aaca159bd220582c698f13d081a455f398c9975" +SRC_URI = "git://git.libav.org/libav.git" + +S = "${WORKDIR}/git" +
Signature · 1 line
1.8.1.2
PATCH 4/6 gst-ffmpeg: merge in bbappend from meta-oe
In reply to Paul Eggleton* Enable external libav for better optimisations/additional bugfixes (internal ffmpeg copy is quite old), default enabled but can be disabled using PACKAGECONFIG
* Add a PACKAGECONFIG for orc, disabled by default in line with other gstreamer recipes
* Bump PR to r7 so the bbappend can be dropped without PR going backwards
--- meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +5 -1
@@ -27,7 +27,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4" SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62" -PR = "r4" +PR = "r7" GSTREAMER_DEBUG ?= "--disable-debug"
@@ -45,6 +45,10 @@ FFMPEG_EXTRA_CONFIGURE_COMMON = \ EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}" +PACKAGECONFIG ??= "external-libav" +PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" + # yasm not found, use --disable-yasm for a crippled build for libav EXTRA_OECONF_append_x86-64 = " --disable-yasm " EXTRA_OECONF_append_x86 = " --disable-yasm "
Signature · 1 line
1.8.1.2
PATCH 5/6 gst-ffmpeg: enable using yasm during build
In reply to Paul EggletonA recipe is now available for this, and it should enhance performance on x86/x86-64.
--- meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +1 -5
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" LICENSE_FLAGS = "commercial" HOMEPAGE = "http://www.gstreamer.net/" -DEPENDS = "gstreamer gst-plugins-base zlib bzip2" +DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native" inherit autotools pkgconfig
@@ -49,10 +49,6 @@ PACKAGECONFIG ??= "external-libav" PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav" PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" -# yasm not found, use --disable-yasm for a crippled build for libav -EXTRA_OECONF_append_x86-64 = " --disable-yasm " -EXTRA_OECONF_append_x86 = " --disable-yasm " - FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la"
Signature · 1 line
1.8.1.2
PATCH 6/6 gst-ffmpeg: set SUMMARY instead of DESCRIPTION
In reply to Paul EggletonWe only have a short description, so set SUMMARY and DESCRIPTION will be defaulted from it.
--- meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +1 -1
@@ -1,4 +1,4 @@ -DESCRIPTION = "FFmpeg-based GStreamer plug-in" +SUMMARY = "FFmpeg-based GStreamer plug-in" SECTION = "multimedia" LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
Signature · 1 line
1.8.1.2
Re: [PATCH 2/6] x264: add from meta-oe, update and tweak
In reply to Paul EggletonQuoted 10 lines · Paul Eggleton
This is required by the default configuration of libav being brought over from meta-oe. Changes from the meta-oe recipe:
* Update to the latest revision from the stable branch (upstream does not seem to provide stable releases.)
* AddLICENSE_FLAGS= "commercial"
* Enable PIC to fix text relocation warnings and disable warning for i586 (since PIC can't be used there)
* Make SUMMARY value slightly shorter
* IndentSRC_URIproperly
I think it was indented correctly and styleguide doesn't define how many spaces should be used for multiline variables.
Quoted 65 lines
Signed-off-by Paul Eggleton <[email protected]>--- .../don-t-default-to-cortex-a9-with-neon.patch | 20 +++++++++ meta/recipes-multimedia/x264/x264_git.bb | 52 ++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch create mode 100644 meta/recipes-multimedia/x264/x264_git.bbmeta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch new file +20
-0@@ -0,0 +1,20 @@ +-march flag is not in CFLAGS so this will always default to -mcpu=cortex-a8 +-mfpu=neon. + +Upstream-Status: Pending +Signed-off-by: Andrei Gherzan <[email protected]> + +Index: git/configure +=================================================================== +--- git.orig/configure 2013-02-10 16:26:40.666343682 +0200 ++++ git/configure 2013-02-10 16:27:49.198341677 +0200 +@@ -703,9 +703,6 @@ + fi + + if [ $asm = auto -a $ARCH = ARM ] ; then +- # set flags so neon is built by default +- echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon" +- + if cc_check '' '' '__asm__("rev ip, ip");' ; then define HAVE_ARMV6 + cc_check '' '' '__asm__("movt r0, #0");' && define HAVE_ARMV6T2 + cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEONmeta/recipes-multimedia/x264/x264_git.bb new file +24
-0@@ -0,0 +1,52 @@ +SUMMARY = "A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format" +HOMEPAGE = "http://www.videolan.org/developers/x264.html" + +LICENSE = "GPLv2" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "yasm-native" + +SRC_URI = "git://git.videolan.org/x264.git \ + file://don-t-default-to-cortex-a9-with-neon.patch \ + " + +SRCREV = "585324fee380109acd9986388f857f413a60b896" + +PV = "r2265+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit lib_package pkgconfig + +X264_DISABLE_ASM = "" +X264_DISABLE_ASM_armv4 = "--disable-asm" +X264_DISABLE_ASM_armv5 = "--disable-asm"
meta/recipes-multimedia/x264/x264_git.bb line 34
Quoted 10 lines
meta/recipes-multimedia/x264/x264_git.bb new file +10
-0+ +EXTRA_OECONF = '--prefix=${prefix} \ + --host=${HOST_SYS} \ + --cross-prefix=${TARGET_PREFIX} \ + --sysroot=${STAGING_DIR_TARGET} \ + --enable-shared \ + --enable-static \ + --disable-lavf \ + --disable-swscale \ + --enable-pic \
Don't mix tabs and spaces.
Quoted 25 lines
meta/recipes-multimedia/x264/x264_git.bb new file +18
-0+ ${X264_DISABLE_ASM} \ + ' + +do_configure() { + ./configure ${EXTRA_OECONF} +} + +# Get rid of -e +EXTRA_OEMAKE = "" +AS = "${TARGET_PREFIX}gcc" + +do_install() { + oe_runmake install DESTDIR=${D} +} + +# PIC can't be enabled for 32-bit x86 +INSANE_SKIP_${PN}_append_i586 = " textrel" +Signature · 6 lines
1.8.1.2 _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Re: [PATCH 2/6] x264: add from meta-oe, update and tweak
Hi Martin,
Quoted 11 lines · On Friday 09 August 2013 11:20:44 Martin Jansa wrote:
Quoted 10 lines · Paul Eggleton
This is required by the default configuration of libav being brought over from meta-oe. Changes from the meta-oe recipe:
* Update to the latest revision from the stable branch (upstream does
not seem to provide stable releases.)
* Add
LICENSE_FLAGS= "commercial"
* Enable PIC to fix text relocation warnings and disable warning for
Quoted 7 lines
Quoted 4 lines
i586 (since PIC can't be used there)
* Make SUMMARY value slightly shorter
* IndentSRC_URIproperlyI think it was indented correctly and styleguide doesn't define how many spaces should be used for multiline variables.
It doesn't, but the convention that is observed in OE-Core is to indent multiple-line statements to the level of the start of the value in the first line (as indeed the value of EXTRA_OECONF is indented in this recipe). FWIW, I have altered the commit message to refer to consistency with other recipes rather than correctness.
Quoted 11 lines
meta/recipes-multimedia/x264/x264_git.bb line 34
Quoted 9 lines
meta/recipes-multimedia/x264/x264_git.bb new file +9
-0+EXTRA_OECONF = '--prefix=${prefix} \ + --host=${HOST_SYS} \ + --cross-prefix=${TARGET_PREFIX} \ + --sysroot=${STAGING_DIR_TARGET} \ + --enable-shared \ + --enable-static \ + --disable-lavf \ + --disable-swscale \ + --enable-pic \Don't mix tabs and spaces.
Oops, that's what I get for using vi without configuring it. Fixed on the branch.
Cheers,
Paul
Signature · 2 lines
Paul Eggleton Intel Open Source Technology Centre
Re: [PATCH 1/6] yasm: add from meta-oe and tweak
In reply to Paul EggletonQuoted 1 line · Paul Eggleton
+SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"
Does this mean we can drop nasm to avoid having numerous assemblers in oe-core? You can't feed them after midnight you know.
Ross
Re: [PATCH 1/6] yasm: add from meta-oe and tweak
Quoted 5 lines · Ross
Quoted 1 line · Paul Eggleton
+SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"
Does this mean we can drop nasm to avoid having numerous assemblers in oe-core? You can't feed them after midnight you know.
I don't know what the comparison between the two is, but I suspect they are not interchangeable.
Cheers,
Paul
Signature · 2 lines
Paul Eggleton Intel Open Source Technology Centre
Re: [PATCH 3/6] libav: add from meta-oe, update and tweak
In reply to Paul EggletonQuoted 7 lines · Paul Eggleton
Changes from the meta-oe recipe:
* Update stable recipe to 0.8.8
* Update git recipe to the tag for 9.8 (for now)
* Switch over to a tarball for the release version recipe
* AddLICENSE_FLAGS= "commercial"
* Set SUMMARY instead of DESCRIPTION
* Add yasm-native to DEPENDS since there is now a recipe for it
Quoted 8 lines
* Remove libvpx from DEPENDS and add a PACKAGECONFIG option for it, disabled by default since it wasn't actually being enabled
* Add a PACKAGECONFIG option for x11 to enable/disable x11grab, and add the proper DEPENDS if so (still defaults to enabled)
* Add a number of other PACKAGECONFIG options, replacing some old comments as well as offering the ability to disable x264.
* Hide text relocation warning when building for i586 (PIC can't be enabled for 32-bit x86).
only for i586? I've just seen them in armv4t build:
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libswscale/usr/lib/libswscale.so.2.1.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libpostproc/usr/lib/libpostproc.so.52.0.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavutil/usr/lib/libavutil.so.51.22.1' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavformat/usr/lib/libavformat.so.53.21.1' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavfilter/usr/lib/libavfilter.so.2.15.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavdevice/usr/lib/libavdevice.so.53.2.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavcodec/usr/lib/libavcodec.so.53.35.0' has relocations in .text
But I know it's not new issue, the same problem was in meta-oe version.
Quoted 240 lines
* Drop PR
Notes for the git recipe:
* This hasn't been able to be built recently in meta-oe since there was a circular dependency between libav and libpostproc. libpostproc is part of libav 0.8.x but was split out in 9+ and is not needed at all anymore by libav itself, so this dependency was removed.
* Additionally the recipe was filtering out the option to enable libpostproc but this option wasn't being added by the inc file and thus the filter wasn't doing anything, so I dropped this as well.Signed-off-by Paul Eggleton <[email protected]>--- .../0001-configure-enable-pic-for-AArch64.patch | 23 ++++ meta/recipes-multimedia/libav/libav.inc | 129 +++++++++++++++++++++ meta/recipes-multimedia/libav/libav_0.8.8.bb | 18 +++ meta/recipes-multimedia/libav/libav_git.bb | 16 +++ 4 files changed, 186 insertions(+) create mode 100644 meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch create mode 100644 meta/recipes-multimedia/libav/libav.inc create mode 100644 meta/recipes-multimedia/libav/libav_0.8.8.bb create mode 100644 meta/recipes-multimedia/libav/libav_git.bbmeta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch new file +23
-0@@ -0,0 +1,23 @@ +From 58db99e98f615d79ea90cac8f4bcf11c94e3e7c7 Mon Sep 17 00:00:00 2001 +From: Marcin Juszkiewicz <[email protected]> +Date: Thu, 10 Jan 2013 12:42:19 +0100 +Subject: [PATCH] configure: enable pic for AArch64 + +Signed-off-by: Marcin Juszkiewicz <[email protected]> + +Upstream-Status: Backport +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- git.orig/configure ++++ git/configure +@@ -2393,7 +2393,7 @@ check_host_cflags -std=c99 + check_host_cflags -Wall + + case "$arch" in +- alpha|ia64|mips|parisc|ppc|sparc) ++ alpha|ia64|mips|parisc|ppc|sparc|aarch64) + spic=$shared + ;; + x86)meta/recipes-multimedia/libav/libav.inc new file +129
-0@@ -0,0 +1,129 @@ +SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video." +HOMEPAGE = "http://libav.org/" +SECTION = "libs" +LICENSE = "GPLv2+" +LICENSE_FLAGS = "commercial" + +# Provides ffmpeg compat, see http://libav.org/about.html +PROVIDES = "ffmpeg" + +ARM_INSTRUCTION_SET = "arm" + +DEPENDS = "virtual/libsdl zlib libogg libvorbis libtheora yasm-native" + +INC_PR = "r8" + +inherit autotools pkgconfig + +B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" + +FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math" +BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" + +EXTRA_FFCONF_armv7a = "--cpu=cortex-a8" +EXTRA_FFCONF ?= "" + +PACKAGECONFIG ??= "bzip2 x264 x11" +PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" +PACKAGECONFIG[bzip2] = "--enable-bzlib,--disable-bzlib,bzip2" +PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinger,schroedinger" +PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" +PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" +PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" +PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame" +PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac" +PACKAGECONFIG[x11] = "--enable-x11grab,--disable-x11grab,virtual/libx11 libxfixes libxext xproto" + +EXTRA_OECONF = " \ + --enable-shared \ + --enable-pthreads \ + --enable-gpl \ + --enable-avfilter \ + \ + --cross-prefix=${TARGET_PREFIX} \ + --prefix=${prefix} \ + \ + --enable-avserver \ + --enable-avplay \ + --enable-libtheora \ + --enable-libvorbis \ + --arch=${TARGET_ARCH} \ + --target-os="linux" \ + --enable-cross-compile \ + --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ + --extra-ldflags="${TARGET_LDFLAGS}" \ + --sysroot="${STAGING_DIR_TARGET}" \ + --enable-hardcoded-tables \ + ${EXTRA_FFCONF} \ +" + +do_configure() { + # We don't have TARGET_PREFIX-pkgconfig + sed -i '/pkg_config_default="${cross_prefix}${pkg_config_default}"/d' ${S}/configure + mkdir -p ${B} + cd ${B} + ${S}/configure ${EXTRA_OECONF} + sed -i -e s:Os:O4:g ${B}/config.h +} + +do_install_append() { + install -m 0644 ${S}/libavfilter/*.h ${D}${includedir}/libavfilter/ +} + +FFMPEG_LIBS = "libavcodec libavdevice libavformat \ + libavutil libpostproc libswscale libavfilter" + +PACKAGES += "${PN}-vhook-dbg ${PN}-vhook ffmpeg-x264-presets" + +RSUGGESTS_${PN} = "mplayer" +FILES_${PN} = "${bindir}" +FILES_${PN}-dev = "${includedir}/${PN}" + +FILES_${PN}-vhook = "${libdir}/vhook" +FILES_${PN}-vhook-dbg += "${libdir}/vhook/.debug" + +FILES_ffmpeg-x264-presets = "${datadir}/*.avpreset" + +LEAD_SONAME = "libavcodec.so" + +FILES_${PN}-dev = "${includedir}" + +python populate_packages_prepend() { + av_libdir = d.expand('${libdir}') + av_pkgconfig = d.expand('${libdir}/pkgconfig') + + # Runtime package + do_split_packages(d, av_libdir, '^lib(.*)\.so\..*', + output_pattern='lib%s', + description='libav %s library', + extra_depends='', + prepend=True, + allow_links=True) + + # Development packages (-dev, -staticdev) + do_split_packages(d, av_libdir, '^lib(.*)\.so$', + output_pattern='lib%s-dev', + description='libav %s development package', + extra_depends='${PN}-dev', + prepend=True, + allow_links=True) + do_split_packages(d, av_pkgconfig, '^lib(.*)\.pc$', + output_pattern='lib%s-dev', + description='libav %s development package', + extra_depends='${PN}-dev', + prepend=True) + do_split_packages(d, av_libdir, '^lib(.*)\.a$', + output_pattern='lib%s-staticdev', + description='libav %s development package - static library', + extra_depends='${PN}-dev', + prepend=True, + allow_links=True) + + if d.getVar('TARGET_ARCH', True) == 'i586': + # libav can't be build with -fPIC for 32-bit x86 + pkgs = d.getVar('PACKAGES', True).split() + for pkg in pkgs: + d.appendVar('INSANE_SKIP_%s' % pkg, ' textrel') +} + +PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util)|postproc).*"meta/recipes-multimedia/libav/libav_0.8.8.bb new file +18
-0@@ -0,0 +1,18 @@ +require libav.inc + +SRC_URI = "http://libav.org/releases/libav-0.8.8.tar.xz \ + file://0001-configure-enable-pic-for-AArch64.patch" + +SRC_URI[md5sum] = "34b8f1279a04466386ed67731197efe3" +SRC_URI[sha256sum] = "e95cf618eb6239177a62c46f15e840c37e02e8308baf94912fc5910ff4aacbf2" + +LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +EXTRA_OECONF += " \ + --enable-postproc \ +" + +meta/recipes-multimedia/libav/libav_git.bb new file +16
-0@@ -0,0 +1,16 @@ +require libav.inc + +LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +PV = "9.8+git${SRCPV}" + +DEFAULT_PREFERENCE = "-1" + +SRCREV = "9aaca159bd220582c698f13d081a455f398c9975" +SRC_URI = "git://git.libav.org/libav.git" + +S = "${WORKDIR}/git" +Signature · 6 lines
1.8.1.2 _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Re: [PATCH 3/6] libav: add from meta-oe, update and tweak
Quoted 17 lines · Martin Jansa
Quoted 7 lines · Paul Eggleton
Changes from the meta-oe recipe:
* Update stable recipe to 0.8.8
* Update git recipe to the tag for 9.8 (for now)
* Switch over to a tarball for the release version recipe
* AddLICENSE_FLAGS= "commercial"
* Set SUMMARY instead of DESCRIPTION
* Add yasm-native to DEPENDS since there is now a recipe for itQuoted 8 lines
* Remove libvpx from DEPENDS and add a PACKAGECONFIG option for it, disabled by default since it wasn't actually being enabled
* Add a PACKAGECONFIG option for x11 to enable/disable x11grab, and add the proper DEPENDS if so (still defaults to enabled)
* Add a number of other PACKAGECONFIG options, replacing some old comments as well as offering the ability to disable x264.
* Hide text relocation warning when building for i586 (PIC can't be enabled for 32-bit x86).
Quoted 2 lines
only for i586? I've just seen them in armv4t build:
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libswscale/usr/lib/libswscale.so.2.1.0' has relocations in .text
That looks like you just need to add arm to...
Quoted 4 lines
Quoted 4 lines
+ case "$arch" in
+- alpha|ia64|mips|parisc|ppc|sparc) ++ alpha|ia64|mips|parisc|ppc|sparc|aarch64) + spic=$shared
... this slightly odd list here. I'm not quite sure why aargh64 is in there but arm isn't.
p.
Re: [PATCH 3/6] libav: add from meta-oe, update and tweak
Quoted 1 line · Phil Blundell
I'm not quite sure why aargh64 is in there but arm isn't.
Is that an official architecture alias, or a typo? ;)
Ross