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

Check for Win32 atomic intrinsics.
This commit is contained in:
Behdad Esfahbod 2011-08-09 19:43:34 +02:00
parent fc442bdbe6
commit 3492122112
2 changed files with 12 additions and 2 deletions

View File

@ -2596,10 +2596,20 @@ if test x"$GCC" = xyes; then
AC_MSG_RESULT($glib_cv_gcc_has_builtin_atomic_operations) AC_MSG_RESULT($glib_cv_gcc_has_builtin_atomic_operations)
fi fi
AM_CONDITIONAL(HAVE_GCC_BUILTINS_FOR_ATOMIC_OPERATIONS, AM_CONDITIONAL(HAVE_GCC_BUILTINS_FOR_ATOMIC_OPERATIONS,
[test $glib_cv_gcc_has_builtin_atomic_operations = yes]) [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 ************************
dnl ** Check for futex(2) ** dnl ** Check for futex(2) **
dnl ************************ dnl ************************

View File

@ -455,7 +455,7 @@ gsize
return g_atomic_pointer_xor ((volatile gpointer *) atomic, val); 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> #include <windows.h>
#if !defined(_M_AMD64) && !defined (_M_IA64) && !defined(_M_X64) #if !defined(_M_AMD64) && !defined (_M_IA64) && !defined(_M_X64)