From dd47b4b59ef9646c4122fffb72df9072d66bfd9f Mon Sep 17 00:00:00 2001 From: Nikita Kniazev Date: Wed, 3 Apr 2019 02:42:11 +0300 Subject: [PATCH 01/26] Print config info via b2 Simplifies CI build scripts. Allows having CI builds with multiple options like `address-model=32,64`. --- .travis.yml | 4 +--- appveyor.bat | 12 ------------ appveyor.yml | 2 +- test/Jamfile.v2 | 22 ++++++++++++++++++---- 4 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 appveyor.bat diff --git a/.travis.yml b/.travis.yml index da64807c..67c3998b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -271,9 +271,7 @@ script: - if [ $TEST_INTEL ]; then source ~/.bashrc; fi - |- echo "using $TOOLSET : : $COMPILER : $EXTRA_FLAGS $EXTRA_FLAGS ;" > ~/user-config.jam - - IFS=',' - - for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL $CXXSTD_DIALECT && echo With Standard Version $CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done - - unset IFS + - ./b2 libs/config/test//print_config_info toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT - ./b2 -j3 libs/config/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT notifications: diff --git a/appveyor.bat b/appveyor.bat deleted file mode 100644 index fb6d5279..00000000 --- a/appveyor.bat +++ /dev/null @@ -1,12 +0,0 @@ -IF NOT DEFINED CXXSTD ( -ECHO %ARGS:"=% -..\..\..\b2 config_info_travis_install %ARGS:"=% -config_info_travis -del config_info_travis.exe -) -IF DEFINED CXXSTD FOR %%A IN (%CXXSTD%) DO ( -ECHO %ARGS:"=% -..\..\..\b2 -a -d2 config_info_travis_install %ARGS:"=% cxxstd=%%A -config_info_travis -del config_info_travis.exe -) \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index a6fdbc9c..7a145a3c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -65,5 +65,5 @@ build: off test_script: - cd libs\config\test - - ..\appveyor.bat + - ..\..\..\b2 print_config_info %ARGS% cxxstd=%CXXSTD% - ..\..\..\b2 -j3 %ARGS% cxxstd=%CXXSTD% diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 41aadf1b..b786c322 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -8,6 +8,7 @@ # the template defined in options_v2.jam. # +import feature ; import testing ; project @@ -114,7 +115,20 @@ obj has_clang_implicit_fallthrough : cmd_line_check.cpp : explicit has_clang_implicit_fallthrough ; -exe config_info_travis : config_info.cpp ; -install config_info_travis_install : config_info_travis : . ; -explicit config_info_travis_install ; -explicit config_info_travis ; +exe config_info_printer : config_info.cpp ; +explicit config_info_printer ; + +actions print-run +{ + echo With Standard Version $(STANDARD:E=default) + echo ===================================================================== + $(>) +} + +rule print-run ( target : sources * : properties * ) +{ + STANDARD on $(target) = [ feature.get-values : $(properties) ] ; +} + +notfile print_config_info : @print-run : config_info_printer ; +explicit print_config_info ; From 4f82c11ce8db01a6bf42e04072b45be64749901d Mon Sep 17 00:00:00 2001 From: Neale Ferguson Date: Thu, 25 Apr 2019 12:29:16 -0400 Subject: [PATCH 02/26] Add s390 --- checks/architecture/Jamroot.jam | 1 + checks/architecture/s390.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 checks/architecture/s390.cpp diff --git a/checks/architecture/Jamroot.jam b/checks/architecture/Jamroot.jam index 03f59534..b43ae600 100644 --- a/checks/architecture/Jamroot.jam +++ b/checks/architecture/Jamroot.jam @@ -22,3 +22,4 @@ obj power : power.cpp ; obj riscv : riscv.cpp ; obj sparc : sparc.cpp ; obj x86 : x86.cpp ; +obj s390 : s390.cpp ; diff --git a/checks/architecture/s390.cpp b/checks/architecture/s390.cpp new file mode 100644 index 00000000..3d948653 --- /dev/null +++ b/checks/architecture/s390.cpp @@ -0,0 +1,11 @@ +// s390.cpp +// +// Copyright (c) 2012 Steven Watanabe +// +// Distributed under the Boost Software License Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#if !defined(__s390__) +#error "Not S390" +#endif From b62dd43cc046e2bd6eb5fe3a58404f96493fee16 Mon Sep 17 00:00:00 2001 From: Neale Ferguson Date: Fri, 26 Apr 2019 09:04:06 -0400 Subject: [PATCH 03/26] Change s390 -> s390x --- checks/architecture/Jamroot.jam | 2 +- checks/architecture/s390.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/checks/architecture/Jamroot.jam b/checks/architecture/Jamroot.jam index b43ae600..0d3b5e7b 100644 --- a/checks/architecture/Jamroot.jam +++ b/checks/architecture/Jamroot.jam @@ -22,4 +22,4 @@ obj power : power.cpp ; obj riscv : riscv.cpp ; obj sparc : sparc.cpp ; obj x86 : x86.cpp ; -obj s390 : s390.cpp ; +obj s390x : s390x.cpp ; diff --git a/checks/architecture/s390.cpp b/checks/architecture/s390.cpp index 3d948653..a3630706 100644 --- a/checks/architecture/s390.cpp +++ b/checks/architecture/s390.cpp @@ -1,4 +1,4 @@ -// s390.cpp +// s390x.cpp // // Copyright (c) 2012 Steven Watanabe // @@ -6,6 +6,6 @@ // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) -#if !defined(__s390__) -#error "Not S390" +#if !defined(__s390x__) +#error "Not S390x" #endif From a18911902dff03f37582696a13bf60768c183c55 Mon Sep 17 00:00:00 2001 From: "James E. King III" Date: Tue, 14 May 2019 08:47:13 -0400 Subject: [PATCH 04/26] Enable auto link support for clang on windows (clang-win) (clang-cl) --- appveyor.yml | 4 ++++ include/boost/config/auto_link.hpp | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index a6fdbc9c..eecf74f9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -22,6 +22,10 @@ environment: ARGS: --toolset=msvc-14.1 address-model=32 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest cxxflags=-permissive- + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + ARGS: --toolset=clang-win address-model=64 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + ARGS: --toolset=clang-win address-model=32 - ARGS: --toolset=msvc-9.0 address-model=32 - ARGS: --toolset=msvc-10.0 address-model=32 - ARGS: --toolset=msvc-11.0 address-model=32 diff --git a/include/boost/config/auto_link.hpp b/include/boost/config/auto_link.hpp index d0079d9b..e74f3c10 100644 --- a/include/boost/config/auto_link.hpp +++ b/include/boost/config/auto_link.hpp @@ -99,7 +99,8 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. #if defined(BOOST_MSVC) \ || defined(__BORLANDC__) \ || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) + || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) \ + || (defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4)) #ifndef BOOST_VERSION_HPP # include @@ -203,6 +204,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // Metrowerks CodeWarrior 9.x # define BOOST_LIB_TOOLSET "cw9" +# elif defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4) + + // Clang on Windows +# define BOOST_LIB_TOOLSET "clangw" BOOST_STRINGIZE(__clang_major__) + # endif #endif // BOOST_LIB_TOOLSET From 76ba0cfac953e542e358abda37e92a7bdd04dbab Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 15 Jun 2019 11:44:03 +0100 Subject: [PATCH 05/26] 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 06/26] 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 07/26] 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 08/26] 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 09/26] 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 10/26] 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 11/26] 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 12/26] 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 13/26] 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 14/26] 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 15/26] 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 16/26] 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 From 0f6b79fe1f6b8f4bafffa9f7ed730061bb252c24 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 26 Jun 2019 09:37:13 +0100 Subject: [PATCH 17/26] Add gcc-9, clang-8, xcode-10 to test matrix. --- .travis.yml | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7b9e9655..5b38f3bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -124,6 +124,17 @@ matrix: sources: - ubuntu-toolchain-r-test + - os: linux + dist: trusty + compiler: g++-9 + env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a + addons: + apt: + packages: + - g++-9 + sources: + - ubuntu-toolchain-r-test + - os: linux env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11 @@ -250,9 +261,24 @@ matrix: - ubuntu-toolchain-r-test - llvm-toolchain-xenial-7 + - os: linux + compiler: clang++-8 + env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17,2a + addons: + apt: + packages: + - clang-8 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-xenial-8 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,17,2a + osx_image: xcode10.2 + - os: osx env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z - osx_image: xcode9.1 + osx_image: xcode9.4 - os: osx env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z From 890d569350e430a985d2704fe9b90ebc22a31ffb Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 26 Jun 2019 13:11:49 +0100 Subject: [PATCH 18/26] Add rule for backwards compatibility. --- test/Jamfile.v2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index b786c322..ee765055 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -132,3 +132,6 @@ rule print-run ( target : sources * : properties * ) notfile print_config_info : @print-run : config_info_printer ; explicit print_config_info ; +# Backwards compatibility: +alias config_info_travis : print_config_info ; +explicit config_info_travis ; From 6409132b3635f160a1c40dfec617c19f356ec277 Mon Sep 17 00:00:00 2001 From: Michael Caisse Date: Wed, 26 Jun 2019 07:37:43 -0700 Subject: [PATCH 19/26] fix file name to match expected --- checks/architecture/{s390.cpp => s390x.cpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename checks/architecture/{s390.cpp => s390x.cpp} (100%) diff --git a/checks/architecture/s390.cpp b/checks/architecture/s390x.cpp similarity index 100% rename from checks/architecture/s390.cpp rename to checks/architecture/s390x.cpp From ab3807ef837a63e7bb0ff5059c8bde4286bc8f2d Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 26 Jun 2019 18:11:29 +0100 Subject: [PATCH 20/26] Revert "Print config info via b2" This reverts commit dd47b4b59ef9646c4122fffb72df9072d66bfd9f. # Conflicts: # test/Jamfile.v2 --- .travis.yml | 4 +++- appveyor.bat | 12 ++++++++++++ appveyor.yml | 2 +- test/Jamfile.v2 | 23 +++-------------------- 4 files changed, 19 insertions(+), 22 deletions(-) create mode 100644 appveyor.bat diff --git a/.travis.yml b/.travis.yml index 7b9e9655..8e5b5946 100644 --- a/.travis.yml +++ b/.travis.yml @@ -294,7 +294,9 @@ script: - if [ $TEST_INTEL ]; then source ~/.bashrc; fi - |- echo "using $TOOLSET : : $COMPILER : $EXTRA_FLAGS $EXTRA_FLAGS ;" > ~/user-config.jam - - ./b2 libs/config/test//print_config_info toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT + - IFS=',' + - for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL $CXXSTD_DIALECT && echo With Standard Version $CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done + - unset IFS - ./b2 -j3 libs/config/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT notifications: diff --git a/appveyor.bat b/appveyor.bat new file mode 100644 index 00000000..fb6d5279 --- /dev/null +++ b/appveyor.bat @@ -0,0 +1,12 @@ +IF NOT DEFINED CXXSTD ( +ECHO %ARGS:"=% +..\..\..\b2 config_info_travis_install %ARGS:"=% +config_info_travis +del config_info_travis.exe +) +IF DEFINED CXXSTD FOR %%A IN (%CXXSTD%) DO ( +ECHO %ARGS:"=% +..\..\..\b2 -a -d2 config_info_travis_install %ARGS:"=% cxxstd=%%A +config_info_travis +del config_info_travis.exe +) \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 445ac97e..eecf74f9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -69,5 +69,5 @@ build: off test_script: - cd libs\config\test - - ..\..\..\b2 print_config_info %ARGS% cxxstd=%CXXSTD% + - ..\appveyor.bat - ..\..\..\b2 -j3 %ARGS% cxxstd=%CXXSTD% diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index ee765055..41aadf1b 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -8,7 +8,6 @@ # the template defined in options_v2.jam. # -import feature ; import testing ; project @@ -115,23 +114,7 @@ obj has_clang_implicit_fallthrough : cmd_line_check.cpp : explicit has_clang_implicit_fallthrough ; -exe config_info_printer : config_info.cpp ; -explicit config_info_printer ; - -actions print-run -{ - echo With Standard Version $(STANDARD:E=default) - echo ===================================================================== - $(>) -} - -rule print-run ( target : sources * : properties * ) -{ - STANDARD on $(target) = [ feature.get-values : $(properties) ] ; -} - -notfile print_config_info : @print-run : config_info_printer ; -explicit print_config_info ; -# Backwards compatibility: -alias config_info_travis : print_config_info ; +exe config_info_travis : config_info.cpp ; +install config_info_travis_install : config_info_travis : . ; +explicit config_info_travis_install ; explicit config_info_travis ; From 089e3749fdfc06a18f9677fcdda65addbe322e90 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 27 Jun 2019 08:34:47 +0100 Subject: [PATCH 21/26] Correct usage of std::memory_order in test case. Otherwise it fails in C++20. --- test/boost_no_cxx11_hdr_atomic.ipp | 126 +++++++++++++++-------------- 1 file changed, 66 insertions(+), 60 deletions(-) diff --git a/test/boost_no_cxx11_hdr_atomic.ipp b/test/boost_no_cxx11_hdr_atomic.ipp index 171dcc3d..ceabb650 100644 --- a/test/boost_no_cxx11_hdr_atomic.ipp +++ b/test/boost_no_cxx11_hdr_atomic.ipp @@ -21,72 +21,78 @@ namespace boost_no_cxx11_hdr_atomic { -int test() -{ - std::memory_order m = static_cast(std::memory_order_relaxed | std::memory_order_consume | std::memory_order_acquire | std::memory_order_release - | std::memory_order_acq_rel | std::memory_order_seq_cst); - (void)m; + void consume(std::memory_order) + {} - std::atomic a1; - std::atomic a2; - std::atomic a3; - a1.is_lock_free(); - a1.store(1); - a1.load(); - a1.exchange(2); - int v; - a1.compare_exchange_weak(v, 2, std::memory_order_relaxed, std::memory_order_relaxed); - a1.compare_exchange_strong(v, 2, std::memory_order_relaxed, std::memory_order_relaxed); - a1.fetch_add(2); - a1.fetch_sub(3); - a1.fetch_and(3); - a1.fetch_or(1); - a1.fetch_xor(1); - a1++; - ++a1; - a1--; - --a1; - a1 += 2; - a1 -= 2; - a1 &= 1; - a1 |= 2; - a1 ^= 3; + int test() + { + consume(std::memory_order_relaxed); + consume(std::memory_order_consume); + consume(std::memory_order_acquire); + consume(std::memory_order_release); + consume(std::memory_order_acq_rel); + consume(std::memory_order_seq_cst); - a2 = 0u; + std::atomic a1; + std::atomic a2; + std::atomic a3; + a1.is_lock_free(); + a1.store(1); + a1.load(); + a1.exchange(2); + int v; + a1.compare_exchange_weak(v, 2, std::memory_order_relaxed, std::memory_order_relaxed); + a1.compare_exchange_strong(v, 2, std::memory_order_relaxed, std::memory_order_relaxed); + a1.fetch_add(2); + a1.fetch_sub(3); + a1.fetch_and(3); + a1.fetch_or(1); + a1.fetch_xor(1); + a1++; + ++a1; + a1--; + --a1; + a1 += 2; + a1 -= 2; + a1 &= 1; + a1 |= 2; + a1 ^= 3; - a3.store(&v); - a3.fetch_add(1); - a3.fetch_sub(1); - ++a3; - --a3; - a3++; - a3--; - a3 += 1; - a3 -= 1; + a2 = 0u; - std::atomic_is_lock_free(&a1); - // This produces linker errors on Mingw32 for some reason, probably not required anyway for most uses?? - //std::atomic_init(&a1, 2); - std::atomic_store(&a1, 3); - std::atomic_store_explicit(&a1, 3, std::memory_order_relaxed); - std::atomic_load(&a1); - std::atomic_load_explicit(&a1, std::memory_order_relaxed); - std::atomic_exchange(&a1, 3); - std::atomic_compare_exchange_weak(&a1, &v, 2); - std::atomic_compare_exchange_strong(&a1, &v, 2); - std::atomic_compare_exchange_weak_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed); - std::atomic_compare_exchange_strong_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed); + a3.store(&v); + a3.fetch_add(1); + a3.fetch_sub(1); + ++a3; + --a3; + a3++; + a3--; + a3 += 1; + a3 -= 1; - std::atomic_flag f = ATOMIC_FLAG_INIT; - f.test_and_set(std::memory_order_relaxed); - f.test_and_set(); - f.clear(std::memory_order_relaxed); - f.clear(); + std::atomic_is_lock_free(&a1); + // This produces linker errors on Mingw32 for some reason, probably not required anyway for most uses?? + //std::atomic_init(&a1, 2); + std::atomic_store(&a1, 3); + std::atomic_store_explicit(&a1, 3, std::memory_order_relaxed); + std::atomic_load(&a1); + std::atomic_load_explicit(&a1, std::memory_order_relaxed); + std::atomic_exchange(&a1, 3); + std::atomic_compare_exchange_weak(&a1, &v, 2); + std::atomic_compare_exchange_strong(&a1, &v, 2); + std::atomic_compare_exchange_weak_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed); + std::atomic_compare_exchange_strong_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_relaxed); - std::atomic_signal_fence(std::memory_order_relaxed); + std::atomic_flag f = ATOMIC_FLAG_INIT; + f.test_and_set(std::memory_order_relaxed); + f.test_and_set(); + f.clear(std::memory_order_relaxed); + f.clear(); - return 0; -} + std::atomic_thread_fence(std::memory_order_relaxed); + std::atomic_signal_fence(std::memory_order_relaxed); + + return 0; + } } From 10c5df0159e9bd04f58c1def0263a54362a8e506 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 27 Jun 2019 12:48:00 +0100 Subject: [PATCH 22/26] Update char8_t tests and print out C++20 feature macros. --- test/boost_no_unicode_literals.ipp | 2 +- test/config_info.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/test/boost_no_unicode_literals.ipp b/test/boost_no_unicode_literals.ipp index 84721c52..0faf9b7d 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_type +#if defined(__cpp_char8_type) || defined(__cpp_char8_t) // The change to char8_t in C++20 is a breaking change to the std: const char8_t* c8 = u8""; #else diff --git a/test/config_info.cpp b/test/config_info.cpp index bb3ef249..37fd1359 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1273,6 +1273,16 @@ void print_sd6_macros() { // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0096r5.html + // C++20: + PRINT_MACRO(__cpp_aggregate_paren_init); + PRINT_MACRO(__cpp_char8_t); + PRINT_MACRO(__cpp_char8_type); + PRINT_MACRO(__cpp_conditional_explicit); + PRINT_MACRO(__cpp_coroutines); + PRINT_MACRO(__cpp_impl_destroying_delete); + PRINT_MACRO(__cpp_impl_three_way_comparison); + PRINT_MACRO(__cpp_nontype_template_parameter_class); + // C++17: PRINT_MACRO(__cpp_hex_float); PRINT_MACRO(__cpp_inline_variables); From baf3a25a65f5a6d344137e298d88af5f4d917b66 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 27 Jun 2019 18:14:33 +0100 Subject: [PATCH 23/26] Update config_info.cpp. --- test/config_info.cpp | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/test/config_info.cpp b/test/config_info.cpp index 37fd1359..f5ec470d 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1231,25 +1231,6 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_USING_TEMPLATE); PRINT_MACRO(BOOST_NO_VOID_RETURNS); - - - - - - - - - - - - - - - - - - - // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); @@ -1267,6 +1248,10 @@ void print_boost_macros() PRINT_MACRO(BOOST_FALLTHROUGH); PRINT_MACRO(BOOST_MAY_ALIAS); PRINT_MACRO(BOOST_NO_MAY_ALIAS); + PRINT_MACRO(BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS); + PRINT_MACRO(BOOST_ATTRIBUTE_UNUSED); + PRINT_MACRO(BOOST_UNLIKELY); + PRINT_MACRO(BOOST_NORETURN); } void print_sd6_macros() From 8d58766c7b097ecdf99d414cc08feec313741332 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Fri, 28 Jun 2019 08:32:47 +0100 Subject: [PATCH 24/26] gcc: exclude attribute definition for gcc in C++03 mode. Even though __has_attribute reports true for gcc-9. --- include/boost/config/detail/suffix.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/config/detail/suffix.hpp b/include/boost/config/detail/suffix.hpp index 2550239c..86f6081e 100644 --- a/include/boost/config/detail/suffix.hpp +++ b/include/boost/config/detail/suffix.hpp @@ -999,7 +999,7 @@ namespace std{ using ::type_info; } #if __has_cpp_attribute(nodiscard) # define BOOST_ATTRIBUTE_NODISCARD [[nodiscard]] #endif -#if __has_cpp_attribute(no_unique_address) +#if __has_cpp_attribute(no_unique_address) && !(defined(__GNUC__) && (__cplusplus < 201100)) # define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS [[no_unique_address]] #endif #endif From 23e245f5d07cc194754860471d6235679cb2faba Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Fri, 28 Jun 2019 18:27:23 +0100 Subject: [PATCH 25/26] Revert "Revert "Print config info via b2"" This reverts commit ab3807ef837a63e7bb0ff5059c8bde4286bc8f2d. --- .travis.yml | 4 +--- appveyor.bat | 12 ------------ appveyor.yml | 2 +- test/Jamfile.v2 | 23 ++++++++++++++++++++--- 4 files changed, 22 insertions(+), 19 deletions(-) delete mode 100644 appveyor.bat diff --git a/.travis.yml b/.travis.yml index ee6321d3..5b38f3bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -320,9 +320,7 @@ script: - if [ $TEST_INTEL ]; then source ~/.bashrc; fi - |- echo "using $TOOLSET : : $COMPILER : $EXTRA_FLAGS $EXTRA_FLAGS ;" > ~/user-config.jam - - IFS=',' - - for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL $CXXSTD_DIALECT && echo With Standard Version $CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done - - unset IFS + - ./b2 libs/config/test//print_config_info toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT - ./b2 -j3 libs/config/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT notifications: diff --git a/appveyor.bat b/appveyor.bat deleted file mode 100644 index fb6d5279..00000000 --- a/appveyor.bat +++ /dev/null @@ -1,12 +0,0 @@ -IF NOT DEFINED CXXSTD ( -ECHO %ARGS:"=% -..\..\..\b2 config_info_travis_install %ARGS:"=% -config_info_travis -del config_info_travis.exe -) -IF DEFINED CXXSTD FOR %%A IN (%CXXSTD%) DO ( -ECHO %ARGS:"=% -..\..\..\b2 -a -d2 config_info_travis_install %ARGS:"=% cxxstd=%%A -config_info_travis -del config_info_travis.exe -) \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index eecf74f9..445ac97e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -69,5 +69,5 @@ build: off test_script: - cd libs\config\test - - ..\appveyor.bat + - ..\..\..\b2 print_config_info %ARGS% cxxstd=%CXXSTD% - ..\..\..\b2 -j3 %ARGS% cxxstd=%CXXSTD% diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 41aadf1b..ee765055 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -8,6 +8,7 @@ # the template defined in options_v2.jam. # +import feature ; import testing ; project @@ -114,7 +115,23 @@ obj has_clang_implicit_fallthrough : cmd_line_check.cpp : explicit has_clang_implicit_fallthrough ; -exe config_info_travis : config_info.cpp ; -install config_info_travis_install : config_info_travis : . ; -explicit config_info_travis_install ; +exe config_info_printer : config_info.cpp ; +explicit config_info_printer ; + +actions print-run +{ + echo With Standard Version $(STANDARD:E=default) + echo ===================================================================== + $(>) +} + +rule print-run ( target : sources * : properties * ) +{ + STANDARD on $(target) = [ feature.get-values : $(properties) ] ; +} + +notfile print_config_info : @print-run : config_info_printer ; +explicit print_config_info ; +# Backwards compatibility: +alias config_info_travis : print_config_info ; explicit config_info_travis ; From 5dcae72f8e6d80f24dacce1c6ed4386035bf96a7 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 29 Jun 2019 08:44:12 +0100 Subject: [PATCH 26/26] Improve backwards compatibility for other libraries that use config_info_install target. --- test/Jamfile.v2 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index ee765055..cfc42ade 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -132,6 +132,9 @@ rule print-run ( target : sources * : properties * ) notfile print_config_info : @print-run : config_info_printer ; explicit print_config_info ; + # Backwards compatibility: -alias config_info_travis : print_config_info ; -explicit config_info_travis ; +exe config_info_travis : config_info.cpp ; +install config_info_travis_install : config_info_travis : . ; +explicit config_info_travis_install ; +