[OE-core] [PATCH 1/1] cogl: make cogl be able to build on ARM arch

2013-06-14 Thread rongqing.li
From: Roy.Li rongqing...@windriver.com

1. Fix asm() register constraints in cogl when building for ARM.
2. Fix cogl to handle Thumb builds.

Signed-off-by: Roy.Li rongqing...@windriver.com
---
 meta/recipes-graphics/cogl/cogl-1.0.inc|4 +++
 .../cogl/files/cogl-fixed-thumb.patch  |   30 
 .../cogl/files/cogl_fixed_mul-constraint.patch |   22 ++
 3 files changed, 56 insertions(+)
 create mode 100644 meta/recipes-graphics/cogl/files/cogl-fixed-thumb.patch
 create mode 100644 
meta/recipes-graphics/cogl/files/cogl_fixed_mul-constraint.patch

diff --git a/meta/recipes-graphics/cogl/cogl-1.0.inc 
b/meta/recipes-graphics/cogl/cogl-1.0.inc
index a44e6c4..c9c6165 100644
--- a/meta/recipes-graphics/cogl/cogl-1.0.inc
+++ b/meta/recipes-graphics/cogl/cogl-1.0.inc
@@ -2,6 +2,10 @@ DESCRIPTION = a modern 3D graphics API with associated 
utility APIs
 HOMEPAGE = http://wiki.clutter-project.org/wiki/Cogl;
 LICENSE = LGPLv2.1+
 
+SRC_URI += file://cogl_fixed_mul-constraint.patch \
+file://cogl-fixed-thumb.patch \
+
+
 inherit clutter
 
 DEPENDS = pango glib-2.0 gdk-pixbuf
diff --git a/meta/recipes-graphics/cogl/files/cogl-fixed-thumb.patch 
b/meta/recipes-graphics/cogl/files/cogl-fixed-thumb.patch
new file mode 100644
index 000..77b0db2
--- /dev/null
+++ b/meta/recipes-graphics/cogl/files/cogl-fixed-thumb.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Inappropriate [cogl-fixed.c disappears in cogl 2.0]
+
+There are two asm() statements in cogl-fixed.c that can't be assembled
+in Thumb mode.  Add a patch to switch to the generic code in Thumb mode.
+
+Signed-off-by: Donn Seeley donn.see...@windriver.com
+---
+ cogl/cogl-fixed.c |4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/cogl/cogl-fixed.c
 b/cogl/cogl-fixed.c
+@@ -626,7 +626,7 @@ cogl_fixed_sqrt (CoglFixed x)
+   /*
+* Find the highest bit set
+*/
+-#if defined (__arm__)  !defined(__ARM_ARCH_4T__)
++#if defined (__arm__)  !defined(__ARM_ARCH_4T__)  !defined(__thumb__)
+   /* This actually requires at least arm v5, but gcc does not seem
+* to set the architecture defines correctly, and it is I think
+* very unlikely that anyone will want to use clutter on anything
+@@ -804,7 +804,7 @@ CoglFixed
+ cogl_fixed_mul (CoglFixed a,
+ CoglFixed b)
+ {
+-#ifdef __arm__
++#if defined(__arm__)  !defined(__thumb__)
+   /* This provides about 12% speedeup on the gcc -O2 optimised
+* C version
+*
diff --git a/meta/recipes-graphics/cogl/files/cogl_fixed_mul-constraint.patch 
b/meta/recipes-graphics/cogl/files/cogl_fixed_mul-constraint.patch
new file mode 100644
index 000..7eb9da3
--- /dev/null
+++ b/meta/recipes-graphics/cogl/files/cogl_fixed_mul-constraint.patch
@@ -0,0 +1,22 @@
+Upstream-Status: Inappropriate [cogl-fixed.c disappears in cogl 2.0]
+
+Add register constraints to prevent asm statement complaints like:
+
+  {standard input}:382: rdhi, rdlo and rm must all be different
+
+Signed-off-by: Donn Seeley donn.see...@windriver.com
+---
+ cogl/cogl-fixed.c |2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/cogl/cogl-fixed.c
 b/cogl/cogl-fixed.c
+@@ -816,7 +816,7 @@ cogl_fixed_mul (CoglFixed a,
+   __asm__ (smull %0, %1, %2, %3 \n
+mov   %0, %0, lsr %4 \n
+add   %1, %0, %1, lsl %5 \n
+-   : =r(res_hi), =r(res_low) \
++   : =r(res_hi), =r(res_low) \
+: r(a), r(b), i(COGL_FIXED_Q), i(32 - COGL_FIXED_Q));
+ 
+   return (CoglFixed) res_low;
-- 
1.7.10.4

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/1] cogl: make cogl be able to build on ARM arch

2013-06-14 Thread Burton, Ross
On 14 June 2013 09:37,  rongqing...@windriver.com wrote:
 +Upstream-Status: Inappropriate [cogl-fixed.c disappears in cogl 2.0]

Whilst it's true that this file doesn't exist in cogl 2.0, cogl 1.x is
still maintained.  I've forwarded this mail to the maintainers and
it's been merged into both the 1.14.x and 1.16.x release branches:

https://git.gnome.org/browse/cogl/log/?h=cogl-1.14

I encourage everyone to only consider a patch inappropriate in the
most extreme situations, as every patch we carry means upstream
doesn't have it, and we have the cost of forward-porting it.

Ross
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core