pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Update x11/pixman -> 0.14 + Fix for sunpro CC



Hi,

I currently set up a test machine with OpenSolaris in addition to the NetBSD
textbox (to avoid disgraces like my commit of graphic/graphviz) and got
heavily errors compiling x11/pixman.
I tried the upstream update first, but the MMX intrsincs are still defect.
I've seen, that the hacks.mk is wrong, too. It wont work when gcc will
become 5.0 and I'm still unsure if it now works as intended - I will invest
some testing there before I finish my work on it.

If anyone is interested in the current state, please take a look at the
attached patch. I need to modify mk/wrapper/transform-sunpro-cc to filter
-mmmx and -msse2, but that's another point and primary a problem in the package.

For details on the problems I detected with x11/pixman on OpenSolaris take a
look at http://bugs.freedesktop.org/show_bug.cgi?id=20932.

I hope I can/could avoid double effort with this mail.

Best regards,
Jens
Index: x11/pixman/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/x11/pixman/Makefile,v
retrieving revision 1.21
diff -u -r1.21 Makefile
--- x11/pixman/Makefile 15 Oct 2008 00:56:45 -0000      1.21
+++ x11/pixman/Makefile 29 Mar 2009 15:27:29 -0000
@@ -1,7 +1,7 @@
 # $NetBSD: Makefile,v 1.21 2008/10/15 00:56:45 bjs Exp $
 #
 
-DISTNAME=      pixman-0.12.0
+DISTNAME=      pixman-0.14.0
 CATEGORIES=    x11
 MASTER_SITES=  ${MASTER_SITE_XORG:=lib/}
 EXTRACT_SUFX=  .tar.bz2
Index: x11/pixman/distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/x11/pixman/distinfo,v
retrieving revision 1.21
diff -u -r1.21 distinfo
--- x11/pixman/distinfo 15 Oct 2008 00:56:45 -0000      1.21
+++ x11/pixman/distinfo 29 Mar 2009 15:27:29 -0000
@@ -1,12 +1,11 @@
 $NetBSD: distinfo,v 1.21 2008/10/15 00:56:45 bjs Exp $
 
-SHA1 (pixman-0.12.0.tar.bz2) = 0c57c6c7e21e2545257068f52517c460e6e51ae4
-RMD160 (pixman-0.12.0.tar.bz2) = 7881189a1de21ec5d2e27936c65369f121dcb15f
-Size (pixman-0.12.0.tar.bz2) = 364262 bytes
+SHA1 (pixman-0.14.0.tar.bz2) = 495e9de7b113365d0b7fe902f846734dfe2e1546
+RMD160 (pixman-0.14.0.tar.bz2) = b3a8124ffd04096a87ae8e4e044de68a3a0aad36
+Size (pixman-0.14.0.tar.bz2) = 352625 bytes
 SHA1 (patch-aa) = 5129f82ee9907ed179315a4790667f0b825175bb
-SHA1 (patch-ab) = e76a306cbf2975dec3020cd7a310941b3085782d
-SHA1 (patch-ac) = c798e52ecd8fc2a5788552df0a0842f524705126
+SHA1 (patch-ab) = 48727e0436b1cce538b955ea0cea70bd35506f79
+SHA1 (patch-ac) = 350c535b6de1ffc9a3584181d566ec453e4032cc
 SHA1 (patch-ad) = b2fa221652bc5f8bec000e071417b0180816a451
-SHA1 (patch-ae) = 5690db2799e3750d54cf1cb20bd5734a245f8eb8
-SHA1 (patch-ah) = 88a444f4ed0bc12387c22751b4cd4ef7cf5a5126
-SHA1 (patch-ai) = 5af5d1287b73ae35d6bc5a6adb5ae4709bf57e67
+SHA1 (patch-ae) = 0793243954ed70293a734d85850fe37d9114916d
+SHA1 (patch-aj) = 439ea74575609f91a47f940e5acaf3e38776ad6e
Index: x11/pixman/hacks.mk
===================================================================
RCS file: /cvsroot/pkgsrc/x11/pixman/hacks.mk,v
retrieving revision 1.2
diff -u -r1.2 hacks.mk
--- x11/pixman/hacks.mk 6 Sep 2008 20:09:15 -0000       1.2
+++ x11/pixman/hacks.mk 29 Mar 2009 15:27:29 -0000
@@ -8,7 +8,7 @@
 ### XXX SSE2 intrinsics require gcc-4.2+ to build unless
 ###    ${MACHINE_ARCH} == "x86_64".
 ###
-.  if !empty(PKGSRC_COMPILER:Msunpro) || \
+.  if empty(PKGSRC_COMPILER:Msunpro) && \
    (empty(MACHINE_ARCH:Mx86_64) && empty(CC_VERSION:Mgcc-[4-9].[2-9]*))
 CONFIGURE_ARGS+=       --disable-sse2
 .  endif
