From bbd1e63feb15c3c86113e3a52c862bc6914962e6 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Thu, 11 Jun 2026 16:19:27 +0200 Subject: [PATCH] adapt to fedora 44 --- .github/workflows/fedora.yml | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/.github/workflows/fedora.yml b/.github/workflows/fedora.yml index 3822f5c7..bd4bc1ed 100644 --- a/.github/workflows/fedora.yml +++ b/.github/workflows/fedora.yml @@ -26,8 +26,26 @@ jobs: cxx_std: 23 - cxx: clang-16 cxx_std: 23 + # Test the distro's current clang against the current libstdc++ on + # fedora:latest; the versioned-clang jobs are pinned to Fedora 43 + # (see 'container:' below). + include: + - cxx: clang + cxx_std: 17 + container: docker.io/library/fedora:latest + - cxx: clang + cxx_std: 20 + container: docker.io/library/fedora:latest + - cxx: clang + cxx_std: 23 + container: docker.io/library/fedora:latest runs-on: ubuntu-latest - container: docker.io/library/fedora:latest + # Fedora 44 ships libstdc++ from GCC 16, whose + # (hidden-friend __normal_iterator operators) does not compile with + # clang < 19: "member access into incomplete type". Pin the versioned + # clang jobs (15-18) to Fedora 43, which ships libstdc++ 15. Revisit + # the pin when the oldest tested clang is >= 19. + container: ${{ matrix.container || 'docker.io/library/fedora:43' }} steps: - name: Install Dependencies @@ -36,6 +54,10 @@ jobs: gcc) dnf install -y gcc-c++ ;; + clang) + # distro's current clang (used on fedora:latest) + dnf install -y clang gcc-c++ + ;; clang-16) # the llvm-compat-packages copr lacks clang-16 for some reason dnf install -y 'dnf-command(copr)' @@ -71,6 +93,10 @@ jobs: export CC=gcc export CXX=g++ ;; + clang) + export CC=clang + export CXX=clang++ + ;; clang-*) export CC="${{ matrix.cxx }}" export CXX="$(echo "${{ matrix.cxx }}" | sed 's/clang/clang++/')"