From c55a20dff226a7a44a2a616ca787b973dafce9cc Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Fri, 2 Jul 2021 19:14:04 +0300 Subject: [PATCH] Reverted gcc package removal and instead setup a dummy gcc toolset tree. Removing gcc and libstdc++ packages did not fix the clang-8 test failures. Instead, setup a dummy gcc toolset tree and point clang to it to force the compiler detect and use an older libstdc++. --- .github/workflows/ci.yml | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 79390e3..f5cff93 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,8 +102,8 @@ jobs: compiler: clang++-8 cxxstd: "03,11,14,17,2a" os: ubuntu-18.04 - purge: gcc-10 g++-10 libstdc++-10-dev install: clang-8 + gcc_toolchain: 9 - toolset: clang compiler: clang++-9 cxxstd: "03,11,14,17,2a" @@ -130,16 +130,24 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Purge packages - if: matrix.purge - run: sudo apt-get purge ${{matrix.purge}} - - name: Install packages if: matrix.install run: | sudo apt-get update sudo apt-get install ${{matrix.install}} + - name: Setup GCC Toolchain + if: matrix.gcc_toolchain + run: | + GCC_TOOLCHAIN_ROOT="$HOME/gcc-toolchain" + echo "GCC_TOOLCHAIN_ROOT=\"$GCC_TOOLCHAIN_ROOT\"" >> $GITHUB_ENV + MULTIARCH_TRIPLET="$(dpkg-architecture -qDEB_HOST_MULTIARCH)" + mkdir -p "$GCC_TOOLCHAIN_ROOT" + ln -s /usr/include "$GCC_TOOLCHAIN_ROOT/include" + ln -s /usr/bin "$GCC_TOOLCHAIN_ROOT/bin" + mkdir -p "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET" + ln -s "/usr/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}" "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}" + - name: Setup Boost run: | echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY @@ -165,7 +173,12 @@ jobs: - name: Create user-config.jam if: matrix.compiler run: | - echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam + echo -n "using ${{matrix.toolset}} : : ${{matrix.compiler}}" > ~/user-config.jam + if [ -n "$GCC_TOOLCHAIN_ROOT" ] + then + echo -n " : \"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" \"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam + fi + echo " ;" >> ~/user-config.jam - name: Run tests run: |