From: Martin Jansa <martin.jansa@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [meta-multimedia][PATCH V2 1/1] xbmc: Update to v13.2
Date: Wed, 27 Aug 2014 14:08:57 +0200 [thread overview]
Message-ID: <20140827120857.GD20524@jama> (raw)
In-Reply-To: <1408903501-5728-1-git-send-email-andrei@gherzan.ro>
[-- Attachment #1: Type: text/plain, Size: 34595 bytes --]
On Sun, Aug 24, 2014 at 08:05:01PM +0200, Andrei Gherzan wrote:
> * refactor dependencies
> * remove already merged patches
> * define PACKAGECONFIG for different configurations
> * have above PACKAGECONFIG values activated by default
> * various cleanups and refactoring
> * use internal ffmpeg - there are some known issues while compiling
> with external libav
> * define --with-arch to be passed to internal ffmpeg configuration
> script
> * add support for qemuarm
> * add libcec, rtmpdump to DEPENDS
> * add libpulsecommon to RDEPENDS
>
> Tested on Fedora 20 host using poky + meta-oe master:
> 1. build only qemux86
> 2. build only qemuarm
> 3. build and runtime test raspberrypi - (patches to come).
Fails in world builds for qemux86-64 with:
| [ 48%] Building CXX object CMakeFiles/projectM.dir/fftsg.cpp.o
| CC libavfilter/vf_histeq.o
| CC libavfilter/vf_histogram.o
| CPP xbmc/utils/SortUtils.o
| CPP xbmc/utils/Splash.o
| depbase=`echo ../common.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
| x86_64-oe-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=/home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/qemux86-64 -DHAVE_CONFIG_H -I. -I../.. -DPKGDATADIR=\"/usr/share/rsxs\" -I./.. -I../../lib -D_LINUX -DXBMC -O2 -O2 -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g -D_DEBUG -Wall -MT ../common.o -MD -MP -MF $depbase.Tpo -c -o ../common.o ../common.cc &&\
| mv -f $depbase.Tpo $depbase.Po
| CC libavfilter/vf_hqdn3d.o
| CPP xbmc/guilib/GUIListGroup.o
| CPP xbmc/utils/Stopwatch.o
| CPP xbmc/utils/StreamDetails.o
| CC libavfilter/vf_hue.o
| In file included from ../common.cc:50:0:
| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/qemux86-64/usr/include/c++/4.9.1/ctime:70:11: error: '::gmtime' has not been declared
| using ::gmtime;
| ^
| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/qemux86-64/usr/include/c++/4.9.1/ctime:71:11: error: '::localtime' has not been declared
| using ::localtime;
| ^
| make[5]: *** [../common.o] Error 1
| make[5]: Leaving directory `/home/jenkins/oe/world/shr-core/tmp-eglibc/work/core2-64-oe-linux/xbmc/13.2-r0/git/xbmc/screensavers/rsxs-0.9/src/euphoria'
| make[4]: *** [all-recursive] Error 1
(this is the same error which was mentioned in PNBLACKLIST before)
and qemuarm:
| CC lib/vgmstream/src/coding/mpeg_decoder.o
| OpenMaxVideo.cpp:59:8: error: 'PFNEGLCREATEIMAGEKHRPROC' does not name a type
| static PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR;
| ^
| OpenMaxVideo.cpp:60:8: error: 'PFNEGLDESTROYIMAGEKHRPROC' does not name a type
| static PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR;
| ^
....
| In file included from OpenMaxVideo.cpp:32:0:
| DVDVideoCodec.h:48:7: error: forward declaration of 'class COpenMaxVideo'
| class COpenMaxVideo;
| ^
> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> Signed-off-by: Tim Orling <TicoTimo@gmail.com>
> Change-Id: I538f4907a9d1dd5df31648bfb60a18cacfed9d69
> ---
> ...d-ios-Add-memory-barriers-to-atomic-Add-S.patch | 118 ++++++++++----------
> ...d-ios-Add-memory-barriers-to-cas-assembly.patch | 82 +++++++-------
> .../0004-Support-for-novfpnoneon-platforms.patch | 104 ++++++++++++++++++
> ...igure-cope-with-ld-is-gold-DISTRO_FEATURE.patch | 43 --------
> .../xbmc/configure.in-Avoid-running-code.patch | 32 ------
> .../recipes-mediacentre/xbmc/xbmc_13.2.bb | 119 +++++++++++++++++++++
> .../recipes-mediacentre/xbmc/xbmc_git.bb | 99 -----------------
> 7 files changed, 318 insertions(+), 279 deletions(-)
> create mode 100644 meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-novfpnoneon-platforms.patch
> delete mode 100644 meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch
> delete mode 100644 meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch
> create mode 100644 meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.2.bb
> delete mode 100644 meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
>
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch
> index e0a4037..d3ae75e 100644
> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch
> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch
> @@ -24,74 +24,68 @@ The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails wi
> make[1]: *** [Atomics.o] Error 1
> make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads'
> make: *** [xbmc/threads/threads.a] Error 2
> ----
> - xbmc/threads/Atomics.cpp | 8 --------
> - 1 files changed, 0 insertions(+), 8 deletions(-)
>
> -diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
> -index 5b09f18..0a98a7e 100644
> ---- a/xbmc/threads/Atomics.cpp
> -+++ b/xbmc/threads/Atomics.cpp
> -@@ -194,14 +194,12 @@ long AtomicIncrement(volatile long* pAddr)
> - {
> +Index: git/xbmc/threads/Atomics.cpp
> +===================================================================
> +--- git.orig/xbmc/threads/Atomics.cpp
> ++++ git/xbmc/threads/Atomics.cpp
> +@@ -168,14 +166,12 @@ long AtomicIncrement(volatile long* pAdd
> + #elif defined(__arm__) && !defined(__ARM_ARCH_5__)
> register long val;
> asm volatile (
> -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> - "1: \n"
> - "ldrex %0, [%1] \n" // (val = *pAddr)
> - "add %0, #1 \n" // (val += 1)
> - "strex r1, %0, [%1] \n"
> - "cmp r1, #0 \n"
> - "bne 1b \n"
> -- "dmb ish \n" // Memory barrier.
> - : "=&r" (val)
> - : "r"(pAddr)
> - : "r1"
> -@@ -273,14 +271,12 @@ long AtomicAdd(volatile long* pAddr, long amount)
> - {
> +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> + "1: \n"
> + "ldrex %0, [%1] \n" // (val = *pAddr)
> + "add %0, #1 \n" // (val += 1)
> + "strex r1, %0, [%1] \n"
> + "cmp r1, #0 \n"
> + "bne 1b \n"
> +- "dmb ish \n" // Memory barrier.
> + : "=&r" (val)
> + : "r"(pAddr)
> + : "r1"
> +@@ -246,14 +242,12 @@ long AtomicAdd(volatile long* pAddr, lon
> + #elif defined(__arm__) && !defined(__ARM_ARCH_5__)
> register long val;
> asm volatile (
> -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> - "1: \n"
> - "ldrex %0, [%1] \n" // (val = *pAddr)
> - "add %0, %2 \n" // (val += amount)
> - "strex r1, %0, [%1] \n"
> - "cmp r1, #0 \n"
> - "bne 1b \n"
> -- "dmb ish \n" // Memory barrier.
> - : "=&r" (val)
> - : "r"(pAddr), "r"(amount)
> - : "r1"
> -@@ -351,14 +347,12 @@ long AtomicDecrement(volatile long* pAddr)
> - {
> +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> + "1: \n"
> + "ldrex %0, [%1] \n" // (val = *pAddr)
> + "add %0, %2 \n" // (val += amount)
> + "strex r1, %0, [%1] \n"
> + "cmp r1, #0 \n"
> + "bne 1b \n"
> +- "dmb ish \n" // Memory barrier.
> + : "=&r" (val)
> + : "r"(pAddr), "r"(amount)
> + : "r1"
> +@@ -324,14 +318,12 @@ long AtomicDecrement(volatile long* pAdd
> + #elif defined(__arm__)
> register long val;
> asm volatile (
> -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> - "1: \n"
> - "ldrex %0, [%1] \n" // (val = *pAddr)
> - "sub %0, #1 \n" // (val -= 1)
> - "strex r1, %0, [%1] \n"
> - "cmp r1, #0 \n"
> - "bne 1b \n"
> -- "dmb ish \n" // Memory barrier.
> - : "=&r" (val)
> - : "r"(pAddr)
> - : "r1"
> -@@ -431,14 +425,12 @@ long AtomicSubtract(volatile long* pAddr, long amount)
> - {
> +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> + "1: \n"
> + "ldrex %0, [%1] \n" // (val = *pAddr)
> + "sub %0, #1 \n" // (val -= 1)
> + "strex r1, %0, [%1] \n"
> + "cmp r1, #0 \n"
> + "bne 1b \n"
> +- "dmb ish \n" // Memory barrier.
> + : "=&r" (val)
> + : "r"(pAddr)
> + : "r1"
> +@@ -403,14 +395,12 @@ long AtomicSubtract(volatile long* pAddr
> + #elif defined(__arm__)
> register long val;
> asm volatile (
> -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> - "1: \n"
> - "ldrex %0, [%1] \n" // (val = *pAddr)
> - "sub %0, %2 \n" // (val -= amount)
> - "strex r1, %0, [%1] \n"
> - "cmp r1, #0 \n"
> - "bne 1b \n"
> -- "dmb ish \n" // Memory barrier.
> - : "=&r" (val)
> - : "r"(pAddr), "r"(amount)
> - : "r1"
> ---
> -1.7.2.5
> -
> +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> + "1: \n"
> + "ldrex %0, [%1] \n" // (val = *pAddr)
> + "sub %0, %2 \n" // (val -= amount)
> + "strex r1, %0, [%1] \n"
> + "cmp r1, #0 \n"
> + "bne 1b \n"
> +- "dmb ish \n" // Memory barrier.
> + : "=&r" (val)
> + : "r"(pAddr), "r"(amount)
> + : "r1"
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
> index 629017b..f93fa9e 100644
> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
> @@ -16,54 +16,50 @@ The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails wi
> make[1]: *** [Atomics.o] Error 1
> make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/threads'
> make: *** [xbmc/threads/threads.a] Error 2
> ----
> - xbmc/threads/Atomics.cpp | 33 ++++++++++++++++-----------------
> - 1 files changed, 16 insertions(+), 17 deletions(-)
> -
> -diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
> -index 0a98a7e..0967eb2 100644
> ---- a/xbmc/threads/Atomics.cpp
> -+++ b/xbmc/threads/Atomics.cpp
> -@@ -49,23 +49,22 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal)
> - #elif defined(__arm__)
> - long cas(volatile long* pAddr, long expectedVal, long swapVal)
> - {
> +Index: git/xbmc/threads/Atomics.cpp
> +===================================================================
> +--- git.orig/xbmc/threads/Atomics.cpp
> ++++ git/xbmc/threads/Atomics.cpp
> +@@ -43,24 +43,24 @@ long cas(volatile long *pAddr, long expe
> + : "cc", "memory"); /* Clobbers */
> + return prev;
> +
> +-#elif defined(__arm__)
> - register long prev;
> - asm volatile (
> -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> -- "1: \n"
> -- "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr,
> -- "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2)
> -- "bne 2f \n" // Bail if the two values are not equal [not as expected]
> -- "strex r1, %3, [%1] \n"
> -- "cmp r1, #0 \n"
> -- "bne 1b \n"
> -- "dmb ish \n" // Memory barrier.
> -- "2: \n"
> -- : "=&r" (prev)
> -- : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
> -- : "r1"
> -- );
> +- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> +- "1: \n"
> +- "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr,
> +- "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2)
> +- "bne 2f \n" // Bail if the two values are not equal [not as expected]
> +- "strex r1, %3, [%1] \n"
> +- "cmp r1, #0 \n"
> +- "bne 1b \n"
> +- "dmb ish \n" // Memory barrier.
> +- "2: \n"
> +- : "=&r" (prev)
> +- : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
> +- : "r1"
> +- );
> - return prev;
> -+ return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal));
> ++//#elif defined(__arm__)
> +// register long prev;
> +// asm volatile (
> -+// "1: \n"
> -+// "ldrex %0, [%1] \n" /* Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, */
> -+// "cmp %0, %2 \n" /* Verify that the current value (%0) == old value (%2) */
> -+// "bne 2f \n" /* Bail if the two values are not equal [not as expected] */
> -+// "strex r1, %3, [%1] \n"
> -+// "cmp r1, #0 \n"
> -+// "bne 1b \n"
> -+// "2: "
> -+// : "=&r" (prev)
> -+// : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
> -+// : "r1"
> -+// );
> ++// "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
> ++// "1: \n"
> ++// "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr,
> ++// "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2)
> ++// "bne 2f \n" // Bail if the two values are not equal [not as expected]
> ++// "strex r1, %3, [%1] \n"
> ++// "cmp r1, #0 \n"
> ++// "bne 1b \n"
> ++// "dmb ish \n" // Memory barrier.
> ++// "2: \n"
> ++// : "=&r" (prev)
> ++// : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
> ++// : "r1"
> ++// );
> +// return prev;
> - }
>
> #elif defined(__mips__)
> ---
> -1.7.2.5
> -
> + // TODO:
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-novfpnoneon-platforms.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-novfpnoneon-platforms.patch
> new file mode 100644
> index 0000000..b971c48
> --- /dev/null
> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-novfpnoneon-platforms.patch
> @@ -0,0 +1,104 @@
> +From 54ce0e5fef8d8f4a374eb9df68c22781f989b52d Mon Sep 17 00:00:00 2001
> +From: Andrei Gherzan <andrei.gherzan@windriver.com>
> +Date: Sun, 17 Aug 2014 14:47:36 +0200
> +Subject: [PATCH] Add support for no-Neon no-VFP platforms
> +
> +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
> +
> +Upstream-Status: Inappropriate [OE specific]
> +
> +---
> + configure.in | 17 +++++++++++++++++
> + m4/xbmc_arch.m4 | 3 +++
> + xbmc/utils/MathUtils.h | 6 ++++--
> + 3 files changed, 24 insertions(+), 2 deletions(-)
> +
> +diff --git a/configure.in b/configure.in
> +index a195d00..6e2d432 100644
> +--- a/configure.in
> ++++ b/configure.in
> +@@ -231,6 +231,12 @@ AC_ARG_ENABLE([neon],
> + [use_neon=$enableval],
> + [use_neon=no])
> +
> ++AC_ARG_ENABLE([vfp],
> ++ [AS_HELP_STRING([--enable-vfp],
> ++ [enable vfp passing to ffmpeg (default is yes)])],
> ++ [use_vfp=$enableval],
> ++ [use_vfp=yes])
> ++
> + AC_ARG_ENABLE([optimizations],
> + [AS_HELP_STRING([--enable-optimizations],
> + [enable optimization (default is yes)])],
> +@@ -750,6 +756,11 @@ case $use_platform in
> + CXXFLAGS="$CXXFLAGS"
> + ffmpeg_target_os=linux
> + ;;
> ++ novfpnoneon)
> ++ use_arch="arm"
> ++ use_neon=no
> ++ use_vfp=no
> ++ ;;
> + esac
> +
> + XBMC_SETUP_ARCH_DEFINES()
> +@@ -2757,6 +2768,11 @@ XB_CONFIG_MODULE([lib/ffmpeg], [
> + else
> + ffmpg_config="$ffmpg_config --disable-neon"
> + fi
> ++ if test "$use_vfp" = "yes"; then
> ++ ffmpg_config="$ffmpg_config --enable-vfp"
> ++ else
> ++ ffmpg_config="$ffmpg_config --disable-vfp"
> ++ fi
> + else
> + ffmpg_config="$ffmpg_config --disable-amd3dnow"
> + fi
> +@@ -2815,6 +2831,7 @@ XB_CONFIG_MODULE([lib/ffmpeg], [
> + `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
> + `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
> + `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
> ++ `if test "$use_vfp" = "yes"; then echo --enable-vfp; else echo --disable-vfp; fi`\
> + --target-os=$ffmpeg_target_os \
> + --disable-muxers \
> + --enable-muxer=spdif \
> +diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
> +index 5bcdd81..f349cb2 100644
> +--- a/m4/xbmc_arch.m4
> ++++ b/m4/xbmc_arch.m4
> +@@ -47,5 +47,8 @@ case $use_platform in
> + raspberry-pi)
> + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
> + ;;
> ++ novfpnoneon)
> ++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_NOVFPNONEON")
> ++ ;;
> + esac
> + ])
> +diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
> +index 96af9f4..69fd058 100644
> +--- a/xbmc/utils/MathUtils.h
> ++++ b/xbmc/utils/MathUtils.h
> +@@ -36,7 +36,8 @@
> + defined(__powerpc__) || \
> + (defined(TARGET_DARWIN_IOS) && defined(__llvm__)) || \
> + (defined(TARGET_ANDROID) && defined(__arm__)) || \
> +- defined(TARGET_RASPBERRY_PI)
> ++ defined(TARGET_RASPBERRY_PI) || \
> ++ defined(TARGET_NOVFPNONEON)
> + #define DISABLE_MATHUTILS_ASM_ROUND_INT
> + #endif
> +
> +@@ -44,7 +45,8 @@
> + defined(__powerpc__) || \
> + (defined(TARGET_DARWIN) && defined(__llvm__)) || \
> + (defined(TARGET_ANDROID) && defined(__arm__)) || \
> +- defined(TARGET_RASPBERRY_PI)
> ++ defined(TARGET_RASPBERRY_PI) || \
> ++ defined(TARGET_NOVFPNONEON)
> + #define DISABLE_MATHUTILS_ASM_TRUNCATE_INT
> + #endif
> +
> +--
> +1.9.3
> +
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch
> deleted file mode 100644
> index 345e20e..0000000
> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -From fd8f73826240aae543a41a2bfeea0056e2fe594d Mon Sep 17 00:00:00 2001
> -From: Koen Kooi <koen@dominion.thruhere.net>
> -Date: Mon, 11 Mar 2013 11:04:29 +0100
> -Subject: [PATCH] configure: cope with ld-is-gold DISTRO_FEATURE
> -
> -Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
> ----
> -
> -Upstream-Stature: backport
> -
> - configure.in | 12 +++++++-----
> - 1 files changed, 7 insertions(+), 5 deletions(-)
> -
> -diff --git a/configure.in b/configure.in
> -index ef94683..c8b459b 100755
> ---- a/configure.in
> -+++ b/configure.in
> -@@ -18,9 +18,14 @@ tolower(){
> - # check for library basenames
> - AC_DEFUN([XB_FIND_SONAME],
> - [
> -+ #set -x
> - if [[ "$host_vendor" != "apple" ]]; then
> - AC_MSG_CHECKING([for lib$2 soname])
> - $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
> -+ if [[ -z $$1_FILENAME ]]; then
> -+ #try gold linker syntax
> -+ $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "$2")
> -+ fi
> - if [[ ! -z $$1_FILENAME ]]; then
> - $1_SONAME=$(objdump -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
> - fi
> -@@ -55,6 +60,7 @@ AC_DEFUN([XB_FIND_SONAME],
> - AC_MSG_RESULT([$$1_SONAME])
> - AC_SUBST($1_SONAME)
> - fi
> -+ #set +x
> - ])
> -
> - # Function to push and pop libs and includes for a command
> ---
> -1.7.7.6
> -
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch
> deleted file mode 100644
> index 5c14059..0000000
> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -From cfd851660a594801a591e80dc820c65cb7bd7836 Mon Sep 17 00:00:00 2001
> -From: Otavio Salvador <otavio@ossystems.com.br>
> -Date: Sat, 6 Oct 2012 06:40:03 -0300
> -Subject: [PATCH] configure.in: Avoid running code or we break cross-compile
> -
> -Upstream-Status: Backport [similar change done for 12.0]
> -
> -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ----
> - configure.in | 6 +-----
> - 1 files changed, 1 insertions(+), 5 deletions(-)
> -
> -diff --git a/configure.in b/configure.in
> -index ef94683..d7efcb0 100755
> ---- a/configure.in
> -+++ b/configure.in
> -@@ -1246,11 +1246,7 @@ if test "$use_external_ffmpeg" = "yes"; then
> - AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
> -
> - # Disable vdpau support if external libavcodec doesn't have it
> -- AC_RUN_IFELSE(
> -- AC_LANG_PROGRAM([[#include <libavcodec/avcodec.h>]],
> -- [[avcodec_register_all();
> -- AVCodec *codec = avcodec_find_decoder_by_name("vc1_vdpau");
> -- return (codec) ? 0 : 1;]]),,
> -+ AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
> - [if test "x$use_vdpau" = "xyes"; then
> - AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
> - else
> ---
> -1.7.2.5
> -
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.2.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.2.bb
> new file mode 100644
> index 0000000..a6e2bee
> --- /dev/null
> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.2.bb
> @@ -0,0 +1,119 @@
> +SUMMARY = "XBMC Media Center"
> +DESCRIPTION = "XBMC is an award-winning free and open source (GPL) software \
> +media player and entertainment hub that can be installed on Linux, OSX, \
> +Windows, iOS, and Android, featuring a 10-foot user interface for use with \
> +televisions and remote controls."
> +HOMEPAGE = "http://xbmc.org/"
> +LICENSE = "GPLv2"
> +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff"
> +
> +DEPENDS = "yajl libxmu fribidi mpeg2dec curl python libmodplug libmicrohttpd \
> + sqlite3 libcdio libpcre boost lzo taglib libtinyxml jasper libass \
> + libmad jpeg libsamplerate0 libvorbis tiff libxslt libgpg-error \
> + libsdl virtual/egl swig-native gperf-native unzip-native zip-native \
> + libcec rtmpdump"
> +
> +DEPENDS_append_arm = " cmake-native"
> +DEPENDS_append_x86 = " nasm-native"
> +
> +CODENAME = "Gotham"
> +SRCREV = "0f3db0516711e05765d297d060563730131c2f92"
> +SRC_URI = "git://github.com/xbmc/xbmc.git;branch=${CODENAME} \
> + file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
> + file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \
> + file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \
> + file://0004-Support-for-novfpnoneon-platforms.patch"
> +
> +inherit autotools-brokensep gettext python-dir
> +
> +S = "${WORKDIR}/git"
> +
> +# Don't activate texturepacker as it needs libsdl-image-native. Due to some issues
> +# with qemu we use the host's libsdl on which libsdl-image-native depends.
> +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'opengl', 'opengl', 'opengles2', d)} \
> + sdl airplay ssh libusb libcec samba mysql avahi xrandr x11 joystick \
> + mid rtmp libmp3lame optical-drive debug"
> +
> +PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,glew"
> +PACKAGECONFIG[opengles2] = "--enable-gles,--enable-gl,"
> +PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl-mixer libsdl-image"
> +PACKAGECONFIG[airplay] = "--enable-airplay,--disable-airplay,libplist"
> +PACKAGECONFIG[ssh] = "--enable-ssh,--disable-ssh,libssh"
> +PACKAGECONFIG[libcec] = "--enable-libcec,--disable-libcec,libcec"
> +PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb"
> +PACKAGECONFIG[samba] = "--enable-samba,--disable-samba,samba"
> +PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5"
> +PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
> +PACKAGECONFIG[xrandr] = "--enable-xrandr,--disable-xrandr,libxrandr"
> +PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,"
> +PACKAGECONFIG[joystick] = "--enable-joystick,--disable-joystick,"
> +PACKAGECONFIG[texturepacker] = "--enable-texturepacker,--disable-texturepacker,libsdl-image-native"
> +PACKAGECONFIG[mid] = "--enable-mid,--disable-mid,"
> +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump"
> +PACKAGECONFIG[optical-drive] = "--enable-optical-drive,--disable-optical-drive,libcdio"
> +PACKAGECONFIG[libmp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
> +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,"
> +
> +# No neon / no VFP on ARMv4 and ARMv5
> +EXTRA_OECONF_append_armv4 = " --with-platform=novfpnoneon "
> +EXTRA_OECONF_append_armv5 = " --with-platform=novfpnoneon "
> +
> +EXTRA_OECONF_append = " \
> + --enable-external-libraries \
> + --with-arch=${TARGET_ARCH} \
> + "
> +
> +FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
> +BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
> +
> +EXTRA_OECONF_append_armv7a = "--with-cpu=cortex-a8"
> +
> +CACHED_CONFIGUREVARS += " \
> + ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
> +"
> +
> +# for python modules
> +export HOST_SYS
> +export BUILD_SYS
> +export STAGING_LIBDIR
> +export STAGING_INCDIR
> +export PYTHON_DIR
> +
> +do_configure() {
> + sh bootstrap
> + oe_runconf
> +}
> +
> +# On ARM don't run GL/X11 tests in xbmc shell wrapper as xbmc uses GLES
> +do_configure_prepend_arm() {
> + sed -i '/FEH.py/ s/$/ --no-test/' ${S}/tools/Linux/xbmc.sh.in
> +}
> +
> +FILES_${PN} += " \
> + ${datadir}/xsessions \
> + ${datadir}/icons"
> +FILES_${PN}-dbg += " \
> + ${libdir}/xbmc/.debug \
> + ${libdir}/xbmc/*/.debug \
> + ${libdir}/xbmc/*/*/.debug \
> + ${libdir}/xbmc/*/*/*/.debug \
> + "
> +
> +# XBMC uses some kind of dlopen() method for libcec so we need to add it manually.
> +# XBMC wrapper calls xdpyinfo.
> +# OpenGL builds need glxinfo, that's in mesa-demos.
> +# service.py and other python tools need a couple of additional modules.
> +RRECOMMENDS_${PN}_append = " \
> + libcec \
> + libcurl \
> + ${@base_contains('DISTRO_FEATURES', 'x11', 'xdpyinfo', '', d)} \
> + ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-demos', '', d)} \
> + python python-stringold python-codecs python-re python-lang python-netclient\
> + "
> +
> +RRECOMMENDS_${PN}_append_libc-glibc = " \
> + glibc-charmap-ibm850 glibc-charmap-utf-8 \
> + glibc-gconv-ibm85 glibc-gconv-utf-32 \
> + "
> +
> +RDEPENDS_${PN} = " libpulsecommon"
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> deleted file mode 100644
> index 4b65152..0000000
> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -SUMMARY = "XBMC Media Center"
> -
> -LICENSE = "GPLv2"
> -LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff"
> -
> -DEPENDS = "libusb1 libcec libplist expat yajl gperf-native libxmu fribidi mpeg2dec ffmpeg samba fontconfig curl python libass libmodplug libmicrohttpd wavpack libmms cmake-native libsdl-image libsdl-mixer virtual/egl mysql5 sqlite3 libmms faad2 libcdio libpcre boost lzo enca avahi libsamplerate0 libxinerama libxrandr libxtst bzip2 virtual/libsdl jasper zip-native zlib libtinyxml libmad"
> -#require recipes/egl/egl.inc
> -
> -
> -SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
> -
> -# multiple issues
> -PNBLACKLIST[xbmc] = "/usr/include/c++/ctime:70:11: error: '::gmtime' has not been declared"
> -
> -PV = "11.0+gitr${SRCPV}"
> -PR = "r14"
> -SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Eden \
> - file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
> - file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \
> - file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \
> - file://0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch \
> - file://configure.in-Avoid-running-code.patch \
> -"
> -
> -inherit autotools gettext python-dir
> -
> -S = "${WORKDIR}/git"
> -
> -# breaks compilation
> -CCACHE = ""
> -
> -CACHED_CONFIGUREVARS += " \
> - ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
> -"
> -
> -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'opengl', 'opengl', 'openglesv2', d)}"
> -PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,glew"
> -PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl,"
> -
> -EXTRA_OECONF = " \
> - --disable-rpath \
> - --enable-libusb \
> - --enable-airplay \
> - --disable-optical-drive \
> - --enable-external-libraries \
> - ${@base_contains('DISTRO_FEATURES', 'opengl', '--enable-gl', '--enable-gles', d)} \
> -"
> -
> -FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
> -BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
> -
> -EXTRA_OECONF_append_armv7a = "--cpu=cortex-a8"
> -
> -# for python modules
> -export HOST_SYS
> -export BUILD_SYS
> -export STAGING_LIBDIR
> -export STAGING_INCDIR
> -export PYTHON_DIR
> -
> -do_configure() {
> - sh bootstrap
> - oe_runconf
> -}
> -
> -PARALLEL_MAKE = ""
> -
> -do_compile_prepend() {
> - for i in $(find . -name "Makefile") ; do
> - sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
> - done
> -
> - for i in $(find . -name "*.mak*" -o -name "Makefile") ; do
> - sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
> - done
> -}
> -
> -INSANE_SKIP_${PN} = "rpaths"
> -
> -# on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly
> -do_install_append_arm() {
> - sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop
> -}
> -
> -FILES_${PN} += "${datadir}/xsessions ${datadir}/icons"
> -FILES_${PN}-dbg += "${libdir}/xbmc/.debug ${libdir}/xbmc/*/.debug ${libdir}/xbmc/*/*/.debug ${libdir}/xbmc/*/*/*/.debug"
> -
> -# xbmc uses some kind of dlopen() method for libcec so we need to add it manually
> -# OpenGL builds need glxinfo, that's in mesa-demos
> -RRECOMMENDS_${PN}_append = " libcec \
> - python \
> - python-lang \
> - python-re \
> - python-netclient \
> - libcurl \
> - xdpyinfo \
> - ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-demos', '', d)} \
> -"
> -RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850"
> --
> 1.9.3
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
next prev parent reply other threads:[~2014-08-27 12:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-24 18:05 [meta-multimedia][PATCH V2 1/1] xbmc: Update to v13.2 Andrei Gherzan
2014-08-27 12:08 ` Martin Jansa [this message]
2014-08-27 12:25 ` Koen Kooi
2014-08-27 14:32 ` Martin Jansa
2014-08-29 23:06 ` Andrei Gherzan
2014-08-30 2:05 ` Tim Orling
2014-08-30 8:37 ` Martin Jansa
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=20140827120857.GD20524@jama \
--to=martin.jansa@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/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.