From d99fd71ff090bcab3d4569a7f30458a6b0f573fe Mon Sep 17 00:00:00 2001 From: Mathias Preiner Date: Tue, 25 Sep 2018 17:33:48 -0700 Subject: [PATCH] cmake: Add check for GCC 4.5.1 and warn user. (#2533) --- CMakeLists.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 453f1bcf7..3eced0885 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -216,6 +216,24 @@ endif() # allow calling ctest from the root build directory. enable_testing() +#-----------------------------------------------------------------------------# +# Check GCC version. +# +# GCC version 4.5.1 builds MiniSat incorrectly with -O2, which results in +# incorrect answers. + +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -dumpversion + OUTPUT_VARIABLE GCC_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + if(GCC_VERSION VERSION_EQUAL "4.5.1") + message(FATAL_ERROR + "GCC 4.5.1's optimizer is known to build MiniSat incorrectly " + "(and by extension CVC4).") + endif() +endif() + #-----------------------------------------------------------------------------# # Check options, find packages and configure build. -- 2.30.2