From cdfea71ff1c4f80ff3a0ade1d7514cbf3c22abde Mon Sep 17 00:00:00 2001 From: "Roy.Li" Date: Fri, 14 Jun 2013 16:37:58 +0800 Subject: 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 Signed-off-by: Richard Purdie --- 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 (limited to 'meta/recipes-graphics/cogl') diff --git a/meta/recipes-graphics/cogl/cogl-1.0.inc b/meta/recipes-graphics/cogl/cogl-1.0.inc index a44e6c40aa..c9c6165a88 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 0000000000..1825e88f1d --- /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 +--- + 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 0000000000..179533ae80 --- /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 +--- + 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; -- cgit 1.2.3-korg