2222 strategy :
2323 matrix :
2424 # Build each combination of OS and release/debug variants
25- os : [ "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "ubuntu- 24.04-arm" ]
25+ os : [ "ubuntu-24.04", "ubuntu-22.04", "ubuntu-24.04-arm" ]
2626 build-type : [ "Release", "Debug" ]
2727 # Extra cmake flags. GitHub Actions matrix overloads `include` to mean
2828 # 'add extra things to a job' and 'add jobs'. You can add extra things
4343 variant : " C++17"
4444 build-type : " Debug"
4545 extra-cmake-flags : " -DSNMALLOC_USE_CXX17=ON"
46- - os : " ubuntu-20.04"
47- variant : " C++17"
48- build-type : " Debug"
49- extra-cmake-flags : " -DSNMALLOC_USE_CXX17=ON"
5046 # Add the self-host build, using the bounds-checked memcpy in
5147 # maximally paranoid mode (checking loads and stores)
5248 - os : " ubuntu-24.04"
@@ -72,20 +68,15 @@ jobs:
7268 extra-cmake-flags : " -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS=-stdlib=libstdc++"
7369 build-only : yes
7470 # Replay some of the above tests with clang-10 specifically
75- - os : " ubuntu-20.04"
76- variant : " clang-10 (with pthread destructors)."
77- build-type : Debug
78- self-host : true
79- extra-cmake-flags : " -DSNMALLOC_USE_PTHREAD_DESTRUCTORS=On -DCMAKE_CXX_COMPILER=clang++-10 -DCMAKE_C_COMPILER=clang-10"
80- - os : " ubuntu-20.04"
71+ - os : " ubuntu-22.04"
8172 variant : " Traced Build"
8273 build-type : Release
8374 extra-cmake-flags : " -DSNMALLOC_TRACING=On"
8475 build-only : yes
85- - os : " ubuntu-20 .04"
86- variant : " clang-10 libstdc++ (Build only)"
76+ - os : " ubuntu-22 .04"
77+ variant : " clang + libstdc++ (Build only)"
8778 build-type : Release
88- extra-cmake-flags : " -DCMAKE_CXX_COMPILER=clang++-10 -DCMAKE_C_COMPILER=clang-10 -DCMAKE_CXX_FLAGS=-stdlib=libstdc++"
79+ extra-cmake-flags : " -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_FLAGS=-stdlib=libstdc++"
8980 build-only : yes
9081 # Don't abort runners if a single one fails
9182 fail-fast : false
@@ -310,13 +301,16 @@ jobs:
310301 rtld : ld-linux-aarch64.so.1
311302 ld-flavour : lld
312303 host-os : ubuntu-24.04
313- - name : ppc64el
314- system-processor : powerpc64le
315- triple : powerpc64le-linux-gnu
316- rtld : ld64.so.2
317- ld-flavour : lld
318- # See https://github.com/microsoft/snmalloc/issues/576
319- host-os : ubuntu-20.04
304+ # DISABLED as 20.04 is not supported anymore,
305+ # and it appears the qemu bug persists in 24.04
306+ # See https://github.com/microsoft/snmalloc/issues/576
307+ # - name: ppc64el
308+ # system-processor: powerpc64le
309+ # triple: powerpc64le-linux-gnu
310+ # rtld: ld64.so.2
311+ # ld-flavour: lld
312+ # # See https://github.com/microsoft/snmalloc/issues/576
313+ # host-os: ubuntu-24.04
320314 - name : riscv64
321315 system-processor : riscv64
322316 triple : riscv64-linux-gnu
@@ -331,21 +325,11 @@ jobs:
331325 name : Crossbuild - ${{matrix.build-type}} cross-build for ${{ matrix.arch.triple }}
332326 steps :
333327 - uses : actions/checkout@v4
334- - name : " Install cross-compile toolchain and QEMU (ubuntu-20.04)"
335- # Install the dependencies and clang 13. Earlier versions of clang don't
336- # find the multilib things for this week's Ubuntu filesystem layout.
337- if : matrix.arch.host-os == 'ubuntu-20.04'
338- run : |
339- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
340- sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main"
341- sudo apt update
342- sudo apt install libstdc++-9-dev-${{ matrix.arch.name }}-cross qemu-user ninja-build clang-13 lld-13
343- sudo apt install ${{matrix.arch.extra-packages}}
344328 - name : " Install cross-compile toolchain and QEMU (ubuntu-24.04)"
345329 if : matrix.arch.host-os == 'ubuntu-24.04'
346330 run : |
347331 sudo apt update
348- sudo apt install libstdc++-12-dev-${{ matrix.arch.name }}-cross qemu-user ninja-build
332+ sudo apt install libstdc++-12-dev-${{ matrix.arch.name }}-cross qemu-user ninja-build binfmt-support
349333 sudo apt install ${{matrix.arch.extra-packages}}
350334 - name : Reconfigure for PowerPC64LE
351335 if : startsWith(matrix.arch.triple, 'powerpc64le')
0 commit comments