From 76ba0cfac953e542e358abda37e92a7bdd04dbab Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 15 Jun 2019 11:44:03 +0100 Subject: [PATCH 01/12] Add clang-7 testing. --- .travis.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.travis.yml b/.travis.yml index da64807c..2d01abe8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -227,6 +227,29 @@ matrix: - ubuntu-toolchain-r-test - llvm-toolchain-trusty-6.0 + - os: linux + compiler: clang++-7 + env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,1z + addons: + apt: + packages: + - clang-7 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-trusty-7 + + - os: linux + compiler: clang++-libc++ + env: TOOLSET=clang COMPILER="clang++-7 -stdlib=libc++" CXXSTD=03,11,14 + addons: + apt: + packages: + - clang-7 + - libc++-dev + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-trusty-7 + - os: osx env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z osx_image: xcode9.1 From 1cf54521a58d62d382937b53b974439afa850cc9 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 17 Jun 2019 12:51:30 +0100 Subject: [PATCH 02/12] Change clang toolchain to xenial. --- .travis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2d01abe8..94a435ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -179,7 +179,7 @@ matrix: - clang-4.0 sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-4.0 + - llvm-toolchain-xenial-4.0 - os: linux compiler: clang++-5.0 @@ -190,7 +190,7 @@ matrix: - clang-5.0 sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-5.0 + - llvm-toolchain-xenial-5.0 - os: linux compiler: clang++-libc++ @@ -202,7 +202,7 @@ matrix: - clang-5.0 sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-5.0 + - llvm-toolchain-xenial-5.0 - os: linux compiler: clang++-6.0 @@ -213,7 +213,7 @@ matrix: - clang-6.0 sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-6.0 + - llvm-toolchain-xenial-6.0 - os: linux compiler: clang++-libc++ @@ -225,7 +225,7 @@ matrix: - libc++-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-6.0 + - llvm-toolchain-xenial-6.0 - os: linux compiler: clang++-7 @@ -236,7 +236,7 @@ matrix: - clang-7 sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-7 + - llvm-toolchain-xenial-7 - os: linux compiler: clang++-libc++ @@ -248,7 +248,7 @@ matrix: - libc++-dev sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-7 + - llvm-toolchain-xenial-7 - os: osx env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z From 0bb4a1178712c68624c7f4121a2c93cf45110523 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 18 Jun 2019 18:42:30 +0100 Subject: [PATCH 03/12] tentative fixes for clang failures. --- include/boost/config/compiler/clang.hpp | 2 ++ include/boost/config/stdlib/libcpp.hpp | 2 +- test/boost_no_unicode_literals.ipp | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 52b23d9d..cad37487 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -257,8 +257,10 @@ #endif #if !__has_feature(__cxx_decltype_auto__) +#if (__clang_major__ > 3) # define BOOST_NO_CXX14_DECLTYPE_AUTO #endif +#endif #if !__has_feature(__cxx_aggregate_nsdmi__) # define BOOST_NO_CXX14_AGGREGATE_NSDMI diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index e5e5c349..0181369c 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -106,7 +106,7 @@ #define BOOST_NO_CXX17_ITERATOR_TRAITS #define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result) -#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) +#if ((_LIBCPP_VERSION <= 1101) || (_LIBCPP_VERSION == 7000)) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) // This is a bit of a sledgehammer, because really it's just libc++abi that has no // support for thread_local, leading to linker errors such as // "undefined reference to `__cxa_thread_atexit'". It is fixed in the diff --git a/test/boost_no_unicode_literals.ipp b/test/boost_no_unicode_literals.ipp index bbf865ec..84721c52 100644 --- a/test/boost_no_unicode_literals.ipp +++ b/test/boost_no_unicode_literals.ipp @@ -17,7 +17,7 @@ void quiet_warning(const CharT*){} int test() { -#ifdef _­_­cpp_­char8_­t +#ifdef __cpp_char8_type // The change to char8_t in C++20 is a breaking change to the std: const char8_t* c8 = u8""; #else From b914f2b6a897ad45e48928b87b08db6150d06882 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 19 Jun 2019 11:52:55 +0100 Subject: [PATCH 04/12] Try to correct clang defect logic. --- include/boost/config/compiler/clang.hpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index cad37487..94cce3a5 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -256,11 +256,10 @@ # define BOOST_NO_CXX14_BINARY_LITERALS #endif -#if !__has_feature(__cxx_decltype_auto__) -#if (__clang_major__ > 3) +#if !__has_feature(__cxx_decltype_auto__) && (__clang_major__ > 3) +// This fails with debug info enabled for clang 3.5: # define BOOST_NO_CXX14_DECLTYPE_AUTO #endif -#endif #if !__has_feature(__cxx_aggregate_nsdmi__) # define BOOST_NO_CXX14_AGGREGATE_NSDMI From f5a36e0fc1a4cf79bd1bd6e816f9daf5054cccca Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 19 Jun 2019 12:51:50 +0100 Subject: [PATCH 05/12] Again fix for clang logic.... --- include/boost/config/compiler/clang.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 94cce3a5..496f764f 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -256,7 +256,7 @@ # define BOOST_NO_CXX14_BINARY_LITERALS #endif -#if !__has_feature(__cxx_decltype_auto__) && (__clang_major__ > 3) +#if !__has_feature(__cxx_decltype_auto__) || (__clang_major__ < 4) // This fails with debug info enabled for clang 3.5: # define BOOST_NO_CXX14_DECLTYPE_AUTO #endif From 1c2d96012e11d068c4a65e2d008151791338a7aa Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 22 Jun 2019 08:56:06 +0100 Subject: [PATCH 06/12] Remove clang-7-libc++ for now. --- .travis.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 94a435ad..ad08b656 100644 --- a/.travis.yml +++ b/.travis.yml @@ -238,18 +238,6 @@ matrix: - ubuntu-toolchain-r-test - llvm-toolchain-xenial-7 - - os: linux - compiler: clang++-libc++ - env: TOOLSET=clang COMPILER="clang++-7 -stdlib=libc++" CXXSTD=03,11,14 - addons: - apt: - packages: - - clang-7 - - libc++-dev - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-xenial-7 - - os: osx env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z osx_image: xcode9.1 From 892b6a8e4e8f3175df111c196233c8df67764c0c Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 22 Jun 2019 16:49:42 +0100 Subject: [PATCH 07/12] CI: set distribution to xenial. --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index ad08b656..f345804d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,8 @@ language: cpp sudo: false +dist : xenial + branches: only: - master From b3c5c3a442fbddce4cb5423c4fc132f9c524ddfe Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 22 Jun 2019 18:01:26 +0100 Subject: [PATCH 08/12] CI: correct clang-libc++ invocation. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f345804d..2023a5a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -196,7 +196,7 @@ matrix: - os: linux compiler: clang++-libc++ - env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z + env: TOOLSET=clang COMPILER="clang++-5.0 -stdlib=libc++" CXXSTD=03,11,14 addons: apt: packages: From 1c712d0bf039e08d8726fb092a25f4312ee2655a Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 23 Jun 2019 08:46:45 +0100 Subject: [PATCH 09/12] clang-3.5: another try at figuring which auto expression is failing. --- include/boost/config/compiler/clang.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 496f764f..96235394 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -269,7 +269,7 @@ # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES #endif -#if !__has_feature(__cxx_generic_lambdas__) +#if !__has_feature(__cxx_generic_lambdas__) || (__clang_major__ < 4) # define BOOST_NO_CXX14_GENERIC_LAMBDAS #endif From d5046fd9e5e52481a0d39c048fe82c82d655a22a Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 23 Jun 2019 08:56:25 +0100 Subject: [PATCH 10/12] clang-3.5: disable more stuff using auto. --- include/boost/config/compiler/clang.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 96235394..7e0a7044 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -291,7 +291,7 @@ # define BOOST_NO_CXX14_CONSTEXPR #endif -#if !__has_feature(__cxx_return_type_deduction__) +#if !__has_feature(__cxx_return_type_deduction__) || (__clang_major__ < 4) # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION #endif From 21a37b6c4ce860ff407d24624b9783131665d164 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 23 Jun 2019 18:07:18 +0100 Subject: [PATCH 11/12] CI: revert changes for clang-3.x and revert to using trusty, clang-3.x seems to have too many issues with xenial. --- .travis.yml | 10 ++++++++++ include/boost/config/compiler/clang.hpp | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2023a5a7..8e5b5946 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,7 @@ matrix: env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11 - os: linux + dist: trusty compiler: g++-4.4 env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x addons: @@ -38,6 +39,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + dist: trusty compiler: g++-4.6 env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x addons: @@ -48,6 +50,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + dist: trusty env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11 addons: apt: @@ -57,6 +60,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + dist: trusty env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11 addons: apt: @@ -66,6 +70,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + dist: trusty env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11 addons: apt: @@ -123,6 +128,7 @@ matrix: env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11 - os: linux + dist: trusty env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z addons: apt: @@ -133,6 +139,7 @@ matrix: - llvm-toolchain-precise-3.5 - os: linux + dist: trusty env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z addons: apt: @@ -143,6 +150,7 @@ matrix: - llvm-toolchain-precise-3.6 - os: linux + dist: trusty env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z addons: apt: @@ -153,6 +161,7 @@ matrix: - llvm-toolchain-precise-3.7 - os: linux + dist: trusty env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z addons: apt: @@ -163,6 +172,7 @@ matrix: - llvm-toolchain-precise-3.8 - os: linux + dist: trusty env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z addons: apt: diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 7e0a7044..496f764f 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -269,7 +269,7 @@ # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES #endif -#if !__has_feature(__cxx_generic_lambdas__) || (__clang_major__ < 4) +#if !__has_feature(__cxx_generic_lambdas__) # define BOOST_NO_CXX14_GENERIC_LAMBDAS #endif @@ -291,7 +291,7 @@ # define BOOST_NO_CXX14_CONSTEXPR #endif -#if !__has_feature(__cxx_return_type_deduction__) || (__clang_major__ < 4) +#if !__has_feature(__cxx_return_type_deduction__) # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION #endif From a9003307983e5557b8fb337daa57a5447124ded0 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 24 Jun 2019 09:08:18 +0100 Subject: [PATCH 12/12] CI: Revert no longer needed defines. --- include/boost/config/compiler/clang.hpp | 3 +-- include/boost/config/stdlib/libcpp.hpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 496f764f..52b23d9d 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -256,8 +256,7 @@ # define BOOST_NO_CXX14_BINARY_LITERALS #endif -#if !__has_feature(__cxx_decltype_auto__) || (__clang_major__ < 4) -// This fails with debug info enabled for clang 3.5: +#if !__has_feature(__cxx_decltype_auto__) # define BOOST_NO_CXX14_DECLTYPE_AUTO #endif diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index 0181369c..e5e5c349 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -106,7 +106,7 @@ #define BOOST_NO_CXX17_ITERATOR_TRAITS #define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result) -#if ((_LIBCPP_VERSION <= 1101) || (_LIBCPP_VERSION == 7000)) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) +#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) // This is a bit of a sledgehammer, because really it's just libc++abi that has no // support for thread_local, leading to linker errors such as // "undefined reference to `__cxa_thread_atexit'". It is fixed in the