From b1b7f7c63de916b3f54a7d7d54e7778e9a44dd09 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Thu, 15 Aug 2024 20:00:21 +0300 Subject: [PATCH 1/2] Raised compiler requirements for Boost.Multiprecision tests. This is needed to avoid compilation errors caused by Boost.Math, as it requires a C++14 compiler now. --- test/multiprecision_config.hpp | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/test/multiprecision_config.hpp b/test/multiprecision_config.hpp index afc214ba..6fc18fd4 100644 --- a/test/multiprecision_config.hpp +++ b/test/multiprecision_config.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2018 Andrey Semashev +// Copyright (c) 2018, 2024 Andrey Semashev // // Use, modification, and distribution is subject to the Boost Software // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -8,25 +8,11 @@ #define BOOST_INTEGER_TEST_MULTIPRECISION_CONFIG_HPP_INCLUDED_ #include -#include -#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 - -// This list of checks matches those in Boost.Multiprecision, boost/multiprecision/detail/number_base.hpp, -// as it no longer supports C++03 since 2021. -#if !defined(DISABLE_MP_TESTS) && \ - (\ - defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) || defined(BOOST_NO_CXX11_HDR_ARRAY) || defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)\ - || defined(BOOST_NO_CXX11_ALLOCATOR) || defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) || defined(BOOST_NO_CXX11_CONSTEXPR)\ - || (defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) || BOOST_WORKAROUND(__SUNPRO_CC, < 0x5140)) || defined(BOOST_NO_CXX11_REF_QUALIFIERS) || defined(BOOST_NO_CXX11_HDR_FUNCTIONAL)\ - || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_NO_CXX11_USER_DEFINED_LITERALS) || defined(BOOST_NO_CXX11_THREAD_LOCAL)\ - || defined(BOOST_NO_CXX11_DECLTYPE) || defined(BOOST_NO_CXX11_STATIC_ASSERT) || defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)\ - || defined(BOOST_NO_CXX11_NOEXCEPT) || defined(BOOST_NO_CXX11_REF_QUALIFIERS)\ - ) +// Boost.Multiprecision requires a number of C++11 features, see boost/multiprecision/detail/check_cpp11_config.hpp. +// Also, Boost.Multiprecision internally uses Boost.Math, which requires C++14 and a recent enough MSVC, see boost/math/tools/config.hpp. +#if (BOOST_CXX_VERSION < 201402) || \ + (defined(_MSC_VER) && (_MSC_VER <= 1900)) #define DISABLE_MP_TESTS #endif From f1d7f7f80ff01682f27e8ba06c74f28c470d5a12 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Thu, 15 Aug 2024 21:25:21 +0300 Subject: [PATCH 2/2] Removed legacy MinGW from AppVeyor CI. Looks like gcc 5 that is installed in MinGW on AppVeyor CI is not compiled with C99 standard library enabled, which results in C++11 std::to_string functions not being available. These functions are required by Boost.Multiprecision. Since legacy MinGW is quite outdated and increasingly poorly supported across Boost libraries, remove it from CI rather than adding yet another special case for disabling Boost.Multiprecision tests. --- appveyor.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 6ce3fa8b..717056c7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -42,10 +42,6 @@ environment: CXXSTD: 11,14,1z ADDPATH: C:\cygwin64\bin; APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - - TOOLSET: gcc - CXXSTD: 11,14,1z - ADDPATH: C:\mingw\bin; - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - TOOLSET: gcc CXXSTD: 11,14,1z ADDPATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;