diff options
Diffstat (limited to 'gfx/cairo/pixman-xp-dll-workaround')
-rw-r--r-- | gfx/cairo/pixman-xp-dll-workaround | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gfx/cairo/pixman-xp-dll-workaround b/gfx/cairo/pixman-xp-dll-workaround new file mode 100644 index 0000000000..e5d1fcbf82 --- /dev/null +++ b/gfx/cairo/pixman-xp-dll-workaround @@ -0,0 +1,27 @@ +diff --git a/gfx/cairo/libpixman/src/pixman-compiler.h b/gfx/cairo/libpixman/src/pixman-compiler.h +--- a/gfx/cairo/libpixman/src/pixman-compiler.h ++++ b/gfx/cairo/libpixman/src/pixman-compiler.h +@@ -114,20 +114,22 @@ + + #elif defined(TLS) + + # define PIXMAN_DEFINE_THREAD_LOCAL(type, name) \ + static TLS type name + # define PIXMAN_GET_THREAD_LOCAL(name) \ + (&name) + +-#elif defined(__MINGW32__) ++#elif defined(__MINGW32__) || defined(PIXMAN_USE_XP_DLL_TLS_WORKAROUND) + + # define _NO_W32_PSEUDO_MODIFIERS + # include <windows.h> ++#undef IN ++#undef OUT + + # define PIXMAN_DEFINE_THREAD_LOCAL(type, name) \ + static volatile int tls_ ## name ## _initialized = 0; \ + static void *tls_ ## name ## _mutex = NULL; \ + static unsigned tls_ ## name ## _index; \ + \ + static type * \ + tls_ ## name ## _alloc (void) \ |