[cairo] pixman 0.18 MinGW SSE2 error

Tor Lillqvist tml at iki.fi
Sat Sep 11 20:27:37 PDT 2010


By the way, it seems that with gcc 4.5.0 from mingw.org, __thread, sse
and mmx work fine.

I added the below to pixman 0.18 and as far as I can see, it works.
make check reports no problems. (Earlier I had to use --disable-mmx
and --disable-sse2.) Also gtk-demo and gimp run fine.

(Also a change to get rid of the warnings about -fvisibility being ignored.)

--tml


diff --git a/configure.ac b/configure.ac
index 8b2b024..d9f9718 100644
--- a/configure.ac
+++ b/configure.ac
@@ -145,6 +145,9 @@ have_gcc4=no
 AC_MSG_CHECKING(for -fvisibility)
 AC_COMPILE_IFELSE([
 #if defined(__GNUC__) && (__GNUC__ >= 4)
+#ifdef _WIN32
+error Have -fvisibility but it is ignored and generates a warning
+#endif
 #else
 error Need GCC 4.0 for visibility
 #endif
@@ -524,8 +527,8 @@ support_for__thread=no

 AC_MSG_CHECKING(for __thread)
 AC_COMPILE_IFELSE([
-#ifdef __MINGW32__
-#error MinGW has broken __thread support
+#if defined __MINGW32__ && !(__GNUC__ > 4 || (__GNUC__ == 4 &&
__GNUC_MINOR__ >= 5))
+#error This MinGW version has broken __thread support
 #endif
 __thread int x ;
 int main () { return 0; }
diff --git a/pixman/pixman-compiler.h b/pixman/pixman-compiler.h
index 26f7071..affb236 100644
--- a/pixman/pixman-compiler.h
+++ b/pixman/pixman-compiler.h
@@ -60,7 +60,7 @@
 #endif

 /* GCC visibility */
-#if defined(__GNUC__) && __GNUC__ >= 4
+#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(_WIN32)
 #   define PIXMAN_EXPORT __attribute__ ((visibility("default")))
 /* Sun Studio 8 visibility */
 #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)


More information about the cairo mailing list