Re: [PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-11-17 Thread Daniel P . Berrangé
On Wed, Nov 17, 2021 at 01:52:57PM +, Alex Bennée wrote:
> 
> Philippe Mathieu-Daudé  writes:
> 
> > On 11/16/21 08:05, Marc-André Lureau wrote:
> >> Hi
> >> 
> >> On Mon, Nov 15, 2021 at 6:31 PM Philippe Mathieu-Daudé  >> > wrote:
> >> 
> >> On 11/15/21 15:06, Thomas Huth wrote:
> >> > Gitlab also provides runners with Windows, we can use them to
> >> > test compilation with MSYS2, in both, 64-bit and 32-bit.
> >> >
> >> > However, it takes quite a long time to set up the VM, so to
> >> > stay in the 1h time frame, we can only compile and check one
> >> > target here.
> >> 
> >> 
> >> I wonder why gitlab does not offer the docker executor. On the
> >> freedesktop gitlab instance, they have windows docker executor, which
> >> speeds up the build time. Maybe we could also have our own Windows
> >> runner for qemu?
> >
> > We could, foss.org provides the QEMU project with x86 VMs resources
> > we are not using. What we miss is a sysadmin willing to setup &
> > maintain a such runner.
> 
> I think we might also have Azure credits from MS, but the same issues
> about admin and setup probably exist.

I've never explored this in any way, but IIUC, Azure should have
ability to run *windows* containers. If that's possible, then we
could avoid the admin burden of a VM and just use throwaway windows
containers as we do for Linux.

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|




Re: [PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-11-17 Thread Alex Bennée


Philippe Mathieu-Daudé  writes:

> On 11/16/21 08:05, Marc-André Lureau wrote:
>> Hi
>> 
>> On Mon, Nov 15, 2021 at 6:31 PM Philippe Mathieu-Daudé > > wrote:
>> 
>> On 11/15/21 15:06, Thomas Huth wrote:
>> > Gitlab also provides runners with Windows, we can use them to
>> > test compilation with MSYS2, in both, 64-bit and 32-bit.
>> >
>> > However, it takes quite a long time to set up the VM, so to
>> > stay in the 1h time frame, we can only compile and check one
>> > target here.
>> 
>> 
>> I wonder why gitlab does not offer the docker executor. On the
>> freedesktop gitlab instance, they have windows docker executor, which
>> speeds up the build time. Maybe we could also have our own Windows
>> runner for qemu?
>
> We could, foss.org provides the QEMU project with x86 VMs resources
> we are not using. What we miss is a sysadmin willing to setup &
> maintain a such runner.

I think we might also have Azure credits from MS, but the same issues
about admin and setup probably exist.

-- 
Alex Bennée



Re: [PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-11-16 Thread Philippe Mathieu-Daudé
On 11/16/21 08:05, Marc-André Lureau wrote:
> Hi
> 
> On Mon, Nov 15, 2021 at 6:31 PM Philippe Mathieu-Daudé  > wrote:
> 
> On 11/15/21 15:06, Thomas Huth wrote:
> > Gitlab also provides runners with Windows, we can use them to
> > test compilation with MSYS2, in both, 64-bit and 32-bit.
> >
> > However, it takes quite a long time to set up the VM, so to
> > stay in the 1h time frame, we can only compile and check one
> > target here.
> 
> 
> I wonder why gitlab does not offer the docker executor. On the
> freedesktop gitlab instance, they have windows docker executor, which
> speeds up the build time. Maybe we could also have our own Windows
> runner for qemu?

We could, foss.org provides the QEMU project with x86 VMs resources
we are not using. What we miss is a sysadmin willing to setup &
maintain a such runner.



Re: [PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-11-15 Thread Marc-André Lureau
Hi

On Mon, Nov 15, 2021 at 6:31 PM Philippe Mathieu-Daudé 
wrote:

> On 11/15/21 15:06, Thomas Huth wrote:
> > Gitlab also provides runners with Windows, we can use them to
> > test compilation with MSYS2, in both, 64-bit and 32-bit.
> >
> > However, it takes quite a long time to set up the VM, so to
> > stay in the 1h time frame, we can only compile and check one
> > target here.
>

I wonder why gitlab does not offer the docker executor. On the freedesktop
gitlab instance, they have windows docker executor, which speeds up the
build time. Maybe we could also have our own Windows runner for qemu?

>
> > Signed-off-by: Thomas Huth 
> > ---
> >  "make check" recently broke on MSYS2, and nobody noticed since
> apparently
> >  hardly anybody looks at the cirrus-CI output ... so here's another try
> >  to get some more test coverage in this area in the gitlab-CI instead.
> >  Patch needs to be applied after the "tests/unit/test-smp-parse:
> >  Make an unified name for the tested machine" patch to get "make check"
> >  fixed first.
> >
> >  RFC -> v1:
> >  - Use cache to speed up installation a little bit
> >  - Add a 32-bit builder, too
> >
> >  .gitlab-ci.d/qemu-project.yml |  1 +
> >  .gitlab-ci.d/windows.yml  | 98 +++
> >  2 files changed, 99 insertions(+)
> >  create mode 100644 .gitlab-ci.d/windows.yml
> >
> > diff --git a/.gitlab-ci.d/qemu-project.yml
> b/.gitlab-ci.d/qemu-project.yml
> > index b3d79bc429..871262fe0e 100644
> > --- a/.gitlab-ci.d/qemu-project.yml
> > +++ b/.gitlab-ci.d/qemu-project.yml
> > @@ -11,3 +11,4 @@ include:
> >- local: '/.gitlab-ci.d/static_checks.yml'
> >- local: '/.gitlab-ci.d/custom-runners.yml'
> >- local: '/.gitlab-ci.d/cirrus.yml'
> > +  - local: '/.gitlab-ci.d/windows.yml'
> > diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
> > new file mode 100644
> > index 00..309f7e7fb8
> > --- /dev/null
> > +++ b/.gitlab-ci.d/windows.yml
> > @@ -0,0 +1,98 @@
> > +.shared_msys2_builder:
> > +  tags:
> > +  - shared-windows
> > +  - windows
> > +  - windows-1809
> > +  cache:
> > +key: "${CI_JOB_NAME}-cache"
>
> It would be nice to cache the shared 'before_script' part,
> but it doesn't seems trivial; meanwhile this patch works and
> is KISS, so:
>
> Reviewed-by: Philippe Mathieu-Daudé 
>
> > +paths:
> > +  - ${CI_PROJECT_DIR}/msys64/var/cache
> > +  needs: []
> > +  stage: build
> > +  timeout: 70m
> > +  before_script:
> > +  - If ( !(Test-Path -Path msys64\var\cache ) ) {
> > +  mkdir msys64\var\cache
> > +}
> > +  - If ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) {
> > +  Invoke-WebRequest
> > +  "
> https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-base-x86_64-20210725.sfx.exe
> "
> > +  -outfile "msys64\var\cache\msys2.exe"
> > +}
> > +  - msys64\var\cache\msys2.exe -y
> > +  - ((Get-Content -path .\msys64\etc\\post-install\\07-pacman-key.post
> -Raw)
> > +  -replace '--refresh-keys', '--version') |
> > + Set-Content -Path ${CI_PROJECT_DIR}\msys64\etc\\post-install\\
> 07-pacman-key.post
> > +  - .\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g'
> /etc/pacman.conf"
> > +  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Core update
> > +  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Normal
> update
> > +  - taskkill /F /FI "MODULES eq msys-2.0.dll"
> > +
> > +msys2-64bit:
> > +  extends: .shared_msys2_builder
> > +  script:
> > +  - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
> > +  diffutils git grep make sed
> > +  mingw-w64-x86_64-capstone
> [...]
>
>

-- 
Marc-André Lureau


[PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-11-15 Thread Thomas Huth
Gitlab also provides runners with Windows, we can use them to
test compilation with MSYS2, in both, 64-bit and 32-bit.

However, it takes quite a long time to set up the VM, so to
stay in the 1h time frame, we can only compile and check one
target here.

Signed-off-by: Thomas Huth 
---
 "make check" recently broke on MSYS2, and nobody noticed since apparently
 hardly anybody looks at the cirrus-CI output ... so here's another try
 to get some more test coverage in this area in the gitlab-CI instead.
 Patch needs to be applied after the "tests/unit/test-smp-parse:
 Make an unified name for the tested machine" patch to get "make check"
 fixed first.

 RFC -> v1:
 - Use cache to speed up installation a little bit
 - Add a 32-bit builder, too

 .gitlab-ci.d/qemu-project.yml |  1 +
 .gitlab-ci.d/windows.yml  | 98 +++
 2 files changed, 99 insertions(+)
 create mode 100644 .gitlab-ci.d/windows.yml

diff --git a/.gitlab-ci.d/qemu-project.yml b/.gitlab-ci.d/qemu-project.yml
index b3d79bc429..871262fe0e 100644
--- a/.gitlab-ci.d/qemu-project.yml
+++ b/.gitlab-ci.d/qemu-project.yml
@@ -11,3 +11,4 @@ include:
   - local: '/.gitlab-ci.d/static_checks.yml'
   - local: '/.gitlab-ci.d/custom-runners.yml'
   - local: '/.gitlab-ci.d/cirrus.yml'
+  - local: '/.gitlab-ci.d/windows.yml'
diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
new file mode 100644
index 00..309f7e7fb8
--- /dev/null
+++ b/.gitlab-ci.d/windows.yml
@@ -0,0 +1,98 @@
+.shared_msys2_builder:
+  tags:
+  - shared-windows
+  - windows
+  - windows-1809
+  cache:
+key: "${CI_JOB_NAME}-cache"
+paths:
+  - ${CI_PROJECT_DIR}/msys64/var/cache
+  needs: []
+  stage: build
+  timeout: 70m
+  before_script:
+  - If ( !(Test-Path -Path msys64\var\cache ) ) {
+  mkdir msys64\var\cache
+}
+  - If ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) {
+  Invoke-WebRequest
+  
"https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-base-x86_64-20210725.sfx.exe;
+  -outfile "msys64\var\cache\msys2.exe"
+}
+  - msys64\var\cache\msys2.exe -y
+  - ((Get-Content -path .\msys64\etc\\post-install\\07-pacman-key.post -Raw)
+  -replace '--refresh-keys', '--version') |
+ Set-Content -Path 
${CI_PROJECT_DIR}\msys64\etc\\post-install\\07-pacman-key.post
+  - .\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' 
/etc/pacman.conf"
+  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Core update
+  - .\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Normal update
+  - taskkill /F /FI "MODULES eq msys-2.0.dll"
+
+msys2-64bit:
+  extends: .shared_msys2_builder
+  script:
+  - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
+  diffutils git grep make sed
+  mingw-w64-x86_64-capstone
+  mingw-w64-x86_64-curl
+  mingw-w64-x86_64-cyrus-sasl
+  mingw-w64-x86_64-gcc
+  mingw-w64-x86_64-glib2
+  mingw-w64-x86_64-gnutls
+  mingw-w64-x86_64-libnfs
+  mingw-w64-x86_64-libpng
+  mingw-w64-x86_64-libssh
+  mingw-w64-x86_64-libtasn1
+  mingw-w64-x86_64-libusb
+  mingw-w64-x86_64-libxml2
+  mingw-w64-x86_64-nettle
+  mingw-w64-x86_64-ninja
+  mingw-w64-x86_64-pixman
+  mingw-w64-x86_64-pkgconf
+  mingw-w64-x86_64-python
+  mingw-w64-x86_64-SDL2
+  mingw-w64-x86_64-SDL2_image
+  mingw-w64-x86_64-snappy
+  mingw-w64-x86_64-usbredir
+  mingw-w64-x86_64-zstd "
+  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
+  - $env:MSYSTEM = 'MINGW64' # Start a 64 bit Mingw environment
+  - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
+  --enable-capstone=system'
+  - .\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
+  - .\msys64\usr\bin\bash -lc 'make -j2'
+  - .\msys64\usr\bin\bash -lc 'make check'
+
+msys2-32bit:
+  extends: .shared_msys2_builder
+  script:
+  - .\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
+  diffutils git grep make sed
+  mingw-w64-i686-capstone
+  mingw-w64-i686-curl
+  mingw-w64-i686-cyrus-sasl
+  mingw-w64-i686-gcc
+  mingw-w64-i686-glib2
+  mingw-w64-i686-gnutls
+  mingw-w64-i686-gtk3
+  mingw-w64-i686-libgcrypt
+  mingw-w64-i686-libjpeg-turbo
+  mingw-w64-i686-libssh
+  mingw-w64-i686-libtasn1
+  mingw-w64-i686-libusb
+  mingw-w64-i686-libxml2
+  mingw-w64-i686-lzo2
+  mingw-w64-i686-ninja
+  mingw-w64-i686-pixman
+  mingw-w64-i686-pkgconf
+  mingw-w64-i686-python
+  mingw-w64-i686-snappy
+  mingw-w64-i686-usbredir "
+  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
+  - $env:MSYSTEM = 'MINGW32' # Start a 32-bit MinG environment
+  - mkdir output
+  - cd output
+  - ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu
+  --enable-capstone=system"
+  - ..\msys64\usr\bin\bash -lc 'make -j2'
+  - ..\msys64\usr\bin\bash -lc 'make 

Re: [RFC PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-07-09 Thread Daniel P . Berrangé
On Fri, Jul 09, 2021 at 04:34:54PM +0200, Thomas Huth wrote:
> On 09/07/2021 10.20, Daniel P. Berrangé wrote:
> > On Fri, Jul 09, 2021 at 09:52:18AM +0200, Thomas Huth wrote:
> > > Gitlab also provides runners with Windows, we can use them to
> > > test compilation with MSYS2.
> > > 
> > > However, it takes quite a long time to set up the VM, so to
> > > stay in the 1h time frame, we can only compile and check one
> > > target here. And there is also still a problem with compiling
> > > the multiboot.bin in pc-bios/optionrom/, so this is currently
> > > disabled, too.
> > 
> > THe gitlab VM provisioning seems quite fast (2+1/2 minutes),
> > so I guess you mean the time is sunk in intsalling msys
> > packages.
> > 
> > In the crurent Cirrus job there's a bunch of code that is
> > done to cache all the msys install, so that 90% of the time
> > we're merely extracting a local zipfile.
> > 
> > I wonder if we can do similar caching here.
> 
> Maybe, yes. It might save 10 - 15 minutes or so, I guess.
> 
> > Perhaps even
> > have 2 seprate jobs running on the windows runner. The
> > first job can just build a zip file and store it as an
> > artifact and cache it in gitlab for speed. The second
> > job can do the actual build ?
> 
> I'm not sure ... the Windows builders are likely single-threaded on Gitlab,
> too, just like the Linux containers. So that the main problem - while we can
> compile with -j8 on Cirrus, it's 8 times slower on Gitlab.

Ah yes, good point.

Since we have cirrus integration for freebsd/macos now, we ought todo
the same for Windows too.  I auto-generated the freebsd/mac logic
with libvirt-ci, but I ignored msys since it was somewhat special
in its build commands. We can still set it up manually though to
integrate

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|




Re: [RFC PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-07-09 Thread Thomas Huth

On 09/07/2021 10.20, Daniel P. Berrangé wrote:

On Fri, Jul 09, 2021 at 09:52:18AM +0200, Thomas Huth wrote:

Gitlab also provides runners with Windows, we can use them to
test compilation with MSYS2.

However, it takes quite a long time to set up the VM, so to
stay in the 1h time frame, we can only compile and check one
target here. And there is also still a problem with compiling
the multiboot.bin in pc-bios/optionrom/, so this is currently
disabled, too.


THe gitlab VM provisioning seems quite fast (2+1/2 minutes),
so I guess you mean the time is sunk in intsalling msys
packages.

In the crurent Cirrus job there's a bunch of code that is
done to cache all the msys install, so that 90% of the time
we're merely extracting a local zipfile.

I wonder if we can do similar caching here.


Maybe, yes. It might save 10 - 15 minutes or so, I guess.


Perhaps even
have 2 seprate jobs running on the windows runner. The
first job can just build a zip file and store it as an
artifact and cache it in gitlab for speed. The second
job can do the actual build ?


I'm not sure ... the Windows builders are likely single-threaded on Gitlab, 
too, just like the Linux containers. So that the main problem - while we can 
compile with -j8 on Cirrus, it's 8 times slower on Gitlab.


 Thomas




Re: [RFC PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-07-09 Thread Daniel P . Berrangé
On Fri, Jul 09, 2021 at 09:52:18AM +0200, Thomas Huth wrote:
> Gitlab also provides runners with Windows, we can use them to
> test compilation with MSYS2.
> 
> However, it takes quite a long time to set up the VM, so to
> stay in the 1h time frame, we can only compile and check one
> target here. And there is also still a problem with compiling
> the multiboot.bin in pc-bios/optionrom/, so this is currently
> disabled, too.

THe gitlab VM provisioning seems quite fast (2+1/2 minutes),
so I guess you mean the time is sunk in intsalling msys
packages.

In the crurent Cirrus job there's a bunch of code that is
done to cache all the msys install, so that 90% of the time
we're merely extracting a local zipfile.

I wonder if we can do similar caching here. Perhaps even
have 2 seprate jobs running on the windows runner. The
first job can just build a zip file and store it as an
artifact and cache it in gitlab for speed. The second
job can do the actual build ?

> Signed-off-by: Thomas Huth 
> ---
>  I'm sending this out as an RFC in case somebody else wants to play
>  with this. Considering that the corresponding job in Cirrus-CI compiles
>  way more targets within 1 hour, we might rather want to keep using
>  the Cirrus-CI job instead?

Yes, unless we can do the same kind of caching tricks to speed it
all up.

> 
>  .gitlab-ci.d/qemu-project.yml |  1 +
>  .gitlab-ci.d/windows.yml  | 59 +++
>  2 files changed, 60 insertions(+)
>  create mode 100644 .gitlab-ci.d/windows.yml

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|




[RFC PATCH] gitlab-ci: Test compilation on Windows with MSYS2

2021-07-09 Thread Thomas Huth
Gitlab also provides runners with Windows, we can use them to
test compilation with MSYS2.

However, it takes quite a long time to set up the VM, so to
stay in the 1h time frame, we can only compile and check one
target here. And there is also still a problem with compiling
the multiboot.bin in pc-bios/optionrom/, so this is currently
disabled, too.

Signed-off-by: Thomas Huth 
---
 I'm sending this out as an RFC in case somebody else wants to play
 with this. Considering that the corresponding job in Cirrus-CI compiles
 way more targets within 1 hour, we might rather want to keep using
 the Cirrus-CI job instead?

 .gitlab-ci.d/qemu-project.yml |  1 +
 .gitlab-ci.d/windows.yml  | 59 +++
 2 files changed, 60 insertions(+)
 create mode 100644 .gitlab-ci.d/windows.yml

diff --git a/.gitlab-ci.d/qemu-project.yml b/.gitlab-ci.d/qemu-project.yml
index 64cb2ba1da..f1a34038af 100644
--- a/.gitlab-ci.d/qemu-project.yml
+++ b/.gitlab-ci.d/qemu-project.yml
@@ -9,3 +9,4 @@ include:
   - local: '/.gitlab-ci.d/crossbuilds.yml'
   - local: '/.gitlab-ci.d/buildtest.yml'
   - local: '/.gitlab-ci.d/static_checks.yml'
+  - local: '/.gitlab-ci.d/windows.yml'
diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
new file mode 100644
index 00..1874a06739
--- /dev/null
+++ b/.gitlab-ci.d/windows.yml
@@ -0,0 +1,59 @@
+.shared_windows_runners:
+  tags:
+  - shared-windows
+  - windows
+  - windows-1809
+
+msys2-build:
+  extends: .shared_windows_runners
+  stage: build
+  before_script:
+  - Invoke-WebRequest
+
"https://github.com/msys2/msys2-installer/releases/download/nightly-x86_64/msys2-base-x86_64-latest.sfx.exe;
+-outfile "msys2.exe"
+  - .\msys2.exe -y -oC:\
+  - del msys2.exe
+  - ((Get-Content -path C:\msys64\etc\\post-install\\07-pacman-key.post -Raw)
+  -replace '--refresh-keys', '--version') |
+ Set-Content -Path C:\msys64\etc\\post-install\\07-pacman-key.post
+  - C:\msys64\usr\bin\bash -lc "sed -i 's/^CheckSpace/#CheckSpace/g' 
/etc/pacman.conf"
+  - C:\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Core update
+  - C:\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'  # Normal update
+  - C:\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm --needed
+  diffutils git grep make pkg-config sed
+  mingw-w64-x86_64-capstone
+  mingw-w64-x86_64-curl
+  mingw-w64-x86_64-cyrus-sasl
+  mingw-w64-x86_64-gcc
+  mingw-w64-x86_64-glib2
+  mingw-w64-x86_64-gnutls
+  mingw-w64-x86_64-gtk3
+  mingw-w64-x86_64-libgcrypt
+  mingw-w64-x86_64-libjpeg-turbo
+  mingw-w64-x86_64-libnfs
+  mingw-w64-x86_64-libpng
+  mingw-w64-x86_64-libssh
+  mingw-w64-x86_64-libtasn1
+  mingw-w64-x86_64-libusb
+  mingw-w64-x86_64-libxml2
+  mingw-w64-x86_64-lzo2
+  mingw-w64-x86_64-make
+  mingw-w64-x86_64-nettle
+  mingw-w64-x86_64-ninja
+  mingw-w64-x86_64-pixman
+  mingw-w64-x86_64-pkgconf
+  mingw-w64-x86_64-python
+  mingw-w64-x86_64-SDL2
+  mingw-w64-x86_64-SDL2_image
+  mingw-w64-x86_64-snappy
+  mingw-w64-x86_64-usbredir
+  mingw-w64-x86_64-zstd "
+  - taskkill /F /FI "MODULES eq msys-2.0.dll"
+  script:
+  - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
+  - $env:MSYSTEM = 'MINGW64' # Start a 64 bit Mingw environment
+  - C:\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
+  --enable-capstone=system --disable-fdt'
+  - C:\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
+  - C:\msys64\usr\bin\bash -lc 'make -j2'
+  - C:\msys64\usr\bin\bash -lc 'make V=1 check'
-- 
2.27.0