summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/harfbuzz-2-memory-barrier.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/harfbuzz-2-memory-barrier.patch b/src/harfbuzz-2-memory-barrier.patch
new file mode 100644
index 0000000..93f708a
--- /dev/null
+++ b/src/harfbuzz-2-memory-barrier.patch
@@ -0,0 +1,22 @@
+This file is part of MXE.
+See index.html for further information.
+
+Beware! This patch must be removed when winnt.h is updated to a version that
+includes the MemoryBarrier() macro.
+
+diff -ur harfbuzz-0.9.14.orig/src/hb-atomic-private.hh harfbuzz-0.9.14/src/hb-atomic-private.hh
+--- harfbuzz-0.9.14.orig/src/hb-atomic-private.hh 2013-03-19 12:04:53.000000000 +0100
++++ harfbuzz-0.9.14/src/hb-atomic-private.hh 2013-03-27 05:32:38.407335037 +0100
+@@ -44,6 +44,12 @@
+
+ #elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__))
+
++static inline void MemoryBarrier(void)
++{
++ long Barrier = 0;
++ __asm__ __volatile__ ("xchgl %%eax,%0 " : "=r" (Barrier));
++}
++
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
+