Disable msvc runtime fma3 use in an attempt to fix msvc 2013 + windows 7 issues.
authorMartijn Berger <martijn.berger@gmail.com>
Fri, 5 Sep 2014 09:09:54 +0000 (11:09 +0200)
committerMartijn Berger <martijn.berger@gmail.com>
Fri, 5 Sep 2014 09:09:54 +0000 (11:09 +0200)
MS report:
https://connect.microsoft.com/VisualStudio/feedback/details/811093

source/creator/creator.c

index 70e6aba82748af6079bf104aa7bde89d2c7e145c..412ff374233bad642fdf5ab3c040d00f36797822 100644 (file)
@@ -41,6 +41,9 @@
 #endif
 
 #ifdef WIN32
+#  if defined(_MSC_VER) && _MSC_VER >= 1800 && defined(_M_X64)
+#    include <math.h> /* needed for _set_FMA3_enable */
+#  endif
 #  include <windows.h>
 #  include "utfconv.h"
 #endif
@@ -1501,7 +1504,13 @@ int main(
        bArgs *ba;
 #endif
 
-#ifdef WIN32 /* Win32 Unicode Args */
+#ifdef WIN32
+    /* FMA3 support in the 2013 CRT is broken on Vista and Windows 7 RTM (fixed in SP1). Just disable it. */
+#  if defined(_MSC_VER) && _MSC_VER >= 1800 && defined(_M_X64)
+    _set_FMA3_enable(0);
+#  endif
+
+       /* Win32 Unicode Args */
        /* NOTE: cannot use guardedalloc malloc here, as it's not yet initialized
         *       (it depends on the args passed in, which is what we're getting here!)
         */