diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2011-12-17 20:57:13 +0100 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2011-12-17 22:57:29 +0100 |
commit | 12caa1228a915b70b2f87acd38c644fb4cc011c8 (patch) | |
tree | 1e156d5ff12b6c0289af4def305bef5753209ce5 /meta-oe/recipes-multimedia/xbmc | |
parent | 3e9f18f7b0ad135dfcbbfce20a701df23f37c597 (diff) | |
download | meta-openembedded-12caa1228a915b70b2f87acd38c644fb4cc011c8.tar.gz |
xbmc: add git version based on HEAD of eden branch
Runtime tested on beagleboard/angstrom
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'meta-oe/recipes-multimedia/xbmc')
4 files changed, 261 insertions, 0 deletions
diff --git a/meta-oe/recipes-multimedia/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch b/meta-oe/recipes-multimedia/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch new file mode 100644 index 000000000..04712e26b --- /dev/null +++ b/meta-oe/recipes-multimedia/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 46d747f48a5e099644c37cc5e345960d714ff5d5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Sat, 17 Dec 2011 11:38:15 +0100 | ||
4 | Subject: [PATCH 1/4] configure: don't run python distutils to find STAGING_INCDIR/python, it is not safe for per-machine sysroots | ||
5 | |||
6 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
7 | --- | ||
8 | m4/ax_python_devel.m4 | 7 +------ | ||
9 | 1 files changed, 1 insertions(+), 6 deletions(-) | ||
10 | |||
11 | diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 | ||
12 | index adbd207..dee70f6 100644 | ||
13 | --- a/m4/ax_python_devel.m4 | ||
14 | +++ b/m4/ax_python_devel.m4 | ||
15 | @@ -151,12 +151,7 @@ $ac_distutils_result]) | ||
16 | # | ||
17 | AC_MSG_CHECKING([for Python include path]) | ||
18 | if test -z "$PYTHON_CPPFLAGS"; then | ||
19 | - python_path=`$PYTHON -c "import distutils.sysconfig; \ | ||
20 | - print (distutils.sysconfig.get_python_inc ());"` | ||
21 | - if test -n "${python_path}"; then | ||
22 | - python_path="-I$python_path" | ||
23 | - fi | ||
24 | - PYTHON_CPPFLAGS=$python_path | ||
25 | + PYTHON_CPPFLAGS="-I${STAGING_INCDIR}/${PYTHON_DIR}" | ||
26 | fi | ||
27 | AC_MSG_RESULT([$PYTHON_CPPFLAGS]) | ||
28 | AC_SUBST([PYTHON_CPPFLAGS]) | ||
29 | -- | ||
30 | 1.7.2.5 | ||
31 | |||
diff --git a/meta-oe/recipes-multimedia/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch b/meta-oe/recipes-multimedia/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch new file mode 100644 index 000000000..8fd89b8a6 --- /dev/null +++ b/meta-oe/recipes-multimedia/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch | |||
@@ -0,0 +1,97 @@ | |||
1 | From 84494a538fe3b2aad64ef82673a3a2b576acb7f4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Paul Menzel <paulepanter@users.sourceforge.net> | ||
3 | Date: Sun, 14 Aug 2011 21:53:47 +0200 | ||
4 | Subject: [PATCH 2/4] Revert "fixed:[ios] Add memory barriers to atomic Add/Subtract and Increment/Decrement functions to ensure synchronized accesses." | ||
5 | |||
6 | This reverts commit 9a10c48710df79118e39e9b3bb0a15bf1fe694d1. | ||
7 | |||
8 | The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error. | ||
9 | |||
10 | make -C xbmc/threads | ||
11 | make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads' | ||
12 | CPP Atomics.o | ||
13 | /tmp/ccIzTm3L.s: Assembler messages: | ||
14 | /tmp/ccIzTm3L.s:40: Error: garbage following instruction -- `dmb ish' | ||
15 | /tmp/ccIzTm3L.s:48: Error: garbage following instruction -- `dmb ish' | ||
16 | /tmp/ccIzTm3L.s:76: Error: garbage following instruction -- `dmb ish' | ||
17 | /tmp/ccIzTm3L.s:83: Error: garbage following instruction -- `dmb ish' | ||
18 | /tmp/ccIzTm3L.s:111: Error: garbage following instruction -- `dmb ish' | ||
19 | /tmp/ccIzTm3L.s:118: Error: garbage following instruction -- `dmb ish' | ||
20 | /tmp/ccIzTm3L.s:145: Error: garbage following instruction -- `dmb ish' | ||
21 | /tmp/ccIzTm3L.s:152: Error: garbage following instruction -- `dmb ish' | ||
22 | /tmp/ccIzTm3L.s:180: Error: garbage following instruction -- `dmb ish' | ||
23 | /tmp/ccIzTm3L.s:187: Error: garbage following instruction -- `dmb ish' | ||
24 | make[1]: *** [Atomics.o] Error 1 | ||
25 | make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads' | ||
26 | make: *** [xbmc/threads/threads.a] Error 2 | ||
27 | --- | ||
28 | xbmc/threads/Atomics.cpp | 8 -------- | ||
29 | 1 files changed, 0 insertions(+), 8 deletions(-) | ||
30 | |||
31 | diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp | ||
32 | index 5b09f18..0a98a7e 100644 | ||
33 | --- a/xbmc/threads/Atomics.cpp | ||
34 | +++ b/xbmc/threads/Atomics.cpp | ||
35 | @@ -194,14 +194,12 @@ long AtomicIncrement(volatile long* pAddr) | ||
36 | { | ||
37 | register long val; | ||
38 | asm volatile ( | ||
39 | - "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after | ||
40 | "1: \n" | ||
41 | "ldrex %0, [%1] \n" // (val = *pAddr) | ||
42 | "add %0, #1 \n" // (val += 1) | ||
43 | "strex r1, %0, [%1] \n" | ||
44 | "cmp r1, #0 \n" | ||
45 | "bne 1b \n" | ||
46 | - "dmb ish \n" // Memory barrier. | ||
47 | : "=&r" (val) | ||
48 | : "r"(pAddr) | ||
49 | : "r1" | ||
50 | @@ -273,14 +271,12 @@ long AtomicAdd(volatile long* pAddr, long amount) | ||
51 | { | ||
52 | register long val; | ||
53 | asm volatile ( | ||
54 | - "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after | ||
55 | "1: \n" | ||
56 | "ldrex %0, [%1] \n" // (val = *pAddr) | ||
57 | "add %0, %2 \n" // (val += amount) | ||
58 | "strex r1, %0, [%1] \n" | ||
59 | "cmp r1, #0 \n" | ||
60 | "bne 1b \n" | ||
61 | - "dmb ish \n" // Memory barrier. | ||
62 | : "=&r" (val) | ||
63 | : "r"(pAddr), "r"(amount) | ||
64 | : "r1" | ||
65 | @@ -351,14 +347,12 @@ long AtomicDecrement(volatile long* pAddr) | ||
66 | { | ||
67 | register long val; | ||
68 | asm volatile ( | ||
69 | - "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after | ||
70 | "1: \n" | ||
71 | "ldrex %0, [%1] \n" // (val = *pAddr) | ||
72 | "sub %0, #1 \n" // (val -= 1) | ||
73 | "strex r1, %0, [%1] \n" | ||
74 | "cmp r1, #0 \n" | ||
75 | "bne 1b \n" | ||
76 | - "dmb ish \n" // Memory barrier. | ||
77 | : "=&r" (val) | ||
78 | : "r"(pAddr) | ||
79 | : "r1" | ||
80 | @@ -431,14 +425,12 @@ long AtomicSubtract(volatile long* pAddr, long amount) | ||
81 | { | ||
82 | register long val; | ||
83 | asm volatile ( | ||
84 | - "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after | ||
85 | "1: \n" | ||
86 | "ldrex %0, [%1] \n" // (val = *pAddr) | ||
87 | "sub %0, %2 \n" // (val -= amount) | ||
88 | "strex r1, %0, [%1] \n" | ||
89 | "cmp r1, #0 \n" | ||
90 | "bne 1b \n" | ||
91 | - "dmb ish \n" // Memory barrier. | ||
92 | : "=&r" (val) | ||
93 | : "r"(pAddr), "r"(amount) | ||
94 | : "r1" | ||
95 | -- | ||
96 | 1.7.2.5 | ||
97 | |||
diff --git a/meta-oe/recipes-multimedia/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch b/meta-oe/recipes-multimedia/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch new file mode 100644 index 000000000..894fa7aa5 --- /dev/null +++ b/meta-oe/recipes-multimedia/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch | |||
@@ -0,0 +1,69 @@ | |||
1 | From 7ed1e824d92b014aeb3c8855f807af022cd21475 Mon Sep 17 00:00:00 2001 | ||
2 | From: Paul Menzel <paulepanter@users.sourceforge.net> | ||
3 | Date: Sun, 14 Aug 2011 21:55:09 +0200 | ||
4 | Subject: [PATCH 3/4] Revert "fixed:[ios] Add memory barriers to cas() assembly to ensure alignment of memory accesses." | ||
5 | |||
6 | This reverts commit 92bab651e2253d172879995b50985645b77fecd2. | ||
7 | |||
8 | The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error. | ||
9 | |||
10 | CPP Atomics.o | ||
11 | make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/windows' | ||
12 | CPP GUIMediaWindow.o | ||
13 | /tmp/ccrsywuV.s: Assembler messages: | ||
14 | /tmp/ccrsywuV.s:40: Error: garbage following instruction -- `dmb ish' | ||
15 | /tmp/ccrsywuV.s:48: Error: garbage following instruction -- `dmb ish' | ||
16 | make[1]: *** [Atomics.o] Error 1 | ||
17 | make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/threads' | ||
18 | make: *** [xbmc/threads/threads.a] Error 2 | ||
19 | --- | ||
20 | xbmc/threads/Atomics.cpp | 33 ++++++++++++++++----------------- | ||
21 | 1 files changed, 16 insertions(+), 17 deletions(-) | ||
22 | |||
23 | diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp | ||
24 | index 0a98a7e..0967eb2 100644 | ||
25 | --- a/xbmc/threads/Atomics.cpp | ||
26 | +++ b/xbmc/threads/Atomics.cpp | ||
27 | @@ -49,23 +49,22 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal) | ||
28 | #elif defined(__arm__) | ||
29 | long cas(volatile long* pAddr, long expectedVal, long swapVal) | ||
30 | { | ||
31 | - register long prev; | ||
32 | - asm volatile ( | ||
33 | - "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after | ||
34 | - "1: \n" | ||
35 | - "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, | ||
36 | - "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2) | ||
37 | - "bne 2f \n" // Bail if the two values are not equal [not as expected] | ||
38 | - "strex r1, %3, [%1] \n" | ||
39 | - "cmp r1, #0 \n" | ||
40 | - "bne 1b \n" | ||
41 | - "dmb ish \n" // Memory barrier. | ||
42 | - "2: \n" | ||
43 | - : "=&r" (prev) | ||
44 | - : "r"(pAddr), "r"(expectedVal),"r"(swapVal) | ||
45 | - : "r1" | ||
46 | - ); | ||
47 | - return prev; | ||
48 | + return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal)); | ||
49 | +// register long prev; | ||
50 | +// asm volatile ( | ||
51 | +// "1: \n" | ||
52 | +// "ldrex %0, [%1] \n" /* Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, */ | ||
53 | +// "cmp %0, %2 \n" /* Verify that the current value (%0) == old value (%2) */ | ||
54 | +// "bne 2f \n" /* Bail if the two values are not equal [not as expected] */ | ||
55 | +// "strex r1, %3, [%1] \n" | ||
56 | +// "cmp r1, #0 \n" | ||
57 | +// "bne 1b \n" | ||
58 | +// "2: " | ||
59 | +// : "=&r" (prev) | ||
60 | +// : "r"(pAddr), "r"(expectedVal),"r"(swapVal) | ||
61 | +// : "r1" | ||
62 | +// ); | ||
63 | +// return prev; | ||
64 | } | ||
65 | |||
66 | #elif defined(__mips__) | ||
67 | -- | ||
68 | 1.7.2.5 | ||
69 | |||
diff --git a/meta-oe/recipes-multimedia/xbmc/xbmc_git.bb b/meta-oe/recipes-multimedia/xbmc/xbmc_git.bb new file mode 100644 index 000000000..af7bbab37 --- /dev/null +++ b/meta-oe/recipes-multimedia/xbmc/xbmc_git.bb | |||
@@ -0,0 +1,64 @@ | |||
1 | DESCRIPTION = "XBMC Media Center" | ||
2 | |||
3 | LICENSE = "GPLv2" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff" | ||
5 | |||
6 | DEPENDS = "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" | ||
7 | #require recipes/egl/egl.inc | ||
8 | |||
9 | SRCREV = "379d13c8e9a0e64f1f36b3fb216e5caedb0df73e" | ||
10 | |||
11 | PV = "11.0" | ||
12 | PR = "r0" | ||
13 | PR_append = "+gitr${SRCPV}" | ||
14 | SRC_URI = "git://github.com/xbmc/xbmc.git;branch=eden;protocol=git \ | ||
15 | file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \ | ||
16 | file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \ | ||
17 | file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \ | ||
18 | " | ||
19 | |||
20 | inherit autotools gettext python-dir | ||
21 | |||
22 | S = "${WORKDIR}/git" | ||
23 | |||
24 | EXTRA_OECONF = " \ | ||
25 | --disable-rpath \ | ||
26 | --enable-gles \ | ||
27 | --disable-optical-drive \ | ||
28 | --enable-external-libraries \ | ||
29 | " | ||
30 | |||
31 | # for python modules | ||
32 | export HOST_SYS | ||
33 | export BUILD_SYS | ||
34 | export STAGING_LIBDIR | ||
35 | export STAGING_INCDIR | ||
36 | export PYTHON_DIR | ||
37 | |||
38 | do_configure() { | ||
39 | sh bootstrap | ||
40 | oe_runconf | ||
41 | } | ||
42 | |||
43 | PARALLEL_MAKE = "" | ||
44 | |||
45 | do_compile_prepend() { | ||
46 | |||
47 | sed -i -e 's:-rpath \$(libdir)::g' lib/libid3tag/libid3tag/Makefile | ||
48 | |||
49 | for i in $(find . -name "Makefile") ; do | ||
50 | sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${STAGING_LIBDIR}:g' $i | ||
51 | done | ||
52 | |||
53 | for i in $(find . -name "*.mak*") ; do | ||
54 | sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir)::g' $i | ||
55 | done | ||
56 | sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir)::g' ${S}/Makefile | ||
57 | } | ||
58 | |||
59 | FILES_${PN} += "${datadir}/xsessions ${datadir}/icons" | ||
60 | FILES_${PN}-dbg += "${libdir}/xbmc/.debug ${libdir}/xbmc/*/.debug ${libdir}/xbmc/*/*/.debug ${libdir}/xbmc/*/*/*/.debug" | ||
61 | |||
62 | RRECOMMENDS_${PN}_libc-glibc += "glibc-charmap-ibm850 glibc-gconv-ibm850" | ||
63 | |||
64 | |||