Index: x11/pixman/patches/patch-ab
===================================================================
RCS file: /cvsroot/pkgsrc/x11/pixman/patches/patch-ab,v
retrieving revision 1.8
diff -u -r1.8 patch-ab
--- x11/pixman/patches/patch-ab 6 Sep 2008 20:09:16 -0000       1.8
+++ x11/pixman/patches/patch-ab 29 Mar 2009 15:27:29 -0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-ab,v 1.8 2008/09/06 20:09:16 bjs Exp $
+$NetBSD$
 
---- pixman/Makefile.in.orig    2008-09-06 06:07:43.000000000 -0400
-+++ pixman/Makefile.in
-@@ -263,7 +263,8 @@ target_alias = @target_alias@
+--- pixman/Makefile.in.orig    2009-02-06 23:33:16.000000000 +0100
++++ pixman/Makefile.in 2009-03-28 13:29:39.917972784 +0100
+@@ -283,7 +283,8 @@
  top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
  lib_LTLIBRARIES = libpixman-1.la
@@ -10,5 +10,5 @@
 +libpixman_1_la_LDFLAGS = -version-info $(LT_VERSION_INFO) -no-undefined \
 +      -export-symbols $(PIXMAN_SYMFILE)
  libpixman_1_la_LIBADD = @DEP_LIBS@ -lm $(am__append_2) $(am__append_4) \
-       $(am__append_6)
+       $(am__append_6) $(am__append_8)
  libpixman_1_la_CFLAGS = -DPIXMAN_DISABLE_DEPRECATED
Index: x11/pixman/patches/patch-ac
===================================================================
RCS file: /cvsroot/pkgsrc/x11/pixman/patches/patch-ac,v
retrieving revision 1.7
diff -u -r1.7 patch-ac
--- x11/pixman/patches/patch-ac 6 Sep 2008 20:09:16 -0000       1.7
+++ x11/pixman/patches/patch-ac 29 Mar 2009 15:27:29 -0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-ac,v 1.7 2008/09/06 20:09:16 bjs Exp $
+$NetBSD$
 
---- pixman/pixman-private.h.orig       2008-08-21 21:47:50.000000000 -0400
-+++ pixman/pixman-private.h
-@@ -727,7 +727,7 @@ pixman_compute_composite_region32 (pixma
+--- pixman/pixman-private.h.orig       2009-02-06 21:33:46.000000000 +0100
++++ pixman/pixman-private.h    2009-03-28 13:30:28.180099323 +0100
+@@ -736,7 +736,7 @@
                                   uint16_t             height);
  
  /* GCC visibility */
Index: x11/pixman/patches/patch-ae
===================================================================
RCS file: /cvsroot/pkgsrc/x11/pixman/patches/patch-ae,v
retrieving revision 1.7
diff -u -r1.7 patch-ae
--- x11/pixman/patches/patch-ae 6 Sep 2008 20:09:16 -0000       1.7
+++ x11/pixman/patches/patch-ae 29 Mar 2009 15:27:29 -0000
@@ -1,16 +1,16 @@
-$NetBSD: patch-ae,v 1.7 2008/09/06 20:09:16 bjs Exp $
+$NetBSD$
 
---- configure.orig     2008-09-06 06:07:45.000000000 -0400
-+++ configure
-@@ -20218,6 +20218,7 @@ fi
+--- configure.orig     2009-02-06 23:33:17.000000000 +0100
++++ configure  2009-03-28 13:34:04.166785944 +0100
+@@ -20588,6 +20588,7 @@
  
  
  have_gcc4=no
 +if false; then
- { echo "$as_me:$LINENO: checking for -fvisibility" >&5
- echo $ECHO_N "checking for -fvisibility... $ECHO_C" >&6; }
+ { $as_echo "$as_me:$LINENO: checking for -fvisibility" >&5
+ $as_echo_n "checking for -fvisibility... " >&6; }
  cat >conftest.$ac_ext <<_ACEOF
