From: Vsevolod Stakhov Date: Fri, 20 Dec 2019 14:07:54 +0000 (+0000) Subject: [Minor] Fix fast math usage X-Git-Tag: 2.3~193 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=151f6d05f04cc97cc9031c2bdd281303f9f0173a;p=thirdparty%2Frspamd.git [Minor] Fix fast math usage --- diff --git a/cmake/Toolset.cmake b/cmake/Toolset.cmake index f96fc39f9a..dc4b17bf5b 100644 --- a/cmake/Toolset.cmake +++ b/cmake/Toolset.cmake @@ -1,15 +1,21 @@ option (ENABLE_FAST_MATH "Build rspamd with fast math compiler flag [default: ON]" ON) -SET (COMPILER_FAST_MATH "") -if (ENABLE_FAST_MATH MATCHES "ON") - SET (COMPILER_FAST_MATH "-ffast-math") -endif () - if(CMAKE_C_COMPILER_ID STREQUAL "GNU") SET (COMPILER_GCC 1) elseif(CMAKE_C_COMPILER_ID MATCHES "Clang|AppleClang") SET (COMPILER_CLANG 1) endif() + +SET (COMPILER_FAST_MATH "") +if (ENABLE_FAST_MATH MATCHES "ON") + # We need to keep nans and infinities, so cannot keep all fast math there + IF (COMPILER_CLANG) + SET (COMPILER_FAST_MATH "-fassociative-math -freciprocal-math -fno-signed-zeros -ffp-contract=fast") + ELSE() + SET (COMPILER_FAST_MATH "-funsafe-math-optimizations -fno-math-errno") + ENDIF () +endif () + if (CMAKE_GENERATOR STREQUAL "Ninja") # Turn on colored output. https://github.com/ninja-build/ninja/wiki/FAQ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")