From 7a2368063f25746d4008a74aca0dc0b82f86ff7b Mon Sep 17 00:00:00 2001 From: Minmin Gong Date: Mon, 21 Jan 2019 12:49:40 -0800 Subject: bpo-35758: Fix building on ARM + MSVC (gh-11531) * 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 | 4 +++- Include/pyport.h | 2 +- Misc/NEWS.d/next/Windows/2019-01-21-05-18-14.bpo-35758.8LsY3l.rst | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Windows/2019-01-21-05-18-14.bpo-35758.8LsY3l.rst diff --git a/Include/internal/pycore_atomic.h b/Include/internal/pycore_atomic.h index f430a5c..5669f71 100644 --- a/Include/internal/pycore_atomic.h +++ b/Include/internal/pycore_atomic.h @@ -19,7 +19,9 @@ extern "C" { #if defined(_MSC_VER) #include -#include +#if defined(_M_IX86) || defined(_M_X64) +# include +#endif #endif /* This is modeled after the atomics interface from C1x, according to diff --git a/Include/pyport.h b/Include/pyport.h index 7f88c4f..4971a49 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -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 index 0000000..c1e19d4 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2019-01-21-05-18-14.bpo-35758.8LsY3l.rst @@ -0,0 +1 @@ +Allow building on ARM with MSVC. -- cgit v0.12