From: Jeremy Drake <jeremyd2...@users.sourceforge.net> For the "Run extra tests with crt-test" bit (the last bit of the patch); we could run the built x86 binaries on the arm runners, but specifically the msvcrt.dll version of crt-test.exe fails one test when running emulated. (This is because the x86 emulation doesn't emulate the full 80 bit precision for x87 math.)
For simplicity, just execute the arm binaries there; we still have full test coverage as the other ones are executed on x86. Signed-off-by: Martin Storsjö <mar...@martin.st> --- .github/workflows/build.yml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9d85b71b..98e89953b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -68,8 +68,11 @@ jobs: mkdir cross cd cross - for arch in i686 x86_64; do + for arch in i686 x86_64 armv7 aarch64; do src_crt=${{matrix.crt}} + if [[ "$arch" = a* && "$src_crt" == "msvcrt" ]]; then + continue + fi if [ "$src_crt" = "ucrtbase" ]; then src_crt=ucrt fi @@ -97,10 +100,23 @@ jobs: path: | llvm-mingw-*-x86_64.zip retention-days: 7 + - uses: actions/upload-artifact@v4 + if: matrix.crt != 'msvcrt' + with: + name: windows-${{matrix.crt}}-armv7-toolchain + path: | + llvm-mingw-*-armv7.zip + retention-days: 7 + - uses: actions/upload-artifact@v4 + if: matrix.crt != 'msvcrt' + with: + name: windows-${{matrix.crt}}-aarch64-toolchain + path: | + llvm-mingw-*-aarch64.zip + retention-days: 7 test-llvm-mingw: needs: [llvm-mingw] - runs-on: windows-latest defaults: run: shell: msys2 {0} @@ -110,10 +126,18 @@ jobs: arch: - x86_64 - i686 + - aarch64 + - armv7 crt: - ucrt - ucrtbase - msvcrt + exclude: + - arch: aarch64 + crt: msvcrt + - arch: armv7 + crt: msvcrt + runs-on: ${{startsWith(matrix.arch, 'a') && 'windows-11-arm' || 'windows-latest'}} steps: - uses: msys2/setup-msys2@v2 with: @@ -156,7 +180,7 @@ jobs: $arch-w64-mingw32-clang $defs -fno-builtin test/crt-test.c -o $name-crt-first.exe -l$lib -O2 echo $name case $arch in - *86*) ./$name-regular.exe ; ./$name-crt-first.exe ;; + ${{ runner.arch == 'ARM64' && 'a*' || '*86*' }}) ./$name-regular.exe ; ./$name-crt-first.exe ;; esac done done -- 2.43.0 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public