]> granicus.if.org Git - python/commitdiff
bpo-35758: Fix building on ARM + MSVC (gh-11531)
authorMinmin Gong <gongminmin@msn.com>
Mon, 21 Jan 2019 20:49:40 +0000 (12:49 -0800)
committerAntoine Pitrou <pitrou@free.fr>
Mon, 21 Jan 2019 20:49:40 +0000 (21:49 +0100)
* Disable x87 control word for non-x86 targets

On msvc, x87 control word is only available on x86 target. Need to disable it for other targets to prevent compiling problems.

* Include immintrin.h on x86 and x64 only

Immintrin.h is only available on x86 and x64. Need to disable it for other targets to prevent compiling problems.

Include/internal/pycore_atomic.h
Include/pyport.h
Misc/NEWS.d/next/Windows/2019-01-21-05-18-14.bpo-35758.8LsY3l.rst [new file with mode: 0644]

index f430a5c26ff882cb2e1d76b199afe9433d8753f4..5669f71b941faef496fcba79585bf58ebe756dd3 100644 (file)
@@ -19,7 +19,9 @@ extern "C" {
 
 #if defined(_MSC_VER)
 #include <intrin.h>
-#include <immintrin.h>
+#if defined(_M_IX86) || defined(_M_X64)
+#  include <immintrin.h>
+#endif
 #endif
 
 /* This is modeled after the atomics interface from C1x, according to
index 7f88c4f629a0b10d6805194517c1145c46acf13d..4971a493ccee22efe67c151c76f91154ca77a6ae 100644 (file)
@@ -406,7 +406,7 @@ extern "C" {
 #endif
 
 /* get and set x87 control word for VisualStudio/x86 */
-#if defined(_MSC_VER) && !defined(_WIN64) /* x87 not supported in 64-bit */
+#if defined(_MSC_VER) && defined(_M_IX86) /* x87 only supported in x86 */
 #define HAVE_PY_SET_53BIT_PRECISION 1
 #define _Py_SET_53BIT_PRECISION_HEADER \
     unsigned int old_387controlword, new_387controlword, out_387controlword
diff --git a/Misc/NEWS.d/next/Windows/2019-01-21-05-18-14.bpo-35758.8LsY3l.rst b/Misc/NEWS.d/next/Windows/2019-01-21-05-18-14.bpo-35758.8LsY3l.rst
new file mode 100644 (file)
index 0000000..c1e19d4
--- /dev/null
@@ -0,0 +1 @@
+Allow building on ARM with MSVC.