Commit 39ce9160c8 for openssl.org

commit 39ce9160c861ec4799aa77a52e6e1aeb6d22ec0f
Author: Milan Broz <gmazyland@gmail.com>
Date:   Wed Apr 22 16:12:45 2026 +0200

    ci: Enable MINGW63/32 builkd matrix with strict warnings

    And also enable demos to 64bit cover compilation of these.

    Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
    Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
    Reviewed-by: Norbert Pocs <norbertp@openssl.org>
    MergeDate: Thu Apr 30 11:42:36 2026
    (Merged from https://github.com/openssl/openssl/pull/30941)

diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 8dfea36077..ce86f8021c 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -236,13 +236,23 @@ jobs:
 #      run: bash -c "cd openssl && make V=1 test"

   mingw64:
+    strategy:
+      matrix:
+        platform:
+          - arch: mingw64
+            target: x86_64
+            #  Avoid MINGW bug in headers. Remove when CI is upgraded.
+            config: enable-demos -Wno-array-bounds
+          - arch: mingw
+            target: i686
+            config: -Wno-array-bounds -Wno-stringop-overflow
     runs-on: ubuntu-latest
     env:
-      CC: x86_64-w64-mingw32-gcc
-      CXX: x86_64-w64-mingw32-g++
-      AR: x86_64-w64-mingw32-ar
-      RANLIB: x86_64-w64-mingw32-ranlib
-      RC: x86_64-w64-mingw32-windres
+      CC: ${{ matrix.platform.target }}-w64-mingw32-gcc
+      CXX: ${{ matrix.platform.target }}-w64-mingw32-g++
+      AR: ${{ matrix.platform.target }}-w64-mingw32-ar
+      RANLIB: ${{ matrix.platform.target }}-w64-mingw32-ranlib
+      RC: ${{ matrix.platform.target }}-w64-mingw32-windres
     steps:
     - uses: actions/checkout@v6
       with:
@@ -250,16 +260,26 @@ jobs:
     - name: install MINGW64
       run: sudo apt-get install -y mingw-w64
     - name: config
-# Once fixed, enable strict-warnings
-#      run: ./config --strict-warnings --banner=Configured mingw64
-      run: ./config --banner=Configured mingw64
+      run: ./config ${{ matrix.platform.arch }}  --strict-warnings --banner=Configured ${{ matrix.platform.config }}
     - name: make
       run: make -j4 -s

   msys2-mingw64:
+    strategy:
+      matrix:
+        platform:
+          - arch: UCRT64
+            cc: gcc
+            pkgs:  mingw-w64-ucrt-x86_64-gcc
+            config: mingw64 enable-demos
+          - arch: CLANG64
+            cc: clang
+            pkgs: mingw-w64-clang-x86_64-clang
+            config: mingw64
     runs-on: windows-latest
     env:
-      MSYSTEM: UCRT64
+      CC: ${{ matrix.platform.cc }}
+      MSYSTEM: ${{ matrix.platform.arch }}
       CHERE_INVOKING: 'yes'
     steps:
       - uses: actions/checkout@v6
@@ -282,12 +302,10 @@ jobs:
           C:\msys64\usr\bin\bash.exe -lc 'pacman --noconfirm -Syuu'

       - name: install dependencies
-        run: C:\msys64\usr\bin\bash.exe -lc 'pacman --noconfirm -S --needed perl git make mingw-w64-ucrt-x86_64-gcc'
+        run: C:\msys64\usr\bin\bash.exe -lc 'pacman --noconfirm -S --needed perl git make ${{ matrix.platform.pkgs }}'

       - name: config
-# Once fixed, enable strict-warnings
-#       run: C:\msys64\usr\bin\bash.exe -lc './config --strict-warnings --banner=Configured mingw64'
-        run: C:\msys64\usr\bin\bash.exe -lc './config --banner=Configured mingw64'
+        run: C:\msys64\usr\bin\bash.exe -lc './config --strict-warnings --banner=Configured ${{ matrix.platform.config }}'

       - name: make
         run: C:\msys64\usr\bin\bash.exe -lc 'make -j4 -s'