[glib] Bug 652827 - glib-2.29.8 no longer builds with mingw.org's toolchain



commit 349212211247781e7bec43b95cb57dddc1d0e5b1
Author: Behdad Esfahbod <behdad behdad org>
Date:   Tue Aug 9 19:43:34 2011 +0200

    Bug 652827 - glib-2.29.8 no longer builds with mingw.org's toolchain
    
    Check for Win32 atomic intrinsics.

 configure.ac   |   12 +++++++++++-
 glib/gatomic.c |    2 +-
 2 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 8fbc4f5..8168988 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2596,10 +2596,20 @@ if test x"$GCC" = xyes; then
 
   AC_MSG_RESULT($glib_cv_gcc_has_builtin_atomic_operations)
 fi
-
 AM_CONDITIONAL(HAVE_GCC_BUILTINS_FOR_ATOMIC_OPERATIONS,
 	       [test $glib_cv_gcc_has_builtin_atomic_operations = yes])
 
+AC_MSG_CHECKING([for Win32 atomic intrinsics])
+glib_cv_has_win32_atomic_operations=no
+AC_TRY_LINK([],
+	[int i; _InterlockedExchangeAdd (&i, 0);],
+	[glib_cv_has_win32_atomic_operations=yes],
+	[glib_cv_has_win32_atomic_operations=no])
+AC_MSG_RESULT($glib_cv_has_win32_atomic_operations)
+if test "x$glib_cv_has_win32_atomic_operations" = xyes; then
+	AC_DEFINE(HAVE_WIN32_BUILTINS_FOR_ATOMIC_OPERATIONS,1,[Have Win32 atomic intrinsics])
+fi
+
 dnl ************************
 dnl ** Check for futex(2) **
 dnl ************************
diff --git a/glib/gatomic.c b/glib/gatomic.c
index 328ad4f..1e83f19 100644
--- a/glib/gatomic.c
+++ b/glib/gatomic.c
@@ -455,7 +455,7 @@ gsize
   return g_atomic_pointer_xor ((volatile gpointer *) atomic, val);
 }
 
-#elif defined (G_PLATFORM_WIN32)
+#elif defined (G_PLATFORM_WIN32) && defined(HAVE_WIN32_BUILTINS_FOR_ATOMIC_OPERATIONS)
 
 #include <windows.h>
 #if !defined(_M_AMD64) && !defined (_M_IA64) && !defined(_M_X64)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]