view src/boost-1-intrinsics-fix.patch @ 5541:d862fd40cc42

Use ccache for packages built with cmake. * Makefile.in: New variable CMAKE_CCACHE_FLAGS. * src/armadillo.mk, src/cgal.mk, src/cmake.mk, src/cminpack, src/double-conversion.mk, src/eigen.mk, src/gdcm.mk, src/gl2ps.mk, src/hdf5.mk, src/lapack.mk, src/libical.mk, src/libproxy, src/llvm.mk, src/of-dicom.mk, src/openal.mk, src/opencv.mk, src/openexr.mk, src/openscenegraph.mk, src/physfs.mk, src/qhull.mk, src/qjson.mk, src/rapidjson.mk, src/suitesparse.mk, src/sundials-ida.mk, src/taglib.mk, src/vigra.mk, src/vmime.mk, src/vtk.mk, src/wt.mk: Add new variable to cmake flags. Harmonize indentation in files.
author Markus Mützel <markus.muetzel@gmx.de>
date Sun, 20 Sep 2020 11:57:01 +0200
parents 5a459f007b2f
children
line wrap: on
line source

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* );