cogl: make cogl be able to build on ARM arch
cover cogl: make cogl be able to build on ARM arch
From: "Roy.Li" <[email protected]>
The following changes since commit 1aeecaeee9bb1eee779973fce7f15cc7fad269a0:
classes/qmake_base: allow parallel make (2013-06-13 17:37:58 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib roy/cogl
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=roy/cogl
Roy.Li (1):
cogl: make cogl be able to build on ARM arch
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
Signature · 1 line
1.7.10.4
PATCH 1/1 cogl: make cogl be able to build on ARM arch
From: "Roy.Li" <[email protected]>
1. Fix asm() register constraints in cogl when building for ARM.
2. Fix cogl to handle Thumb builds.
--- 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
meta/recipes-graphics/cogl/cogl-1.0.inc +4 -0
@@ -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"
meta/recipes-graphics/cogl/files/cogl-fixed-thumb.patch new file +30 -0
@@ -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 <[email protected]> +--- + 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 + *
meta/recipes-graphics/cogl/files/cogl_fixed_mul-constraint.patch new file +22 -0
@@ -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 <[email protected]> +--- + 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;
Signature · 1 line
1.7.10.4
Quoted 1 line · On 14 June 2013 09:37, <[email protected]> wrote:
+Upstream-Status: Inappropriate [
cogl-fixed.cdisappears 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