Initially, we'd skip bundling the runtimes targeting msvcrt
for arm/aarch64, as there's no llvm-mingw prebuilt toolchains
for arm/aarch64 with that configuration.
We can still add the rebuilt target runtimes, targeting msvcrt, on
top of a toolchain that itself is built with UCRT though.
Previously, the aarch64/arm64ec msvcrt configuration was compile
tested by the x86 toolchains, where the llvm-mingw run-tests.sh
scripts test compilation for all architectures, even ones it can't
execute. However, those binaries were never test executed anywhere.
By building aarch64 toolchains that target msvcrt too, we get
testing of executing those binaries as well.
This requires preserving the original DLLs (libc++.dll, libunwind.dll)
that the toolchain itself is linked against, rather than updating
with the newly built runtimes. This, because if building msvcrt
runtimes, with a toolchain that is built for UCRT, we can't replace
the UCRT libc++.dll with a msvcrt version of it; they're not ABI
compatible.
---
.github/workflows/build.yml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index bef65cda8..0da00b569 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -71,7 +71,7 @@ jobs:
for arch in i686 x86_64 aarch64; do
src_crt=${{matrix.crt}}
if [[ "$arch" = a* && "$src_crt" == "msvcrt" ]]; then
- continue
+ src_crt=ucrt
fi
if [ "$src_crt" = "ucrtbase" ]; then
src_crt=ucrt
@@ -81,7 +81,11 @@ jobs:
rm llvm-mingw-*.zip
mv llvm-mingw-* llvm-mingw
rm -rf llvm-mingw/*-w64-mingw32 llvm-mingw/include
+ mkdir orig-dlls
+ mv llvm-mingw/bin/*.dll orig-dlls
../prepare-cross-toolchain.sh ../install/llvm-mingw llvm-mingw
$arch
+ mv orig-dlls/*.dll llvm-mingw/bin
+ rmdir orig-dlls
TAG=testing
NAME=llvm-mingw-$TAG-${{matrix.crt}}-$arch
mv llvm-mingw $NAME
@@ -101,7 +105,6 @@ jobs:
llvm-mingw-*-x86_64.zip
retention-days: 7
- uses: actions/upload-artifact@v4
- if: matrix.crt != 'msvcrt'
with:
name: windows-${{matrix.crt}}-aarch64-toolchain
path: |
@@ -124,9 +127,6 @@ jobs:
- ucrt
- ucrtbase
- msvcrt
- exclude:
- - arch: aarch64
- crt: msvcrt
runs-on: ${{startsWith(matrix.arch, 'a') && 'windows-11-arm' ||
'windows-latest'}}
steps:
- uses: msys2/setup-msys2@v2
--
2.43.0
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public