blob: 81a19ba62bffe4b4b2b6449cd8fbb77b8352ef53 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
This file is part of MXE.
See index.html for further information.
This patch has been taken from:
http://pkgs.fedoraproject.org/cgit/mingw-boost.git/plain/boost-include-intrin-h-on-mingw-w64.patch
--- a/boost/detail/interlocked.hpp.interlocked 2012-12-11 15:42:26.000000000 +0100
+++ b/boost/detail/interlocked.hpp 2013-07-21 15:22:56.082346444 +0200
@@ -69,9 +69,9 @@
# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
-#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
+#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) || defined( __MINGW64_VERSION_MAJOR )
-#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1600
+#if ( defined( BOOST_MSVC ) && BOOST_MSVC >= 1600 ) || defined( __MINGW64_VERSION_MAJOR )
#include <intrin.h>
@@ -93,12 +93,16 @@
#endif
+# if defined( BOOST_MSVC )
+
# pragma intrinsic( _InterlockedIncrement )
# pragma intrinsic( _InterlockedDecrement )
# pragma intrinsic( _InterlockedCompareExchange )
# pragma intrinsic( _InterlockedExchange )
# pragma intrinsic( _InterlockedExchangeAdd )
+# endif
+
# if defined(_M_IA64) || defined(_M_AMD64)
extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* );
|