diff options
| author | Roy.Li <rongqing.li@windriver.com> | 2013-06-14 16:37:58 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-06-14 12:44:34 +0100 |
| commit | eba5d155f2598fb5de2a11b9946dac53cb23503d (patch) | |
| tree | 541b0d713cc07ff735754800c363e36e2b926588 /meta/recipes-graphics | |
| parent | 23fd4d2a0991f862eb35531d996d27fdbc45e00b (diff) | |
| download | poky-eba5d155f2598fb5de2a11b9946dac53cb23503d.tar.gz | |
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.
(From OE-Core rev: cdfea71ff1c4f80ff3a0ade1d7514cbf3c22abde)
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics')
| -rw-r--r-- | meta/recipes-graphics/cogl/cogl-1.0.inc | 4 | ||||
| -rw-r--r-- | meta/recipes-graphics/cogl/files/cogl-fixed-thumb.patch | 30 | ||||
| -rw-r--r-- | meta/recipes-graphics/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 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" | |||
| 2 | HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl" | 2 | HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl" |
| 3 | LICENSE = "LGPLv2.1+" | 3 | LICENSE = "LGPLv2.1+" |
| 4 | 4 | ||
| 5 | SRC_URI += "file://cogl_fixed_mul-constraint.patch \ | ||
| 6 | file://cogl-fixed-thumb.patch \ | ||
| 7 | " | ||
| 8 | |||
| 5 | inherit clutter | 9 | inherit clutter |
| 6 | 10 | ||
| 7 | DEPENDS = "pango glib-2.0 gdk-pixbuf" | 11 | 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 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | |||
| 3 | There are two asm() statements in cogl-fixed.c that can't be assembled | ||
| 4 | in Thumb mode. Add a patch to switch to the generic code in Thumb mode. | ||
| 5 | |||
| 6 | Signed-off-by: Donn Seeley <donn.seeley@windriver.com> | ||
| 7 | --- | ||
| 8 | cogl/cogl-fixed.c | 4 ++-- | ||
| 9 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
| 10 | |||
| 11 | --- a/cogl/cogl-fixed.c | ||
| 12 | +++ b/cogl/cogl-fixed.c | ||
| 13 | @@ -626,7 +626,7 @@ cogl_fixed_sqrt (CoglFixed x) | ||
| 14 | /* | ||
| 15 | * Find the highest bit set | ||
| 16 | */ | ||
| 17 | -#if defined (__arm__) && !defined(__ARM_ARCH_4T__) | ||
| 18 | +#if defined (__arm__) && !defined(__ARM_ARCH_4T__) && !defined(__thumb__) | ||
| 19 | /* This actually requires at least arm v5, but gcc does not seem | ||
| 20 | * to set the architecture defines correctly, and it is I think | ||
| 21 | * very unlikely that anyone will want to use clutter on anything | ||
| 22 | @@ -804,7 +804,7 @@ CoglFixed | ||
| 23 | cogl_fixed_mul (CoglFixed a, | ||
| 24 | CoglFixed b) | ||
| 25 | { | ||
| 26 | -#ifdef __arm__ | ||
| 27 | +#if defined(__arm__) && !defined(__thumb__) | ||
| 28 | /* This provides about 12% speedeup on the gcc -O2 optimised | ||
| 29 | * C version | ||
| 30 | * | ||
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 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | |||
| 3 | Add register constraints to prevent asm statement complaints like: | ||
| 4 | |||
| 5 | {standard input}:382: rdhi, rdlo and rm must all be different | ||
| 6 | |||
| 7 | Signed-off-by: Donn Seeley <donn.seeley@windriver.com> | ||
| 8 | --- | ||
| 9 | cogl/cogl-fixed.c | 2 +- | ||
| 10 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 11 | |||
| 12 | --- a/cogl/cogl-fixed.c | ||
| 13 | +++ b/cogl/cogl-fixed.c | ||
| 14 | @@ -816,7 +816,7 @@ cogl_fixed_mul (CoglFixed a, | ||
| 15 | __asm__ ("smull %0, %1, %2, %3 \n" | ||
| 16 | "mov %0, %0, lsr %4 \n" | ||
| 17 | "add %1, %0, %1, lsl %5 \n" | ||
| 18 | - : "=r"(res_hi), "=r"(res_low) \ | ||
| 19 | + : "=&r"(res_hi), "=&r"(res_low) \ | ||
| 20 | : "r"(a), "r"(b), "i"(COGL_FIXED_Q), "i"(32 - COGL_FIXED_Q)); | ||
| 21 | |||
| 22 | return (CoglFixed) res_low; | ||
