Add CRYPTOPP_DISABLE_ASM for Google Native Client (GH #719)

pull/730/head
Jeffrey Walton 2018-10-20 06:31:51 -04:00
parent 3063c6e1d9
commit 1de4f39f86
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 13 additions and 4 deletions

View File

@ -61,6 +61,11 @@
// explictly use the ISAs. // explictly use the ISAs.
// #define CRYPTOPP_DISABLE_ASM 1 // #define CRYPTOPP_DISABLE_ASM 1
// https://github.com/weidai11/cryptopp/issues/719
#if defined(__native_client__)
# define CRYPTOPP_DISABLE_ASM 1
#endif
// Define CRYPTOPP_NO_CXX11 to avoid C++11 related features shown at the // Define CRYPTOPP_NO_CXX11 to avoid C++11 related features shown at the
// end of this file. Some compilers and standard C++ headers advertise C++11 // end of this file. Some compilers and standard C++ headers advertise C++11
// but they are really just C++03 with some additional C++11 headers and // but they are really just C++03 with some additional C++11 headers and
@ -250,9 +255,13 @@ typedef signed int sword32;
typedef word64 lword; typedef word64 lword;
const lword LWORD_MAX = W64LIT(0xffffffffffffffff); const lword LWORD_MAX = W64LIT(0xffffffffffffffff);
// Clang pretends to be VC++, too. // It is OK to remove the hard stop below, but you are on your own.
// See http://github.com/weidai11/cryptopp/issues/147 // After building the library be sure to run self tests described
#if defined(_MSC_VER) && defined(__clang__) // https://www.cryptopp.com/wiki/Release_Process#Self_Tests
// Some relevant bug reports can be found at:
// * Clang: http://github.com/weidai11/cryptopp/issues/147
// * Native Client: https://github.com/weidai11/cryptopp/issues/719
#if (defined(_MSC_VER) && defined(__clang__))
# error: "Unsupported configuration" # error: "Unsupported configuration"
#endif #endif
@ -470,7 +479,7 @@ NAMESPACE_END
// Apple Clang prior to 5.0 cannot handle SSE2 // Apple Clang prior to 5.0 cannot handle SSE2
#if defined(CRYPTOPP_APPLE_CLANG_VERSION) && (CRYPTOPP_APPLE_CLANG_VERSION < 50000) #if defined(CRYPTOPP_APPLE_CLANG_VERSION) && (CRYPTOPP_APPLE_CLANG_VERSION < 50000)
# define CRYPTOPP_DISABLE_ASM # define CRYPTOPP_DISABLE_ASM 1
#endif #endif
// Sun Studio 12 provides GCC inline assembly, http://blogs.oracle.com/x86be/entry/gcc_style_asm_inlining_support // Sun Studio 12 provides GCC inline assembly, http://blogs.oracle.com/x86be/entry/gcc_style_asm_inlining_support