summaryrefslogtreecommitdiff
path: root/x11/pixman
diff options
context:
space:
mode:
authorhe <he@pkgsrc.org>2016-04-21 21:39:36 +0000
committerhe <he@pkgsrc.org>2016-04-21 21:39:36 +0000
commit750b03e9fe0f725d7e5bb1d218640b39dbd18158 (patch)
tree5bc85f2d6269a27c0c36107b8b7dba31d675259e /x11/pixman
parentcbca072a9f55217e3de5895130e3ca71fdc48888 (diff)
downloadpkgsrc-750b03e9fe0f725d7e5bb1d218640b39dbd18158.tar.gz
Add a patch so that this builds on NetBSD/powerpc with altivec.
Without this, we get "subscripted value is neither array nor pointer" error from the compiler. Since this is a build fix for powerpc platforms, no PKGREVISION bump.
Diffstat (limited to 'x11/pixman')
-rw-r--r--x11/pixman/distinfo3
-rw-r--r--x11/pixman/patches/patch-pixman_pixman-vmx.c49
2 files changed, 51 insertions, 1 deletions
diff --git a/x11/pixman/distinfo b/x11/pixman/distinfo
index da402131834..9b53a0ea38d 100644
--- a/x11/pixman/distinfo
+++ b/x11/pixman/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.58 2016/02/05 12:15:40 wiz Exp $
+$NetBSD: distinfo,v 1.59 2016/04/21 21:39:36 he Exp $
SHA1 (pixman-0.34.0.tar.bz2) = 367698744e74d6d4f363041482965b9ea7fbe4a5
RMD160 (pixman-0.34.0.tar.bz2) = 2e4b79160bc913dc0043f9c1710f91801bcb8734
@@ -9,3 +9,4 @@ SHA1 (patch-bb) = d47b1857771b8addb6897d45782ba2735a7aacbd
SHA1 (patch-bc) = 3e23e6c482ea193885f3f762af355ef2f692132b
SHA1 (patch-bd) = 1b1432f4a88d5486afdb4c0cad0808d3748fa522
SHA1 (patch-pixman_Makefile.in) = 7dabdc0e2c8c73780c4b005ef6f5055a550b9651
+SHA1 (patch-pixman_pixman-vmx.c) = d96dad41d94bf8dfb956afda00a5a175a9c1f6fc
diff --git a/x11/pixman/patches/patch-pixman_pixman-vmx.c b/x11/pixman/patches/patch-pixman_pixman-vmx.c
new file mode 100644
index 00000000000..207369c61ca
--- /dev/null
+++ b/x11/pixman/patches/patch-pixman_pixman-vmx.c
@@ -0,0 +1,49 @@
+$NetBSD: patch-pixman_pixman-vmx.c,v 1.1 2016/04/21 21:39:36 he Exp $
+
+Add a fix so that this builds on NetBSD/powerpc. Otherwise we get
+pixman-vmx.c:2936:5: error: subscripted value is neither array nor pointer
+
+--- pixman/pixman-vmx.c.orig 2016-01-04 09:13:54.000000000 +0000
++++ pixman/pixman-vmx.c
+@@ -2913,32 +2913,29 @@ scaled_nearest_scanline_vmx_8888_8888_OV
+
+ while (w >= 4)
+ {
+- vector unsigned int tmp;
+- uint32_t tmp1, tmp2, tmp3, tmp4;
++ union {
++ vector unsigned int tmp;
++ uint32_t tmp1[4];
++ } u;
+
+- tmp1 = *(ps + pixman_fixed_to_int (vx));
++ u.tmp1[0] = *(ps + pixman_fixed_to_int (vx));
+ vx += unit_x;
+ while (vx >= 0)
+ vx -= src_width_fixed;
+- tmp2 = *(ps + pixman_fixed_to_int (vx));
++ u.tmp1[1] = *(ps + pixman_fixed_to_int (vx));
+ vx += unit_x;
+ while (vx >= 0)
+ vx -= src_width_fixed;
+- tmp3 = *(ps + pixman_fixed_to_int (vx));
++ u.tmp1[2] = *(ps + pixman_fixed_to_int (vx));
+ vx += unit_x;
+ while (vx >= 0)
+ vx -= src_width_fixed;
+- tmp4 = *(ps + pixman_fixed_to_int (vx));
++ u.tmp1[3] = *(ps + pixman_fixed_to_int (vx));
+ vx += unit_x;
+ while (vx >= 0)
+ vx -= src_width_fixed;
+
+- tmp[0] = tmp1;
+- tmp[1] = tmp2;
+- tmp[2] = tmp3;
+- tmp[3] = tmp4;
+-
+- vsrc = combine4 ((const uint32_t *) &tmp, pm);
++ vsrc = combine4 ((const uint32_t *) &u.tmp, pm);
+
+ if (is_opaque (vsrc))
+ {