pixman: Changes to 'debian-unstable'
debian/changelog | 5 -
debian/patches/matrix-test-bigendian.diff | 97 ++++++++++++++++++++++++++++++
debian/patches/series | 2
3 files changed, 101 insertions(+), 3 deletions(-)
New commits:
commit 3f0d759608326f716ad836a0102d770bff642513
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Jul 27 21:40:50 2013 +0200
Upload to unstable
diff --git a/debian/changelog b/debian/changelog
index c204de5..51fa860 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-pixman (0.30.0-2) UNRELEASED; urgency=low
+pixman (0.30.0-2) sid; urgency=low
* Disable silent Makefile rules.
* Disable arm iwmmxt fast paths. It breaks the build.
* Fix matrix-test on big endian (patch from Siarhei Siamashka).
- -- Julien Cristau <jcristau@debian.org> Sat, 27 Jul 2013 14:37:11 +0200
+ -- Julien Cristau <jcristau@debian.org> Sat, 27 Jul 2013 21:40:48 +0200
pixman (0.30.0-1) sid; urgency=low
commit 3c4dac9a7cc2ef87b67dc5b3ed0479475434af67
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Jul 27 21:39:26 2013 +0200
Fix matrix-test on big endian
Patch from Siarhei Siamashka.
diff --git a/debian/changelog b/debian/changelog
index ee08eeb..c204de5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ pixman (0.30.0-2) UNRELEASED; urgency=low
* Disable silent Makefile rules.
* Disable arm iwmmxt fast paths. It breaks the build.
+ * Fix matrix-test on big endian (patch from Siarhei Siamashka).
-- Julien Cristau <jcristau@debian.org> Sat, 27 Jul 2013 14:37:11 +0200
diff --git a/debian/patches/matrix-test-bigendian.diff b/debian/patches/matrix-test-bigendian.diff
new file mode 100644
index 0000000..c46ba5c
--- /dev/null
+++ b/debian/patches/matrix-test-bigendian.diff
@@ -0,0 +1,97 @@
+From 9f0ea83b92c0bb92977f22c60e96ecfe71ff9a72 Mon Sep 17 00:00:00 2001
+From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
+Date: Sat, 27 Jul 2013 19:32:34 +0300
+Subject: [PATCH] test: fix matrix-test on big endian systems
+
+---
+ test/matrix-test.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 51 insertions(+), 2 deletions(-)
+
+diff --git a/test/matrix-test.c b/test/matrix-test.c
+index 8437dd2..0a5f203 100644
+--- a/test/matrix-test.c
++++ b/test/matrix-test.c
+@@ -70,6 +70,53 @@ pixman_bool_t does_it_fit_fixed_48_16 (__float128 x)
+
+ #endif
+
++static inline uint32_t
++byteswap32 (uint32_t x)
++{
++ return ((x & ((uint32_t)0xFF << 24)) >> 24) |
++ ((x & ((uint32_t)0xFF << 16)) >> 8) |
++ ((x & ((uint32_t)0xFF << 8)) << 8) |
++ ((x & ((uint32_t)0xFF << 0)) << 24);
++}
++
++static inline uint64_t
++byteswap64 (uint64_t x)
++{
++ return ((x & ((uint64_t)0xFF << 56)) >> 56) |
++ ((x & ((uint64_t)0xFF << 48)) >> 40) |
++ ((x & ((uint64_t)0xFF << 40)) >> 24) |
++ ((x & ((uint64_t)0xFF << 32)) >> 8) |
++ ((x & ((uint64_t)0xFF << 24)) << 8) |
++ ((x & ((uint64_t)0xFF << 16)) << 24) |
++ ((x & ((uint64_t)0xFF << 8)) << 40) |
++ ((x & ((uint64_t)0xFF << 0)) << 56);
++}
++
++static void
++byteswap_transform (pixman_transform_t *t)
++{
++ int i, j;
++
++ if (is_little_endian ())
++ return;
++
++ for (i = 0; i < 3; i++)
++ for (j = 0; j < 3; j++)
++ t->matrix[i][j] = byteswap32 (t->matrix[i][j]);
++}
++
++static void
++byteswap_vector_48_16 (pixman_vector_48_16_t *v)
++{
++ int i;
++
++ if (is_little_endian ())
++ return;
++
++ for (i = 0; i < 3; i++)
++ v->v[i] = byteswap64 (v->v[i]);
++}
++
+ uint32_t
+ test_matrix (int testnum, int verbose)
+ {
+@@ -90,6 +137,8 @@ test_matrix (int testnum, int verbose)
+ #endif
+ prng_randmemset (&ti, sizeof(ti), 0);
+ prng_randmemset (&vi, sizeof(vi), 0);
++ byteswap_transform (&ti);
++ byteswap_vector_48_16 (&vi);
+
+ for (j = 0; j < 3; j++)
+ {
+@@ -132,8 +181,6 @@ test_matrix (int testnum, int verbose)
+ else
+ transform_ok = pixman_transform_point_31_16 (&ti, &vi, &result_i);
+
+- crc32 = compute_crc32 (crc32, &result_i, sizeof(result_i));
+-
+ #ifdef HAVE_FLOAT128
+ /* compare with a reference 128-bit floating point implementation */
+ for (j = 0; j < 3; j++)
+@@ -173,6 +220,8 @@ test_matrix (int testnum, int verbose)
+ }
+ }
+ #endif
++ byteswap_vector_48_16 (&result_i);
++ crc32 = compute_crc32 (crc32, &result_i, sizeof (result_i));
+ }
+ return crc32;
+ }
+--
+1.7.10.4
+
diff --git a/debian/patches/series b/debian/patches/series
index fdffa2a..dc72f90 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1 @@
-# placeholder
+matrix-test-bigendian.diff
Reply to: