diff --git a/.travis.yml b/.travis.yml index 899c1ab..9dc7f6f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -136,7 +136,7 @@ matrix: - llvm-toolchain-precise-3.7 - os: linux - env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z + env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11 addons: apt: packages: @@ -146,7 +146,7 @@ matrix: - llvm-toolchain-precise-3.8 - os: linux - env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z + env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11 addons: apt: packages: diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index f2dfb40..288ebbc 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -25,8 +25,8 @@ test-suite integer [ compile static_log2_include_test.cpp ] [ compile static_min_max_include_test.cpp ] [ compile integer_fwd_include_test.cpp ] - [ compile gcd_constexpr14_test.cpp ] - [ compile gcd_noexcept_test.cpp ] + [ compile gcd_constexpr14_test.cpp ] + [ compile gcd_noexcept_test.cpp ] [ compile-fail fail_int_exact.cpp ] [ compile-fail fail_int_fast.cpp ] [ compile-fail fail_int_least.cpp ] diff --git a/test/common_factor_test.cpp b/test/common_factor_test.cpp index fa12338..b54919e 100644 --- a/test/common_factor_test.cpp +++ b/test/common_factor_test.cpp @@ -34,7 +34,9 @@ #include #endif -#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1500)) || (defined(__clang_major__) && (__clang_major__ == 3) && (__clang_minor__ < 2)) +#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1500)) || \ + (defined(__clang_major__) && (__clang_major__ == 3) && (__clang_minor__ < 2)) || \ + (defined(BOOST_GCC) && defined(BOOST_GCC_CXX11) && BOOST_GCC < 40800) #define DISABLE_MP_TESTS #endif diff --git a/test/has_gmpxx.cpp b/test/has_gmpxx.cpp index edf62d8..4d4a41c 100644 --- a/test/has_gmpxx.cpp +++ b/test/has_gmpxx.cpp @@ -5,3 +5,11 @@ #include +// On Linux, libgmpxx is built with gcc and libstdc++. When the user application, such as tests, are built against libc++, +// linking fails because of the C++ standard library symbol names mismatch. So fail the test if we're not using libstdc++. +#if defined(__linux__) || defined(__linux) || defined(linux) +#include +#if !defined(__GLIBCPP__) && !defined(__GLIBCXX__) +#error "libgmpxx is not supported on this platform with this C++ standard library" +#endif +#endif