From e437900fb0bffb414d5948ebadc1f17d7e2ee76e Mon Sep 17 00:00:00 2001 From: drochner Date: Mon, 23 Oct 2006 18:39:24 +0000 Subject: -Fix compiler errors with gcc-3.3.3 on i386, reported by Robert Elz per PR pkg/34886. Just #ifdef out the code on i386; it was disabled at another layer anyway (due to alignment problems with any gcc on i386). Thanks to Robert for testing. -Make sure cpuid is read on amd64, to enable mmx/sse support. (We could just assume it, but for the future this makes more sense.) -bump PKGREVISION --- devel/liboil/Makefile | 3 ++- devel/liboil/distinfo | 6 ++++-- devel/liboil/patches/patch-aa | 11 ++++++++++- devel/liboil/patches/patch-ab | 26 ++++++++++++++++++++++++++ devel/liboil/patches/patch-ac | 26 ++++++++++++++++++++++++++ 5 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 devel/liboil/patches/patch-ab create mode 100644 devel/liboil/patches/patch-ac (limited to 'devel/liboil') diff --git a/devel/liboil/Makefile b/devel/liboil/Makefile index 07cefc5d05b..f5b98aaaa72 100644 --- a/devel/liboil/Makefile +++ b/devel/liboil/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.8 2006/10/19 14:27:33 drochner Exp $ +# $NetBSD: Makefile,v 1.9 2006/10/23 18:39:24 drochner Exp $ # DISTNAME= liboil-0.3.9 +PKGREVISION= 1 CATEGORIES= devel MASTER_SITES= http://liboil.freedesktop.org/download/ diff --git a/devel/liboil/distinfo b/devel/liboil/distinfo index 77323fa2f15..3c3cf85ca61 100644 --- a/devel/liboil/distinfo +++ b/devel/liboil/distinfo @@ -1,6 +1,8 @@ -$NetBSD: distinfo,v 1.2 2006/10/19 14:27:33 drochner Exp $ +$NetBSD: distinfo,v 1.3 2006/10/23 18:39:24 drochner Exp $ SHA1 (liboil-0.3.9.tar.gz) = 9b8126c4ae26f32c4131c7e8df8b2c61e7e1973a RMD160 (liboil-0.3.9.tar.gz) = b77d754028d97cff2138c4d899e00959a34eb750 Size (liboil-0.3.9.tar.gz) = 833083 bytes -SHA1 (patch-aa) = 7f030d1ad86805b21bfb7bc9343fe73337ecd359 +SHA1 (patch-aa) = 9ed35f2ff99c8e9d85d6ef9c03946e6ec8a5a107 +SHA1 (patch-ab) = 7fc1f032bad9384fb9e0aa9e88d75c8eb5bb35c5 +SHA1 (patch-ac) = 809d577cabdc575891aa33ab13f4c1a508520088 diff --git a/devel/liboil/patches/patch-aa b/devel/liboil/patches/patch-aa index 940e7c6cd50..1abbd51dd84 100644 --- a/devel/liboil/patches/patch-aa +++ b/devel/liboil/patches/patch-aa @@ -1,4 +1,4 @@ -$NetBSD: patch-aa,v 1.1 2006/10/19 14:27:33 drochner Exp $ +$NetBSD: patch-aa,v 1.2 2006/10/23 18:39:24 drochner Exp $ --- liboil/liboilcpu.c.orig 2006-05-23 02:07:56.000000000 +0200 +++ liboil/liboilcpu.c @@ -26,3 +26,12 @@ $NetBSD: patch-aa,v 1.1 2006/10/19 14:27:33 drochner Exp $ /* If we don't know that the operating system supports SSE, don't trust that * it will properly support it. */ +@@ -743,7 +751,7 @@ oil_cpu_detect_mips(void) + static void + oil_cpu_detect_arch(void) + { +-#ifdef __i386__ ++#if defined(__i386__) || defined(__amd64__) + oil_cpu_detect_i386(); + #endif + #if defined(__powerpc__) || defined(__PPC__) || defined(__ppc__) diff --git a/devel/liboil/patches/patch-ab b/devel/liboil/patches/patch-ab new file mode 100644 index 00000000000..9830fb9f2d9 --- /dev/null +++ b/devel/liboil/patches/patch-ab @@ -0,0 +1,26 @@ +$NetBSD: patch-ab,v 1.1 2006/10/23 18:39:24 drochner Exp $ + +--- ./liboil/sse/composite_sse_2pix.c.orig 2005-12-21 02:27:54.000000000 +0100 ++++ ./liboil/sse/composite_sse_2pix.c +@@ -136,6 +136,13 @@ 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) ++ * Since SSE2 is broken anyway on i386, just disable it. ++ * (amd64 is OK) ++ */ ++#ifndef __i386__ + static void + composite_in_argb_sse_2pix (uint32_t *dest, const uint32_t *src, + const uint8_t *mask, int n) +@@ -389,6 +396,7 @@ composite_in_over_argb_const_mask_sse_2p + } + OIL_DEFINE_IMPL_FULL (composite_in_over_argb_const_mask_sse_2pix, + composite_in_over_argb_const_mask, OIL_IMPL_FLAG_SSE2); ++#endif + + 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..301932b5b23 --- /dev/null +++ b/devel/liboil/patches/patch-ac @@ -0,0 +1,26 @@ +$NetBSD: patch-ac,v 1.1 2006/10/23 18:39:24 drochner Exp $ + +--- ./liboil/sse/composite_sse_4pix.c.orig 2006-10-23 20:03:45.000000000 +0200 ++++ ./liboil/sse/composite_sse_4pix.c +@@ -270,6 +270,13 @@ composite_in_argb_const_mask_sse (uint32 + OIL_DEFINE_IMPL_FULL (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) ++ * Since SSE2 is broken anyway on i386, just disable it. ++ * (amd64 is OK) ++ */ ++#ifndef __i386__ + static void + composite_over_argb_sse (uint32_t *dest, const uint32_t *src, int n) + { +@@ -504,6 +511,7 @@ composite_in_over_argb_const_mask_sse (u + } + OIL_DEFINE_IMPL_FULL (composite_in_over_argb_const_mask_sse, + composite_in_over_argb_const_mask, OIL_IMPL_FLAG_SSE2); ++#endif + + static void + composite_over_u8_sse (uint8_t *dest, const uint8_t *src, int n) -- cgit v1.2.3