From 4fef2951e3ef1dee2aa46849e20aef8a3431c343 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Wed, 23 Aug 2017 04:37:05 -0400 Subject: [PATCH] Test remove -march=native Also see "Random crashes on different computers because option -march=native is active 'by default'", https://github.com/weidai11/cryptopp/issues/380 --- .appveyor.yml | 22 +++++++++++++++++----- CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 2ef03f51..c8bb619c 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -30,15 +30,27 @@ test_script: - cmd: >- - msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptlib.vcxproj + IF "%BUILD_MODE%"=="CMake" ( - msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptest.vcxproj + mkdir cmake-build - msbuild /t:CopyCryptestToRoot cryptest.vcxproj + cd cmake-build - cryptest.exe v + cmake ../ - cryptest.exe tv all + ) else ( + + msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptlib.vcxproj + + msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptest.vcxproj + + msbuild /t:CopyCryptestToRoot cryptest.vcxproj + + cryptest.exe v + + cryptest.exe tv all + + ) notifications: - provider: Email diff --git a/CMakeLists.txt b/CMakeLists.txt index 35c96d2a..573213c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,12 +75,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Intel") add_definitions(-wd68 -wd186 -wd279 -wd327 -wd161 -wd3180) endif() -# Endianness -TEST_BIG_ENDIAN(IS_BIG_ENDIAN) -if(IS_BIG_ENDIAN) - add_definitions(-DIS_BIG_ENDIAN) -endif() - # Also see http://github.com/weidai11/cryptopp/issues/395 if(DISABLE_ASM) add_definitions(-DCRYPTOPP_DISABLE_ASM) @@ -305,6 +299,39 @@ if(MSVC AND NOT DISABLE_ASM) endif() endif() +#============================================================================ +# Architecture flags +#============================================================================ + +# New as of Pull Request 461, http://github.com/weidai11/cryptopp/pull/461. +# These are hard coded for X86 at the moment. We need to fix them. +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" Or "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + set_source_files_properties(aria-simd.cpp PROPERTIES COMPILE_FLAGS -mssse3) + set_source_files_properties(blake2-simd.cpp PROPERTIES COMPILE_FLAGS -msse4.2) + set_source_files_properties(crc-simd.cpp PROPERTIES COMPILE_FLAGS -msse4.2) + set_source_files_properties(gcm-simd.cpp PROPERTIES COMPILE_FLAGS -mssse3 -mpclmul) + set_source_files_properties(rijndael-simd.cpp PROPERTIES COMPILE_FLAGS -msse4.1 -maes) + set_source_files_properties(sha-simd.cpp PROPERTIES COMPILE_FLAGS -msse4.2 -msha) + set_source_files_properties(shacal2-simd.cpp PROPERTIES COMPILE_FLAGS -msse4.2 -msha) + + # ARMv8 + # set_source_files_properties(aria-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a) + # set_source_files_properties(blake2-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a) + # set_source_files_properties(crc-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a+crc) + # set_source_files_properties(gcm-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a+crypto) + # set_source_files_properties(neon-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a) + # set_source_files_properties(rijndael-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a+crypto) + # set_source_files_properties(sha-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a+crypto) + # set_source_files_properties(shacal2-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv8-a+crypto) + + # ARMv7 + # Need to set floating point ABI to something, like "hard". Most Linux use hard floats. + # set_source_files_properties(aria-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon) + # set_source_files_properties(blake2-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon) + # set_source_files_properties(gcm-simd.cpp PROPERTIES COMPILE_FLAGS -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon) + # set_source_files_properties(neon-simd.cpp PROPERTIES COMPILE_FLAGS -mfloat-abi=$(FP_ABI) -mfpu=neon) +endif() + #============================================================================ # Compile targets #============================================================================