-@@ -20255,7 +20256,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
+@@ -20626,7 +20627,7 @@
  fi
  
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Index: x11/pixman/patches/patch-ah
===================================================================
RCS file: x11/pixman/patches/patch-ah
diff -N x11/pixman/patches/patch-ah
--- x11/pixman/patches/patch-ah 15 Oct 2008 00:56:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-$NetBSD: patch-ah,v 1.1 2008/10/15 00:56:45 bjs Exp $
-
-
-1c5de7b05831b3d66821707276b71974a232f5c7
-
-Move _mm_empty() to correct place
-
-The "fbComposeSetupSSE2()" function is guarding most of its code
-depending on the capabilities of the CPU, but unfortunately the call
-to "_mm_empty()" is not part of this code path but executed
-unconditionally.  This results in a "illegal instruction" crash on
-non-MMX / non-SSE capable CPUs caused by the the "emms" instruction
-(embedded in "_mm_empty()").
-
-Fix bug 17729.
-
---- pixman/pixman-sse2.c.orig  2008-09-17 09:50:49.000000000 -0400
-+++ pixman/pixman-sse2.c
-@@ -2357,11 +2357,11 @@ fbComposeSetupSSE2(void)
-         pixman_composeFunctions.combineC[PIXMAN_OP_ADD] = sse2CombineAddC;
- 
-         pixman_composeFunctions.combineMaskU = sse2CombineMaskU;
-+
-+      _mm_empty();
-     }
- 
-     initialized = TRUE;
--
--    _mm_empty();
- }
- 
- 
Index: x11/pixman/patches/patch-ai
===================================================================
RCS file: x11/pixman/patches/patch-ai
diff -N x11/pixman/patches/patch-ai
--- x11/pixman/patches/patch-ai 15 Oct 2008 00:56:45 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
-$NetBSD: patch-ai,v 1.1 2008/10/15 00:56:45 bjs Exp $
-
-69dadf231283fadcb117b4d9e799e8633a0e4dab
-
-force alignment of arg pointer in potential SSE users
-
-Fix for bug 17824
-
---- pixman/pixman-utils.c.orig 2008-09-09 08:28:23.000000000 -0400
-+++ pixman/pixman-utils.c
-@@ -62,6 +62,9 @@ pixman_transform_point_3d (pixman_transf
-     return TRUE;
- }
- 
-+#if defined(USE_SSE2) && defined(__GNUC__) && !defined(__x86_64__) && 
!defined(__amd64__)
-+__attribute__((__force_align_arg_pointer__))
-+#endif
- PIXMAN_EXPORT pixman_bool_t
- pixman_blt (uint32_t *src_bits,
-           uint32_t *dst_bits,
-@@ -156,6 +159,9 @@ pixman_fill32 (uint32_t *bits,
-     }
- }
- 
-+#if defined(USE_SSE2) && defined(__GNUC__) && !defined(__x86_64__) && 
!defined(__amd64__)
-+__attribute__((__force_align_arg_pointer__))
-+#endif
- PIXMAN_EXPORT pixman_bool_t
- pixman_fill (uint32_t *bits,
-            int stride,
Index: x11/pixman/patches/patch-aj
===================================================================
RCS file: x11/pixman/patches/patch-aj
diff -N x11/pixman/patches/patch-aj
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ x11/pixman/patches/patch-aj 29 Mar 2009 15:27:29 -0000
@@ -0,0 +1,78 @@
+$NetBSD$
+
+Patch to enable pixman's MMX intrsincs with sunpro
+http://bugs.freedesktop.org/show_bug.cgi?id=20932
+
+--- pixman/pixman-mmx.c.orig   2009-03-28 14:11:13.312002562 +0100
++++ pixman/pixman-mmx.c        2009-03-28 14:40:59.433607926 +0100
+@@ -81,6 +81,10 @@
+ typedef unsigned __int64 ullong;
+ typedef __m64 mmxdatafield;
+ #endif
++#ifdef __SUNPRO_C
++typedef unsigned long long ullong;
++typedef __m64 mmxdatafield;
++#endif
+ 
+ typedef struct
+ {
+@@ -137,6 +141,23 @@
+     { 0x0000ffff00000000UI64 },
+     { 0x000000000000ffffUI64 },
+ #endif
++#ifdef __SUNPRO_C
++    { 0x00ff00ff00ff00ffULL },
++    { 0x0080008000800080ULL },
++    { 0x000001f0003f001fULL },
++    { 0x0000008404100840ULL },
++    { 0x000000f800000000ULL },
++    { 0x0000000000fc0000ULL },
++    { 0x00000000000000f8ULL },
++    { 0xffffffffffff0000ULL },
++    { 0xffffffff0000ffffULL },
++    { 0xffff0000ffffffffULL },
++    { 0x0000ffffffffffffULL },
++    { 0x00ff000000000000ULL },
++    { 0xffff0000ffff0000ULL },
++    { 0x0000ffff00000000ULL },
++    { 0x000000000000ffffULL },
++#endif
+ };
+ 
+ #ifdef __GNUC__
+@@ -151,6 +172,10 @@
+ #    define MC(x) c.mmx_##x
+ #endif
+ 
++#ifdef __SUNPRO_C
++#    define MC(x) c.mmx_##x
++#endif
++
+ static force_inline __m64
+ M64 (ullong x)
+ {
+@@ -166,6 +191,13 @@
+     res.m64_u64 = x;
+     return res;
+ #endif
++
++#ifdef __SUNPRO_C
++    __m64 res;
++
++    res.l_ = x;
++    return res;
++#endif
+ }
+ 
+ static force_inline ullong
+@@ -183,6 +215,10 @@
+     res = x.m64_u64;
+     return res;
+ #endif
++
++#ifdef __SUNPRO_C
++    return x.l_;
++#endif
+ }
+ 
+ static force_inline __m64


Home | Main Index | Thread Index | Old Index