diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 52f8ae97..acc38f66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -169,7 +169,7 @@ jobs: run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17 toolset=msvc-14.0 working-directory: ../boost-root/libs/config/test windows_msvc_14_2: - runs-on: windows-latest + runs-on: windows-2019 defaults: run: shell: cmd @@ -201,10 +201,48 @@ jobs: run: b2 headers working-directory: ../boost-root - name: Config info - run: ..\..\..\b2 print_config_info cxxstd=14,17,20 address-model=64 toolset=msvc-14.2 + run: ..\..\..\b2 print_config_info cxxstd=14,17,latest address-model=64 toolset=msvc-14.2 working-directory: ../boost-root/libs/config/test - name: Test - run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,20 toolset=msvc-14.2 + run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,latest toolset=msvc-14.2 + working-directory: ../boost-root/libs/config/test + windows_msvc_14_3: + runs-on: windows-2022 + defaults: + run: + shell: cmd + strategy: + fail-fast: false + matrix: + toolset: [ msvc-14.3 ] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: mstachniuk/ci-skip@v1 + with: + commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' + commit-filter-separator: ';' + fail-fast: true + - name: Checkout main boost + run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + - name: Update Dependencies + run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits + working-directory: ../boost-root + - name: Copy files + run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config + working-directory: ../boost-root + - name: Bootstrap + run: bootstrap + working-directory: ../boost-root + - name: Generate headers + run: b2 headers + working-directory: ../boost-root + - name: Config info + run: ..\..\..\b2 print_config_info cxxstd=14,17,latest address-model=64 toolset=msvc-14.3 + working-directory: ../boost-root/libs/config/test + - name: Test + run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,latest toolset=msvc-14.3 working-directory: ../boost-root/libs/config/test non_intel_ubuntu_20_04_gcc: runs-on: ubuntu-20.04 @@ -356,3 +394,61 @@ jobs: source ../emsdk/emsdk_env.sh emcc -pthread -s EXIT_RUNTIME=1 -s PTHREAD_POOL_SIZE=32 -s DISABLE_EXCEPTION_CATCHING=0 -I. -O3 -o config_test_pthread libs/config/test/config_test.cpp node --experimental-wasm-threads --experimental-wasm-bulk-memory config_test_pthread + ubuntu-cuda: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + std: [ 11, 14, 17 ] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: mstachniuk/ci-skip@v1 + with: + commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' + commit-filter-separator: ';' + fail-fast: true + - uses: Jimver/cuda-toolkit@v0.2.4 + - name: Add repository + run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" + - name: Install packages + run: sudo apt install g++-11 clang-11 + - name: Checkout main boost + run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + - name: Update Dependencies + run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits + working-directory: ../boost-root + - name: Copy files + run: cp -r $GITHUB_WORKSPACE/* libs/config + working-directory: ../boost-root + - name: Bootstrap + run: ./bootstrap.sh + working-directory: ../boost-root + - name: Generate headers + run: ./b2 headers + working-directory: ../boost-root + - name: nvcc version + run: nvcc --version + working-directory: ../boost-root/libs/config/test + - name: Config info nvcc + run: nvcc -std=c++${{ matrix.std }} -o config_info -I../../.. config_info.cpp && ./config_info + working-directory: ../boost-root/libs/config/test + - name: Config_test nvcc + run: nvcc -std=c++${{ matrix.std }} -o config_test -I../../.. config_test.cpp && ./config_test + working-directory: ../boost-root/libs/config/test + - name: Config_test nvcc-cuda + run: nvcc -c -std=c++${{ matrix.std }} -I../../.. config_test.cu + working-directory: ../boost-root/libs/config/test + - name: Config info nvcc+clang + run: nvcc -std=c++${{ matrix.std }} --compiler-bindir=clang++ -o config_info -I../../.. config_info.cpp && ./config_info + working-directory: ../boost-root/libs/config/test + - name: Config_test nvcc+clang + run: nvcc -std=c++${{ matrix.std }} --compiler-bindir=clang++ -o config_test -I../../.. config_test.cpp -latomic && ./config_test + working-directory: ../boost-root/libs/config/test + - name: Config_test nvcc-cuda+clang + run: nvcc -c -std=c++${{ matrix.std }} --compiler-bindir=clang++ -I../../.. config_test.cu + working-directory: ../boost-root/libs/config/test + - name: Config_test clang-cuda + run: clang++ -nocudalib --no-cuda-version-check -c --cuda-gpu-arch=sm_75 -std=c++${{ matrix.std }} -I../../.. config_test.cu + working-directory: ../boost-root/libs/config/test diff --git a/include/boost/config/auto_link.hpp b/include/boost/config/auto_link.hpp index 78abce6a..64dee1ef 100644 --- a/include/boost/config/auto_link.hpp +++ b/include/boost/config/auto_link.hpp @@ -182,11 +182,16 @@ BOOST_LIB_SUFFIX: Static/import libraries extension (".lib", ".a") for the c // vc14.1: # define BOOST_LIB_TOOLSET "vc141" -# elif defined(BOOST_MSVC) +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1930) // vc14.2: # define BOOST_LIB_TOOLSET "vc142" +# elif defined(BOOST_MSVC) + + // vc14.3: +# define BOOST_LIB_TOOLSET "vc143" + # elif defined(BOOST_EMBTC_WINDOWS) // Embarcadero Clang based compilers: diff --git a/include/boost/config/compiler/nvcc.hpp b/include/boost/config/compiler/nvcc.hpp index ed035fcf..419dd724 100644 --- a/include/boost/config/compiler/nvcc.hpp +++ b/include/boost/config/compiler/nvcc.hpp @@ -22,6 +22,7 @@ // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device #define BOOST_GPU_ENABLED __host__ __device__ +#if !defined(__clang__) || defined(__NVCC__) // A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions // https://svn.boost.org/trac/boost/ticket/11897 // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance @@ -38,6 +39,8 @@ # define BOOST_NO_CXX11_CONSTEXPR #endif +#endif + #ifdef __CUDACC__ // // When compiing .cu files, there's a bunch of stuff that doesn't work with msvc: diff --git a/include/boost/config/detail/suffix.hpp b/include/boost/config/detail/suffix.hpp index 50c28df8..a6e287c7 100644 --- a/include/boost/config/detail/suffix.hpp +++ b/include/boost/config/detail/suffix.hpp @@ -476,11 +476,14 @@ namespace std { #endif // -// If we're on a CUDA device (note DEVICE not HOST, irrespective of compiler) then disable __float128 support if present: +// If we're on a CUDA device (note DEVICE not HOST, irrespective of compiler) then disable __int128 and __float128 support if present: // #if defined(__CUDA_ARCH__) && defined(BOOST_HAS_FLOAT128) # undef BOOST_HAS_FLOAT128 #endif +#if defined(__CUDA_ARCH__) && defined(BOOST_HAS_INT128) +# undef BOOST_HAS_INT128 +#endif // long long workaround ------------------------------------------// // On gcc (and maybe other compilers?) long long is alway supported diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index c7daab1f..fe4a48d2 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -157,6 +157,9 @@ #if !defined(__cpp_lib_semaphore) || (__cpp_lib_semaphore < 201907L) # define BOOST_NO_CXX20_HDR_SEMAPHORE #endif +#if !defined(__cpp_lib_concepts) || (__cpp_lib_concepts < 202002L) +# define BOOST_NO_CXX20_HDR_CONCEPTS +#endif #if(_LIBCPP_VERSION < 9000) && !defined(BOOST_NO_CXX20_HDR_SPAN) // as_writable_bytes is missing. diff --git a/test/config_info.cpp b/test/config_info.cpp index 7a39e4c3..4a2de132 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1294,6 +1294,9 @@ void print_boost_macros() #if __has_include() # include #endif +#if __has_include() && (BOOST_CXX_VERSION > 201100) +# include +#endif #endif void print_sd6_macros() @@ -1494,6 +1497,18 @@ void print_sd6_macros() // C++98: PRINT_MACRO(__cpp_rtti); PRINT_MACRO(__cpp_exceptions); + + // : + PRINT_MACRO(ATOMIC_INT_LOCK_FREE); + PRINT_MACRO(ATOMIC_SHORT_LOCK_FREE); + PRINT_MACRO(ATOMIC_LONG_LOCK_FREE); + PRINT_MACRO(ATOMIC_LLONG_LOCK_FREE); + PRINT_MACRO(ATOMIC_POINTER_LOCK_FREE); + PRINT_MACRO(ATOMIC_CHAR_LOCK_FREE); + PRINT_MACRO(ATOMIC_WCHAR_T_LOCK_FREE); + PRINT_MACRO(ATOMIC_CHAR8_T_LOCK_FREE); + PRINT_MACRO(ATOMIC_CHAR16_T_LOCK_FREE); + PRINT_MACRO(ATOMIC_CHAR32_T_LOCK_FREE); } void print_separator()