Make the compiler requirement clearer.

* configure.ac: Check for g++ 4.6 bugs, so we catch
the error at compile time, not make time.
* README: Mention the minimal g++ and clang++ versions.
This commit is contained in:
Alexandre Duret-Lutz 2015-02-04 15:55:52 +01:00
parent ee0b8e4ea8
commit 2a3c126c15
2 changed files with 9 additions and 2 deletions

3
README
View file

@ -29,6 +29,7 @@ Requirements
------------ ------------
Spot requires a C++11-compliant compiler. Spot requires a C++11-compliant compiler.
G++ 4.8 or later, as well as Clang++3.5 or later should work.
Spot expects a complete installation of Python (version 2.0 or later). Spot expects a complete installation of Python (version 2.0 or later).
Especially, Python's headers files should be installed. If you don't Especially, Python's headers files should be installed. If you don't
@ -38,8 +39,6 @@ configure with the --disable-python option (see below).
Optional third-party dependencies Optional third-party dependencies
---------------------------------- ----------------------------------
If the SAT-solver glucose is found on your system, it will If the SAT-solver glucose is found on your system, it will
be used by our test suite to test our SAT-based minimization be used by our test suite to test our SAT-based minimization
algorithm. algorithm.

View file

@ -75,6 +75,8 @@ CXXFLAGS="$CXXFLAGS -DSPOT_BUILD"
m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody],
[AC_LANG_SOURCE([#include <memory> [AC_LANG_SOURCE([#include <memory>
#include <string> #include <string>
#include <chrono> // fails with some installation of clang
#include <map>
template <typename T> template <typename T>
struct check struct check
@ -94,6 +96,12 @@ m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody],
check_type&& cr = static_cast<check_type&&>(c); check_type&& cr = static_cast<check_type&&>(c);
auto d = a; auto d = a;
void test_emplace()
{
std::map<int, int> m;
m.emplace(1, 2); // fails with g++ 4.6
}
])]) ])])
for f in -std=c++11 '-std=c++11 -stdlib=libc++' -std=c++0x for f in -std=c++11 '-std=c++11 -stdlib=libc++' -std=c++0x