From: Mark Abraham Date: Tue, 13 May 2014 14:16:44 +0000 (+0200) Subject: Prohibit AVX_256 with buggy gcc 4.6.1 X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=310d6352bc58c8f073d773c119a579b588828e9e;p=alexxy%2Fgromacs.git Prohibit AVX_256 with buggy gcc 4.6.1 Fixes #1259 Change-Id: I7c523a90ccd0dd8fd3df6cb1914429e22a27ab5d --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 269f763321..e69ee1ef72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -312,6 +312,18 @@ if (${CMAKE_C_COMPILER_ID} MATCHES "Clang" AND C_COMPILER_VERSION VERSION_LESS " set(GMX_USE_CLANG_FMA_BUG_WORKAROUND TRUE) endif() +# GMX_CPU_ACCELERATION will not be set automatically until the second +# pass (which is not strictly guaranteed to occur), so putting this +# check here among logically-related tests is inefficient, but the +# potential loss is likely zero. +if(GMX_CPU_ACCELERATION STREQUAL "AVX_256" + AND CMAKE_COMPILER_IS_GNUCC + AND (C_COMPILER_VERSION VERSION_EQUAL "4.6.1" + OR CXX_COMPILER_VERSION VERSION_EQUAL "4.6.1")) + message(FATAL_ERROR "gcc 4.6.1 has buggy support for AVX, and GROMACS mdrun will not work. If you want simulation performance, use a more recent compiler. Otherwise, use GMX_CPU_ACCELERATION=SSE4.1") + # See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49002 +endif() + if (CMAKE_C_COMPILER_ID STREQUAL "PGI") message(WARNING "All tested PGI compiler versions (up to 12.9.0) generate binaries which produce incorrect results, or even fail to compile Gromacs. Highly recommended to use a different compiler. If you choose to use PGI, make sure to run the regressiontests.") endif()