From 02f7fda54b001a824817cc51a44bd02c6466c7bf Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Fri, 4 Jan 2019 11:25:55 -0500 Subject: [PATCH] Fix include for ARM64 with MSVC compiler (GH #776) --- adv_simd.h | 3 ++- blake2b_simd.cpp | 3 ++- blake2s_simd.cpp | 3 ++- chacha_simd.cpp | 3 ++- crc_simd.cpp | 3 ++- gcm_simd.cpp | 3 ++- lea_simd.cpp | 7 ++++--- neon_simd.cpp | 5 ++--- rijndael_simd.cpp | 5 ++++- sha_simd.cpp | 3 ++- simon128_simd.cpp | 5 ++++- simon64_simd.cpp | 5 ++++- speck128_simd.cpp | 5 ++++- speck64_simd.cpp | 5 ++++- 14 files changed, 40 insertions(+), 18 deletions(-) diff --git a/adv_simd.h b/adv_simd.h index effb48f9..517f0c29 100644 --- a/adv_simd.h +++ b/adv_simd.h @@ -49,7 +49,8 @@ #include "misc.h" #include "stdcpp.h" -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif diff --git a/blake2b_simd.cpp b/blake2b_simd.cpp index ca5aa054..932be73b 100644 --- a/blake2b_simd.cpp +++ b/blake2b_simd.cpp @@ -38,7 +38,8 @@ # include #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif diff --git a/blake2s_simd.cpp b/blake2s_simd.cpp index dece4ec5..327e15d6 100644 --- a/blake2s_simd.cpp +++ b/blake2s_simd.cpp @@ -49,7 +49,8 @@ # include #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif diff --git a/chacha_simd.cpp b/chacha_simd.cpp index 615a0a55..90f7f6e5 100644 --- a/chacha_simd.cpp +++ b/chacha_simd.cpp @@ -48,7 +48,8 @@ # include #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif diff --git a/crc_simd.cpp b/crc_simd.cpp index 4699953a..771dabfd 100644 --- a/crc_simd.cpp +++ b/crc_simd.cpp @@ -14,7 +14,8 @@ # include #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif diff --git a/gcm_simd.cpp b/gcm_simd.cpp index 8d81c839..f4cb243d 100644 --- a/gcm_simd.cpp +++ b/gcm_simd.cpp @@ -29,7 +29,8 @@ # include #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif diff --git a/lea_simd.cpp b/lea_simd.cpp index 060b6468..b4180e34 100644 --- a/lea_simd.cpp +++ b/lea_simd.cpp @@ -31,13 +31,14 @@ # include #endif +// C1189: error: This header is specific to ARM targets #if (CRYPTOPP_ARM_NEON_AVAILABLE) # include "adv_simd.h" -# include +# ifndef _M_ARM64 +# include +# endif #endif -// Can't use CRYPTOPP_ARM_XXX_AVAILABLE because too many -// compilers don't follow ACLE conventions for the include. #if (CRYPTOPP_ARM_ACLE_AVAILABLE) # include # include diff --git a/neon_simd.cpp b/neon_simd.cpp index 1a77260b..aec3e5ef 100644 --- a/neon_simd.cpp +++ b/neon_simd.cpp @@ -11,12 +11,11 @@ #include "config.h" #include "stdcpp.h" -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif -// Can't use CRYPTOPP_ARM_XXX_AVAILABLE because too many -// compilers don't follow ACLE conventions for the include. #if (CRYPTOPP_ARM_ACLE_AVAILABLE) # include # include diff --git a/rijndael_simd.cpp b/rijndael_simd.cpp index bd7bbe53..227b3fb5 100644 --- a/rijndael_simd.cpp +++ b/rijndael_simd.cpp @@ -30,9 +30,12 @@ # include #endif +// C1189: error: This header is specific to ARM targets #if (CRYPTOPP_ARM_NEON_AVAILABLE) # include "adv_simd.h" -# include +# ifndef _M_ARM64 +# include +# endif #endif #if (CRYPTOPP_ARM_ACLE_AVAILABLE) diff --git a/sha_simd.cpp b/sha_simd.cpp index 3fd9df72..7184f3e1 100644 --- a/sha_simd.cpp +++ b/sha_simd.cpp @@ -23,7 +23,8 @@ # include #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +// C1189: error: This header is specific to ARM targets +#if (CRYPTOPP_ARM_NEON_AVAILABLE) && !defined(_M_ARM64) # include #endif diff --git a/simon128_simd.cpp b/simon128_simd.cpp index 29a9b1bc..af9e6e97 100644 --- a/simon128_simd.cpp +++ b/simon128_simd.cpp @@ -31,9 +31,12 @@ # include #endif +// C1189: error: This header is specific to ARM targets #if (CRYPTOPP_ARM_NEON_AVAILABLE) # include "adv_simd.h" -# include +# ifndef _M_ARM64 +# include +# endif #endif // Can't use CRYPTOPP_ARM_XXX_AVAILABLE because too many diff --git a/simon64_simd.cpp b/simon64_simd.cpp index 33ceab1c..233203d5 100644 --- a/simon64_simd.cpp +++ b/simon64_simd.cpp @@ -35,9 +35,12 @@ # include #endif +// C1189: error: This header is specific to ARM targets #if (CRYPTOPP_ARM_NEON_AVAILABLE) # include "adv_simd.h" -# include +# ifndef _M_ARM64 +# include +# endif #endif // Can't use CRYPTOPP_ARM_XXX_AVAILABLE because too many diff --git a/speck128_simd.cpp b/speck128_simd.cpp index 2db2a1bb..3b748c8f 100644 --- a/speck128_simd.cpp +++ b/speck128_simd.cpp @@ -31,9 +31,12 @@ # include #endif +// C1189: error: This header is specific to ARM targets #if (CRYPTOPP_ARM_NEON_AVAILABLE) # include "adv_simd.h" -# include +# ifndef _M_ARM64 +# include +# endif #endif // Can't use CRYPTOPP_ARM_XXX_AVAILABLE because too many diff --git a/speck64_simd.cpp b/speck64_simd.cpp index f8aa0ca8..cfcf7335 100644 --- a/speck64_simd.cpp +++ b/speck64_simd.cpp @@ -35,9 +35,12 @@ # include #endif +// C1189: error: This header is specific to ARM targets #if (CRYPTOPP_ARM_NEON_AVAILABLE) # include "adv_simd.h" -# include +# ifndef _M_ARM64 +# include +# endif #endif // Can't use CRYPTOPP_ARM_XXX_AVAILABLE because too many