Squashed 'import-layers/meta-openembedded/' content from commit 247b126

Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0
git-subtree-dir: import-layers/meta-openembedded
git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
new file mode 100644
index 0000000..629017b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
@@ -0,0 +1,69 @@
+From aaae1616a09d359b52e929f944ca0ceb4bb7f831 Mon Sep 17 00:00:00 2001
+From: Paul Menzel <paulepanter@users.sourceforge.net>
+Date: Sun, 14 Aug 2011 21:55:09 +0200
+Subject: [PATCH 3/4] Revert "fixed:[ios] Add memory barriers to cas() assembly to ensure alignment of memory accesses."
+
+This reverts commit 92bab651e2253d172879995b50985645b77fecd2.
+
+The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error.
+
+        CPP     Atomics.o
+        make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/windows'
+        CPP     GUIMediaWindow.o
+        /tmp/ccrsywuV.s: Assembler messages:
+        /tmp/ccrsywuV.s:40: Error: garbage following instruction -- `dmb ish'
+        /tmp/ccrsywuV.s:48: Error: garbage following instruction -- `dmb ish'
+        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)
+ {
+-  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"
+-                );
+-  return prev;
++  return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal));
++//  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"
++//                );
++//  return prev;
+ }
+ 
+ #elif defined(__mips__)
+-- 
+1.7.2.5
+