Message ID | 20200909161430.1789-11-luoyonggang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | W32, W64 msys2/mingw patches | expand |
On Thu, Sep 10, 2020 at 12:14:30AM +0800, Yonggang Luo wrote: > Install msys2 in a proper way refer to https://github.com/cirruslabs/cirrus-ci-docs/issues/699 > The https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2 need to be updated. > There is no need of --cross-prefix, open mingw64.exe instead of msys2.exe then we don't > need the --cross-prefix, besides we using environment variable settings: > MSYS: winsymlinks:nativestrict > MSYSTEM: MINGW64 > CHERE_INVOKING: 1 > to opening mingw64 native shell. > We now running tests with make -i check to skip tests errors. > > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> > --- > .cirrus.yml | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 59 insertions(+) > > diff --git a/.cirrus.yml b/.cirrus.yml > index a18971aac4..f819d202db 100644 > --- a/.cirrus.yml > +++ b/.cirrus.yml > @@ -44,3 +44,62 @@ macos_xcode_task: > --enable-werror --cc=clang || { cat config.log; exit 1; } > - gmake -j$(sysctl -n hw.ncpu) > - gmake check > + > +windows_msys2_task: > + windows_container: > + image: cirrusci/windowsservercore:cmake > + os_version: 2019 > + cpu: 8 > + memory: 8G > + env: > + MSYS: winsymlinks:nativestrict > + MSYSTEM: MINGW64 > + CHERE_INVOKING: 1 > + printenv_script: > + - C:\tools\msys64\usr\bin\bash.exe -lc 'printenv' > + install_script: > + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" > + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig" > + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" > + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm" > + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime" > + - taskkill /F /IM gpg-agent.exe > + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su" > + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed > + base-devel > + git > + mingw-w64-x86_64-python > + mingw-w64-x86_64-python-setuptools > + mingw-w64-x86_64-toolchain > + mingw-w64-x86_64-SDL2 > + mingw-w64-x86_64-SDL2_image > + mingw-w64-x86_64-gtk3 > + mingw-w64-x86_64-glib2 > + mingw-w64-x86_64-ninja > + mingw-w64-x86_64-make > + mingw-w64-x86_64-jemalloc > + mingw-w64-x86_64-lzo2 > + mingw-w64-x86_64-zstd > + mingw-w64-x86_64-libjpeg-turbo > + mingw-w64-x86_64-pixman > + mingw-w64-x86_64-libgcrypt > + mingw-w64-x86_64-capstone > + mingw-w64-x86_64-libpng > + mingw-w64-x86_64-libssh > + mingw-w64-x86_64-libxml2 > + mingw-w64-x86_64-snappy > + mingw-w64-x86_64-libusb > + mingw-w64-x86_64-usbredir > + mingw-w64-x86_64-libtasn1 > + mingw-w64-x86_64-libnfs > + mingw-w64-x86_64-nettle > + mingw-w64-x86_64-cyrus-sasl > + mingw-w64-x86_64-curl > + mingw-w64-x86_64-gnutls > + mingw-w64-x86_64-zstd" > + script: > + - mkdir build > + - cd build > + - ../configure --python=python3 --enable-werror --ninja=ninja --disable-pie You shouldn't need --disable-pie anymore, as this is merged: commit fb648e9cacf4209ddaa8ee67d1a87a9b78a001c6 Author: Daniel P. Berrangé <berrange@redhat.com> Date: Mon Aug 24 17:31:09 2020 +0100 configure: default to PIE disabled on Windows platforms If Windows EXE files are built with -pie/-fpie they will fail to launch. Historically QEMU defaulted to disabling PIE for Windows, but this setting was accidentally lost when the configure summary text was removed in commit f9332757898a764d85e19d339ec421236e885b68 Author: Paolo Bonzini <pbonzini@redhat.com> Date: Mon Feb 3 13:28:38 2020 +0100 meson: move summary to meson.build Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> IIUC, the --enable-werror is present by default too thanks to this code snippet: if test -z "$werror" ; then if test -e "$source_path/.git" && \ { test "$linux" = "yes" || test "$mingw32" = "yes"; }; then werror="yes" else werror="no" fi fi If you remove the --disable-pie && --enable-werror args then you can add Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel
diff --git a/.cirrus.yml b/.cirrus.yml index a18971aac4..f819d202db 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -44,3 +44,62 @@ macos_xcode_task: --enable-werror --cc=clang || { cat config.log; exit 1; } - gmake -j$(sysctl -n hw.ncpu) - gmake check + +windows_msys2_task: + windows_container: + image: cirrusci/windowsservercore:cmake + os_version: 2019 + cpu: 8 + memory: 8G + env: + MSYS: winsymlinks:nativestrict + MSYSTEM: MINGW64 + CHERE_INVOKING: 1 + printenv_script: + - C:\tools\msys64\usr\bin\bash.exe -lc 'printenv' + install_script: + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig" + - C:\tools\msys64\usr\bin\bash.exe -lc "cd /c/tools && pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sy --noconfirm" + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime" + - taskkill /F /IM gpg-agent.exe + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -Su" + - C:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S --needed + base-devel + git + mingw-w64-x86_64-python + mingw-w64-x86_64-python-setuptools + mingw-w64-x86_64-toolchain + mingw-w64-x86_64-SDL2 + mingw-w64-x86_64-SDL2_image + mingw-w64-x86_64-gtk3 + mingw-w64-x86_64-glib2 + mingw-w64-x86_64-ninja + mingw-w64-x86_64-make + mingw-w64-x86_64-jemalloc + mingw-w64-x86_64-lzo2 + mingw-w64-x86_64-zstd + mingw-w64-x86_64-libjpeg-turbo + mingw-w64-x86_64-pixman + mingw-w64-x86_64-libgcrypt + mingw-w64-x86_64-capstone + mingw-w64-x86_64-libpng + mingw-w64-x86_64-libssh + mingw-w64-x86_64-libxml2 + mingw-w64-x86_64-snappy + mingw-w64-x86_64-libusb + mingw-w64-x86_64-usbredir + mingw-w64-x86_64-libtasn1 + mingw-w64-x86_64-libnfs + mingw-w64-x86_64-nettle + mingw-w64-x86_64-cyrus-sasl + mingw-w64-x86_64-curl + mingw-w64-x86_64-gnutls + mingw-w64-x86_64-zstd" + script: + - mkdir build + - cd build + - ../configure --python=python3 --enable-werror --ninja=ninja --disable-pie + - make -j$NUMBER_OF_PROCESSORS + - make check
Install msys2 in a proper way refer to https://github.com/cirruslabs/cirrus-ci-docs/issues/699 The https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2 need to be updated. There is no need of --cross-prefix, open mingw64.exe instead of msys2.exe then we don't need the --cross-prefix, besides we using environment variable settings: MSYS: winsymlinks:nativestrict MSYSTEM: MINGW64 CHERE_INVOKING: 1 to opening mingw64 native shell. We now running tests with make -i check to skip tests errors. Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> --- .cirrus.yml | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+)