All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 3/6] libav: add from meta-oe, update and tweak
Date: Wed, 14 Aug 2013 14:22:16 +0200	[thread overview]
Message-ID: <20130814122216.GX17945@jama> (raw)
In-Reply-To: <16c7ff9c4e9ff11888d8d6b594f5ede88a78feeb.1376038140.git.paul.eggleton@linux.intel.com>

[-- Attachment #1: Type: text/plain, Size: 11905 bytes --]

On Fri, Aug 09, 2013 at 09:59:32AM +0100, Paul Eggleton wrote:
> 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
> * 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).

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.

> * 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 <paul.eggleton@linux.intel.com>
> ---
>  .../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
> 
> diff --git a/meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch b/meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch
> new file mode 100644
> index 0000000..d9b22b9
> --- /dev/null
> +++ b/meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch
> @@ -0,0 +1,23 @@
> +From 58db99e98f615d79ea90cac8f4bcf11c94e3e7c7 Mon Sep 17 00:00:00 2001
> +From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> +Date: Thu, 10 Jan 2013 12:42:19 +0100
> +Subject: [PATCH] configure: enable pic for AArch64
> +
> +Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> +
> +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)
> diff --git a/meta/recipes-multimedia/libav/libav.inc b/meta/recipes-multimedia/libav/libav.inc
> new file mode 100644
> index 0000000..eae190d
> --- /dev/null
> +++ b/meta/recipes-multimedia/libav/libav.inc
> @@ -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).*"
> diff --git a/meta/recipes-multimedia/libav/libav_0.8.8.bb b/meta/recipes-multimedia/libav/libav_0.8.8.bb
> new file mode 100644
> index 0000000..9cb4cf2
> --- /dev/null
> +++ b/meta/recipes-multimedia/libav/libav_0.8.8.bb
> @@ -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 \
> +"
> +
> +
> diff --git a/meta/recipes-multimedia/libav/libav_git.bb b/meta/recipes-multimedia/libav/libav_git.bb
> new file mode 100644
> index 0000000..951baa9
> --- /dev/null
> +++ b/meta/recipes-multimedia/libav/libav_git.bb
> @@ -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"
> +
> -- 
> 1.8.1.2
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

  reply	other threads:[~2013-08-14 12:21 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-09  8:59 [PATCH 0/6] Import libav from meta-oe Paul Eggleton
2013-08-09  8:59 ` [PATCH 1/6] yasm: add from meta-oe and tweak Paul Eggleton
2013-08-09 16:32   ` Burton, Ross
2013-08-09 16:37     ` Paul Eggleton
2013-08-09  8:59 ` [PATCH 2/6] x264: add from meta-oe, update " Paul Eggleton
2013-08-09  9:20   ` Martin Jansa
2013-08-09  9:58     ` Paul Eggleton
2013-08-09  8:59 ` [PATCH 3/6] libav: " Paul Eggleton
2013-08-14 12:22   ` Martin Jansa [this message]
2013-08-14 13:07     ` Phil Blundell
2013-08-14 13:57       ` Burton, Ross
2013-08-09  8:59 ` [PATCH 4/6] gst-ffmpeg: merge in bbappend from meta-oe Paul Eggleton
2013-08-09  8:59 ` [PATCH 5/6] gst-ffmpeg: enable using yasm during build Paul Eggleton
2013-08-09  8:59 ` [PATCH 6/6] gst-ffmpeg: set SUMMARY instead of DESCRIPTION Paul Eggleton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130814122216.GX17945@jama \
    --to=martin.jansa@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=paul.eggleton@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.