[oe-commits] Roy.Li : cogl: make cogl be able to build on ARM arch

git at git.openembedded.org git at git.openembedded.org
Fri Jun 14 11:41:21 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: cdfea71ff1c4f80ff3a0ade1d7514cbf3c22abde
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=cdfea71ff1c4f80ff3a0ade1d7514cbf3c22abde

Author: Roy.Li <rongqing.li at windriver.com>
Date:   Fri Jun 14 16:37:58 2013 +0800

cogl: make cogl be able to build on ARM arch

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

Signed-off-by: Roy.Li <rongqing.li at windriver.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 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(+), 0 deletions(-)

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 0000000..1825e88
--- /dev/null
+++ b/meta/recipes-graphics/cogl/files/cogl-fixed-thumb.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Backport
+
+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.seeley at 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 0000000..179533a
--- /dev/null
+++ b/meta/recipes-graphics/cogl/files/cogl_fixed_mul-constraint.patch
@@ -0,0 +1,22 @@
+Upstream-Status: Backport
+
+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.seeley at 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;



More information about the Openembedded-commits mailing list