cairo 1.8.10: add patch to get rid of some double precision FP math and convert to...
authorKoen Kooi <koen@openembedded.org>
Wed, 2 Jun 2010 07:34:03 +0000 (09:34 +0200)
committerKoen Kooi <koen@openembedded.org>
Wed, 2 Jun 2010 07:34:49 +0000 (09:34 +0200)
recipes/cairo/cairo.inc
recipes/cairo/cairo_1.8.10.bb
recipes/cairo/files/0001-Rely-less-on-DP-FPU-for-common-matrix-test-funcs.patch [new file with mode: 0644]

index 3123fe6..70e56fa 100644 (file)
@@ -10,6 +10,3 @@ EXTRA_OECONF += "${@get_cairo_fpu_setting(bb, d)}"
 
 inherit autotools pkgconfig 
 
-do_stage () {
-       autotools_stage_all
-}
index fff9cac..ad0dae5 100644 (file)
@@ -1,8 +1,11 @@
 require cairo.inc
 
+PR = "r1"
+
 SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz;name=cairo \
            file://dolt-fix.patch \
-          "
+           file://0001-Rely-less-on-DP-FPU-for-common-matrix-test-funcs.patch \
+"
 
 SRC_URI[cairo.md5sum] = "b60a82f405f9400bbfdcf850b1728d25"
 SRC_URI[cairo.sha256sum] = "572bada15596ec8708392db1af8b93a1af75ca47690348154e2841f3a6f08439"
diff --git a/recipes/cairo/files/0001-Rely-less-on-DP-FPU-for-common-matrix-test-funcs.patch b/recipes/cairo/files/0001-Rely-less-on-DP-FPU-for-common-matrix-test-funcs.patch
new file mode 100644 (file)
index 0000000..4e9f1db
--- /dev/null
@@ -0,0 +1,44 @@
+diff a/src/cairo-matrix.c b/src/cairo-matrix.c
+--- a/src/cairo-matrix.c
++++ b/src/cairo-matrix.c
+@@ -653,16 +653,39 @@ _cairo_matrix_compute_basis_scale_factors (const cairo_matrix_t *matrix,
+ cairo_bool_t
+ _cairo_matrix_is_identity (const cairo_matrix_t *matrix)
+ {
++      static const cairo_matrix_t id = {
++              .xx = 1,
++              .xy = 0,
++              .yx = 0,
++              .yy = 1,
++              .x0 = 0,
++              .y0 = 0
++      };
++
++      return !memcmp(matrix, &id, sizeof(id));
++
++#if 0
+     return (matrix->xx == 1.0 && matrix->yx == 0.0 &&
+           matrix->xy == 0.0 && matrix->yy == 1.0 &&
+           matrix->x0 == 0.0 && matrix->y0 == 0.0);
++#endif
+ }
+ cairo_bool_t
+ _cairo_matrix_is_translation (const cairo_matrix_t *matrix)
+ {
++      cairo_matrix_t tmp;
++      tmp.xx = matrix->xx;
++      tmp.xy = matrix->xy;
++      tmp.yx = matrix->yx;
++      tmp.yy = matrix->yy;
++      tmp.x0 = tmp.y0 = 0;
++      return _cairo_matrix_is_identity(&tmp);
++
++#if 0
+     return (matrix->xx == 1.0 && matrix->yx == 0.0 &&
+           matrix->xy == 0.0 && matrix->yy == 1.0);
++#endif
+ }
+ cairo_bool_t
+