diff options
author | drochner <drochner@pkgsrc.org> | 2007-04-13 21:01:54 +0000 |
---|---|---|
committer | drochner <drochner@pkgsrc.org> | 2007-04-13 21:01:54 +0000 |
commit | 054aa831d9e3c68341cd7da8ebd3397a3b211967 (patch) | |
tree | 48166d0b6f7def492596fcba9bdb897b98492c2e /devel/liboil | |
parent | 4bbca4ff4cec11a37119dfc5f03ffbc5443d3b24 (diff) | |
download | pkgsrc-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/distinfo | 4 | ||||
-rw-r--r-- | devel/liboil/patches/patch-ab | 24 | ||||
-rw-r--r-- | devel/liboil/patches/patch-ac | 24 |
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) |