summaryrefslogtreecommitdiff
path: root/devel/liboil
diff options
context:
space:
mode:
authordrochner <drochner@pkgsrc.org>2007-04-13 21:01:54 +0000
committerdrochner <drochner@pkgsrc.org>2007-04-13 21:01:54 +0000
commit054aa831d9e3c68341cd7da8ebd3397a3b211967 (patch)
tree48166d0b6f7def492596fcba9bdb897b98492c2e /devel/liboil
parent4bbca4ff4cec11a37119dfc5f03ffbc5443d3b24 (diff)
downloadpkgsrc-054aa831d9e3c68341cd7da8ebd3397a3b211967.tar.gz
Re-apply a modified version of the patches for PR pkg/34886 which was
about ICEs with gcc3. The difference now is that SSE2+ generally works in i386, due to some evil hacks in liboil which work around gcc's problems. With gcc4 everything is fine for me. So disable the functions suspected to cause ICEs only for gcc<4 on i386. This hopefully fixes PR pkg/36142 by Gilles Gravier.
Diffstat (limited to 'devel/liboil')
-rw-r--r--devel/liboil/distinfo4
-rw-r--r--devel/liboil/patches/patch-ab24
-rw-r--r--devel/liboil/patches/patch-ac24
3 files changed, 51 insertions, 1 deletions
diff --git a/devel/liboil/distinfo b/devel/liboil/distinfo
index fa688bb007f..8290fea796d 100644
--- a/devel/liboil/distinfo
+++ b/devel/liboil/distinfo
@@ -1,6 +1,8 @@
-$NetBSD: distinfo,v 1.6 2007/04/12 17:53:41 joerg Exp $
+$NetBSD: distinfo,v 1.7 2007/04/13 21:01:54 drochner Exp $
SHA1 (liboil-0.3.11.tar.gz) = 1c1a9952d81c1c89f73e5ed16e4665d2d7d59f7f
RMD160 (liboil-0.3.11.tar.gz) = 4edf5dad57fa920f44ba10ca4d8e406abce30971
Size (liboil-0.3.11.tar.gz) = 881159 bytes
SHA1 (patch-aa) = 9f6478ae4008ed9881e6dcf99beb4b49db04c9e5
+SHA1 (patch-ab) = 36a06f38f34f43ab6d181f4e9028f7b9adf5332b
+SHA1 (patch-ac) = 8ccb2b0323b337902c384f4bdda856ca1cc2b023
diff --git a/devel/liboil/patches/patch-ab b/devel/liboil/patches/patch-ab
new file mode 100644
index 00000000000..16565a9649d
--- /dev/null
+++ b/devel/liboil/patches/patch-ab
@@ -0,0 +1,24 @@
+$NetBSD: patch-ab,v 1.3 2007/04/13 21:01:55 drochner Exp $
+
+--- ./liboil/sse/composite_sse_2pix.c.orig 2007-04-13 22:30:01.000000000 +0200
++++ ./liboil/sse/composite_sse_2pix.c
+@@ -138,6 +138,11 @@ static __m128i over_argb_sse2(__m128i de
+ return _mm_adds_epu8(src, muldiv_255_sse2(dest, negate_argb_sse2(srca)));
+ }
+
++/*
++ * These functions trigger an ICE with gcc-3.3.3 on i386.
++ * (see NetBSD PR pkg/34886)
++ */
++#if !(defined(__i386__) && __GNUC__ && (__GNUC__ < 4))
+ static void
+ composite_in_argb_sse_2pix (uint32_t *dest, const uint32_t *src,
+ const uint8_t *mask, int n)
+@@ -393,6 +398,7 @@ composite_in_over_argb_const_mask_sse_2p
+ }
+ OIL_DEFINE_IMPL_FULL_WRAPPER(composite_in_over_argb_const_mask_sse_2pix,
+ composite_in_over_argb_const_mask, OIL_IMPL_FLAG_SSE2);
++#endif /* i386 gcc<4 */
+
+ static void
+ composite_over_u8_sse_2pix (uint8_t *dest, const uint8_t *src, int n)
diff --git a/devel/liboil/patches/patch-ac b/devel/liboil/patches/patch-ac
new file mode 100644
index 00000000000..1f362876d53
--- /dev/null
+++ b/devel/liboil/patches/patch-ac
@@ -0,0 +1,24 @@
+$NetBSD: patch-ac,v 1.3 2007/04/13 21:01:56 drochner Exp $
+
+--- ./liboil/sse/composite_sse_4pix.c.orig 2007-04-13 22:37:07.000000000 +0200
++++ ./liboil/sse/composite_sse_4pix.c
+@@ -274,6 +274,11 @@ composite_in_argb_const_mask_sse (uint32
+ OIL_DEFINE_IMPL_FULL_WRAPPER (composite_in_argb_const_mask_sse,
+ composite_in_argb_const_mask, OIL_IMPL_FLAG_SSE2);
+
++/*
++ * These functions trigger an ICE with gcc-3.3.3 on i386.
++ * (see NetBSD PR pkg/34886)
++ */
++#if !(defined(__i386__) && __GNUC__ && (__GNUC__ < 4))
+ static void
+ composite_over_argb_sse (uint32_t *dest, const uint32_t *src, int n)
+ {
+@@ -508,6 +513,7 @@ composite_in_over_argb_const_mask_sse (u
+ }
+ OIL_DEFINE_IMPL_FULL_WRAPPER (composite_in_over_argb_const_mask_sse,
+ composite_in_over_argb_const_mask, OIL_IMPL_FLAG_SSE2);
++#endif /* i386 gcc<4 */
+
+ static void
+ composite_over_u8_sse (uint8_t *dest, const uint8_t *src, int n)