qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] W32, W64 patches
@ 2020-09-08 19:48 Yonggang Luo
  2020-09-08 19:48 ` [PATCH 01/16] block: Fixes nfs compiling error on msys2/mingw Yonggang Luo
                   ` (16 more replies)
  0 siblings, 17 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

It first introduce msys2 CI on cirrus by fixes nfs, capstone, curses and
disable partial test-char tests.
And then fixes a number of unit tests failure on msys2/mingw

Yonggang Luo (16):
  block: Fixes nfs compiling error on msys2/mingw
  ci: fixes msys2 build by upgrading capstone to 4.0.2
  configure: Fixes ncursesw detection under msys2/mingw and enable
    curses
  curses: Fixes curses compiling errors.
  tests: disable /char/stdio/* tests in test-char.c on win32
  ci: Enable msys2 ci in cirrus
  tests: Trying fixes test-replication.c on msys2/mingw.
  block: get file-win32.c handle locking option consistence with
    file-posix.c
  osdep: These function are only available on Non-Win32 system.
  meson: Use -b to ignore CR vs. CR-LF issues on Windows
  meson: disable crypto tests are empty under win32
  meson: remove empty else and duplicated gio deps
  vmstate: Fixes test-vmstate.c on msys2/mingw
  cirrus: Building freebsd in a single short
  logging: Fixes memory leak in test-logging.c
  rcu: add uninit destructor for rcu

 .cirrus.yml                         | 59 ++++++++++++++++-------------
 block/file-win32.c                  | 23 ++++++++++-
 block/nfs.c                         | 26 ++++++++-----
 capstone                            |  2 +-
 configure                           | 11 ++----
 include/qemu/osdep.h                |  2 +-
 include/qemu/rcu.h                  |  5 +++
 meson.build                         |  6 ---
 scripts/ci/windows/msys2-build.sh   | 28 ++++++++++++++
 scripts/ci/windows/msys2-install.sh | 33 ++++++++++++++++
 tests/meson.build                   |  3 +-
 tests/qapi-schema/meson.build       |  2 +-
 tests/test-char.c                   |  4 ++
 tests/test-logging.c                |  4 +-
 tests/test-replication.c            | 13 +++++--
 tests/test-vmstate.c                |  2 +-
 ui/curses.c                         | 14 +++----
 util/rcu.c                          | 37 +++++++++++++++++-
 18 files changed, 205 insertions(+), 69 deletions(-)
 create mode 100644 scripts/ci/windows/msys2-build.sh
 create mode 100644 scripts/ci/windows/msys2-install.sh

-- 
2.28.0.windows.1



^ permalink raw reply	[flat|nested] 43+ messages in thread

* [PATCH 01/16] block: Fixes nfs compiling error on msys2/mingw
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-08 19:48 ` [PATCH 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2 Yonggang Luo
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

These compiling errors are fixed:
../block/nfs.c:27:10: fatal error: poll.h: No such file or directory
   27 | #include <poll.h>
      |          ^~~~~~~~
compilation terminated.

../block/nfs.c:63:5: error: unknown type name 'blkcnt_t'
   63 |     blkcnt_t st_blocks;
      |     ^~~~~~~~
../block/nfs.c: In function 'nfs_client_open':
../block/nfs.c:550:27: error: 'struct _stat64' has no member named 'st_blocks'
  550 |     client->st_blocks = st.st_blocks;
      |                           ^
../block/nfs.c: In function 'nfs_get_allocated_file_size':
../block/nfs.c:751:41: error: 'struct _stat64' has no member named 'st_blocks'
  751 |     return (task.ret < 0 ? task.ret : st.st_blocks * 512);
      |                                         ^
../block/nfs.c: In function 'nfs_reopen_prepare':
../block/nfs.c:805:31: error: 'struct _stat64' has no member named 'st_blocks'
  805 |         client->st_blocks = st.st_blocks;
      |                               ^
../block/nfs.c: In function 'nfs_get_allocated_file_size':
../block/nfs.c:752:1: error: control reaches end of non-void function [-Werror=return-type]
  752 | }
      | ^

On msys2/mingw, there is no st_blocks in struct _stat64, so we use consistence st_size instead.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 block/nfs.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/block/nfs.c b/block/nfs.c
index 61a249a9fc..34b2cd5708 100644
--- a/block/nfs.c
+++ b/block/nfs.c
@@ -24,7 +24,9 @@
 
 #include "qemu/osdep.h"
 
+#if !defined(_WIN32)
 #include <poll.h>
+#endif
 #include "qemu/config-file.h"
 #include "qemu/error-report.h"
 #include "qapi/error.h"
@@ -51,6 +53,12 @@
 #define QEMU_NFS_MAX_PAGECACHE_SIZE (8388608 / NFS_BLKSIZE)
 #define QEMU_NFS_MAX_DEBUG_LEVEL 2
 
+#if defined (_WIN32)
+#define nfs_stat __stat64
+#else
+#define nfs_stat stat
+#endif
+
 typedef struct NFSClient {
     struct nfs_context *context;
     struct nfsfh *fh;
@@ -58,7 +66,7 @@ typedef struct NFSClient {
     bool has_zero_init;
     AioContext *aio_context;
     QemuMutex mutex;
-    blkcnt_t st_blocks;
+    int64_t st_size;
     bool cache_used;
     NFSServer *server;
     char *path;
@@ -70,7 +78,7 @@ typedef struct NFSRPC {
     int ret;
     int complete;
     QEMUIOVector *iov;
-    struct stat *st;
+    struct nfs_stat *st;
     Coroutine *co;
     NFSClient *client;
 } NFSRPC;
@@ -419,7 +427,7 @@ static int64_t nfs_client_open(NFSClient *client, BlockdevOptionsNfs *opts,
                                int flags, int open_flags, Error **errp)
 {
     int64_t ret = -EINVAL;
-    struct stat st;
+    struct nfs_stat st;
     char *file = NULL, *strp = NULL;
 
     qemu_mutex_init(&client->mutex);
@@ -545,7 +553,7 @@ static int64_t nfs_client_open(NFSClient *client, BlockdevOptionsNfs *opts,
     }
 
     ret = DIV_ROUND_UP(st.st_size, BDRV_SECTOR_SIZE);
-    client->st_blocks = st.st_blocks;
+    client->st_size = st.st_size;
     client->has_zero_init = S_ISREG(st.st_mode);
     *strp = '/';
     goto out;
@@ -729,11 +737,11 @@ static int64_t nfs_get_allocated_file_size(BlockDriverState *bs)
 {
     NFSClient *client = bs->opaque;
     NFSRPC task = {0};
-    struct stat st;
+    struct nfs_stat st;
 
     if (bdrv_is_read_only(bs) &&
         !(bs->open_flags & BDRV_O_NOCACHE)) {
-        return client->st_blocks * 512;
+        return client->st_size;
     }
 
     task.bs = bs;
@@ -746,7 +754,7 @@ static int64_t nfs_get_allocated_file_size(BlockDriverState *bs)
     nfs_set_events(client);
     BDRV_POLL_WHILE(bs, !task.complete);
 
-    return (task.ret < 0 ? task.ret : st.st_blocks * 512);
+    return (task.ret < 0 ? task.ret : st.st_size);
 }
 
 static int coroutine_fn
@@ -778,7 +786,7 @@ static int nfs_reopen_prepare(BDRVReopenState *state,
                               BlockReopenQueue *queue, Error **errp)
 {
     NFSClient *client = state->bs->opaque;
-    struct stat st;
+    struct nfs_stat st;
     int ret = 0;
 
     if (state->flags & BDRV_O_RDWR && bdrv_is_read_only(state->bs)) {
@@ -800,7 +808,7 @@ static int nfs_reopen_prepare(BDRVReopenState *state,
                        nfs_get_error(client->context));
             return ret;
         }
-        client->st_blocks = st.st_blocks;
+        client->st_size = st.st_size;
     }
 
     return 0;
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
  2020-09-08 19:48 ` [PATCH 01/16] block: Fixes nfs compiling error on msys2/mingw Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-08 20:36   ` Peter Maydell
  2020-09-08 19:48 ` [PATCH 03/16] configure: Fixes ncursesw detection under msys2/mingw and enable curses Yonggang Luo
                   ` (14 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

The currently random version capstone have the following compiling issue:
  CC      /c/work/xemu/qemu/build/slirp/src/arp_table.o
make[1]: *** No rule to make target “/c/work/xemu/qemu/build/capstone/capstone.lib”。 Stop.

Subproject commit 1d230532840a37ac032c6ab80128238fc930c6c1 are the tagged version 4.0.2
when upgrading to this version, the folder structure of include are changed to
qemu\capstone\include
│  platform.h
│
├─capstone
│      arm.h
│      arm64.h
│      capstone.h
│      evm.h
│      m680x.h
│      m68k.h
│      mips.h
│      platform.h
│      ppc.h
│      sparc.h
│      systemz.h
│      tms320c64x.h
│      x86.h
│      xcore.h
│
└─windowsce
        intrin.h
        stdint.h

in capstone. so we need add extra include path -I${source_path}/capstone/include/capstone
for directly #include <capstone.h>, and the exist include path should preserve, because
in capstone code there something like #include "capstone/capstone.h"

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 capstone  | 2 +-
 configure | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/capstone b/capstone
index 22ead3e0bf..1d23053284 160000
--- a/capstone
+++ b/capstone
@@ -1 +1 @@
-Subproject commit 22ead3e0bfdb87516656453336160e0a37b066bf
+Subproject commit 1d230532840a37ac032c6ab80128238fc930c6c1
diff --git a/configure b/configure
index 4231d56bcc..f4f8bc3756 100755
--- a/configure
+++ b/configure
@@ -5156,7 +5156,7 @@ case "$capstone" in
       LIBCAPSTONE=libcapstone.a
     fi
     capstone_libs="-Lcapstone -lcapstone"
-    capstone_cflags="-I${source_path}/capstone/include"
+    capstone_cflags="-I${source_path}/capstone/include -I${source_path}/capstone/include/capstone"
     ;;
 
   system)
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 03/16] configure: Fixes ncursesw detection under msys2/mingw and enable curses
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
  2020-09-08 19:48 ` [PATCH 01/16] block: Fixes nfs compiling error on msys2/mingw Yonggang Luo
  2020-09-08 19:48 ` [PATCH 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2 Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  4:56   ` Gerd Hoffmann
  2020-09-08 19:48 ` [PATCH 04/16] curses: Fixes curses compiling errors Yonggang Luo
                   ` (13 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

The mingw pkg-config are showing following absolute path and contains : as the separator,
so we must handling : properly.

-D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC:/CI-Tools/msys64/mingw64/include/ncursesw:-I/usr/include/ncursesw:
-DNCURSES_WIDECHAR -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC -pipe -lncursesw -lgnurx -ltre -lintl -liconv
-DNCURSES_WIDECHAR -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC -lncursesw
-DNCURSES_WIDECHAR -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC -lcursesw
-DNCURSES_WIDECHAR /CI-Tools/msys64/mingw64/include/ncursesw -pipe -lncursesw -lgnurx -ltre -lintl -liconv
-DNCURSES_WIDECHAR /CI-Tools/msys64/mingw64/include/ncursesw -lncursesw
-DNCURSES_WIDECHAR /CI-Tools/msys64/mingw64/include/ncursesw -lcursesw
-DNCURSES_WIDECHAR -I/usr/include/ncursesw -pipe -lncursesw -lgnurx -ltre -lintl -liconv
-DNCURSES_WIDECHAR -I/usr/include/ncursesw -lncursesw
-DNCURSES_WIDECHAR -I/usr/include/ncursesw -lcursesw

msys2/mingw lacks the POSIX-required langinfo.h.

gcc test.c -DNCURSES_WIDECHAR -I/mingw64/include/ncursesw -pipe -lncursesw -lgnurx -ltre -lintl -liconv
test.c:4:10: fatal error: langinfo.h: No such file or directory
    4 | #include <langinfo.h>
      |          ^~~~~~~~~~~~
compilation terminated.

So we using g_get_codeset instead of nl_langinfo(CODESET)

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 configure   |  9 +++------
 ui/curses.c | 10 +++++-----
 2 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/configure b/configure
index f4f8bc3756..2e6d54e15b 100755
--- a/configure
+++ b/configure
@@ -3653,8 +3653,8 @@ if test "$iconv" = "no" ; then
 fi
 if test "$curses" != "no" ; then
   if test "$mingw32" = "yes" ; then
-    curses_inc_list="$($pkg_config --cflags ncurses 2>/dev/null):"
-    curses_lib_list="$($pkg_config --libs ncurses 2>/dev/null):-lpdcurses"
+    curses_inc_list="$($pkg_config --cflags ncursesw 2>/dev/null):-I/${MSYSTEM,,}/include/ncursesw:"
+    curses_lib_list="$($pkg_config --libs ncursesw 2>/dev/null):-lncursesw"
   else
     curses_inc_list="$($pkg_config --cflags ncursesw 2>/dev/null):-I/usr/include/ncursesw:"
     curses_lib_list="$($pkg_config --libs ncursesw 2>/dev/null):-lncursesw:-lcursesw"
@@ -3664,17 +3664,14 @@ if test "$curses" != "no" ; then
 #include <locale.h>
 #include <curses.h>
 #include <wchar.h>
-#include <langinfo.h>
 int main(void) {
-  const char *codeset;
   wchar_t wch = L'w';
   setlocale(LC_ALL, "");
   resize_term(0, 0);
   addwstr(L"wide chars\n");
   addnwstr(&wch, 1);
   add_wch(WACS_DEGREE);
-  codeset = nl_langinfo(CODESET);
-  return codeset != 0;
+  return 0;
 }
 EOF
   IFS=:
diff --git a/ui/curses.c b/ui/curses.c
index a59b23a9cf..12bc682cf9 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -30,7 +30,6 @@
 #endif
 #include <locale.h>
 #include <wchar.h>
-#include <langinfo.h>
 #include <iconv.h>
 
 #include "qapi/error.h"
@@ -526,6 +525,7 @@ static void font_setup(void)
     iconv_t nativecharset_to_ucs2;
     iconv_t font_conv;
     int i;
+    g_autofree gchar *local_codeset = g_get_codeset();
 
     /*
      * Control characters are normally non-printable, but VGA does have
@@ -566,14 +566,14 @@ static void font_setup(void)
       0x25bc
     };
 
-    ucs2_to_nativecharset = iconv_open(nl_langinfo(CODESET), "UCS-2");
+    ucs2_to_nativecharset = iconv_open(local_codeset, "UCS-2");
     if (ucs2_to_nativecharset == (iconv_t) -1) {
         fprintf(stderr, "Could not convert font glyphs from UCS-2: '%s'\n",
                         strerror(errno));
         exit(1);
     }
 
-    nativecharset_to_ucs2 = iconv_open("UCS-2", nl_langinfo(CODESET));
+    nativecharset_to_ucs2 = iconv_open("UCS-2", local_codeset);
     if (nativecharset_to_ucs2 == (iconv_t) -1) {
         iconv_close(ucs2_to_nativecharset);
         fprintf(stderr, "Could not convert font glyphs to UCS-2: '%s'\n",
@@ -581,7 +581,7 @@ static void font_setup(void)
         exit(1);
     }
 
-    font_conv = iconv_open(nl_langinfo(CODESET), font_charset);
+    font_conv = iconv_open(local_codeset, font_charset);
     if (font_conv == (iconv_t) -1) {
         iconv_close(ucs2_to_nativecharset);
         iconv_close(nativecharset_to_ucs2);
@@ -602,7 +602,7 @@ static void font_setup(void)
     /* DEL */
     convert_ucs(0x7F, 0x2302, ucs2_to_nativecharset);
 
-    if (strcmp(nl_langinfo(CODESET), "UTF-8")) {
+    if (strcmp(local_codeset, "UTF-8")) {
         /* Non-Unicode capable, use termcap equivalents for those available */
         for (i = 0; i <= 0xFF; i++) {
             wchar_t wch[CCHARW_MAX];
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 04/16] curses: Fixes curses compiling errors.
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (2 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 03/16] configure: Fixes ncursesw detection under msys2/mingw and enable curses Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  4:56   ` Gerd Hoffmann
  2020-09-08 19:48 ` [PATCH 05/16] tests: disable /char/stdio/* tests in test-char.c on win32 Yonggang Luo
                   ` (12 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

This is the compiling error:
../ui/curses.c: In function 'curses_refresh':
../ui/curses.c:256:5: error: 'next_maybe_keycode' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  256 |     curses2foo(_curses2keycode, _curseskey2keycode, chr, maybe_keycode)
      |     ^~~~~~~~~~
../ui/curses.c:302:32: note: 'next_maybe_keycode' was declared here
  302 |             enum maybe_keycode next_maybe_keycode;
      |                                ^~~~~~~~~~~~~~~~~~
../ui/curses.c:256:5: error: 'maybe_keycode' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  256 |     curses2foo(_curses2keycode, _curseskey2keycode, chr, maybe_keycode)
      |     ^~~~~~~~~~
../ui/curses.c:265:24: note: 'maybe_keycode' was declared here
  265 |     enum maybe_keycode maybe_keycode;
      |                        ^~~~~~~~~~~~~
cc1.exe: all warnings being treated as errors

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 ui/curses.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ui/curses.c b/ui/curses.c
index 12bc682cf9..e4f9588c3e 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -262,7 +262,7 @@ static int curses2foo(const int _curses2foo[], const int _curseskey2foo[],
 static void curses_refresh(DisplayChangeListener *dcl)
 {
     int chr, keysym, keycode, keycode_alt;
-    enum maybe_keycode maybe_keycode;
+    enum maybe_keycode maybe_keycode = CURSES_KEYCODE;
 
     curses_winch_check();
 
@@ -299,7 +299,7 @@ static void curses_refresh(DisplayChangeListener *dcl)
 
         /* alt or esc key */
         if (keycode == 1) {
-            enum maybe_keycode next_maybe_keycode;
+            enum maybe_keycode next_maybe_keycode = CURSES_KEYCODE;
             int nextchr = console_getch(&next_maybe_keycode);
 
             if (nextchr != -1) {
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 05/16] tests: disable /char/stdio/* tests in test-char.c on win32
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (3 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 04/16] curses: Fixes curses compiling errors Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  7:13   ` Thomas Huth
  2020-09-08 19:48 ` [PATCH 06/16] ci: Enable msys2 ci in cirrus Yonggang Luo
                   ` (11 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

These tests are blocking test-char to be finished.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/test-char.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tests/test-char.c b/tests/test-char.c
index d35cc839bc..80e5bac61a 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -103,6 +103,7 @@ static void char_console_test(void)
     g_test_trap_assert_stdout("CONSOLE");
 }
 #endif
+#ifndef _WIN32
 static void char_stdio_test_subprocess(void)
 {
     Chardev *chr;
@@ -126,6 +127,7 @@ static void char_stdio_test(void)
     g_test_trap_assert_passed();
     g_test_trap_assert_stdout("buf");
 }
+#endif
 
 static void char_ringbuf_test(void)
 {
@@ -1471,8 +1473,10 @@ int main(int argc, char **argv)
     g_test_add_func("/char/console/subprocess", char_console_test_subprocess);
     g_test_add_func("/char/console", char_console_test);
 #endif
+#ifndef _WIN32
     g_test_add_func("/char/stdio/subprocess", char_stdio_test_subprocess);
     g_test_add_func("/char/stdio", char_stdio_test);
+#endif
 #ifndef _WIN32
     g_test_add_func("/char/pipe", char_pipe_test);
 #endif
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 06/16] ci: Enable msys2 ci in cirrus
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (4 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 05/16] tests: disable /char/stdio/* tests in test-char.c on win32 Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  8:27   ` Daniel P. Berrangé
  2020-09-08 19:48 ` [PATCH 07/16] tests: Trying fixes test-replication.c on msys2/mingw Yonggang Luo
                   ` (10 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

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                         | 24 +++++++++++++++++++++
 scripts/ci/windows/msys2-build.sh   | 28 ++++++++++++++++++++++++
 scripts/ci/windows/msys2-install.sh | 33 +++++++++++++++++++++++++++++
 3 files changed, 85 insertions(+)
 create mode 100644 scripts/ci/windows/msys2-build.sh
 create mode 100644 scripts/ci/windows/msys2-install.sh

diff --git a/.cirrus.yml b/.cirrus.yml
index 3dd9fcff7f..49335e68c9 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -63,3 +63,27 @@ 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 "sh scripts/ci/windows/msys2-install.sh"
+  script:
+    - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-build.sh"
diff --git a/scripts/ci/windows/msys2-build.sh b/scripts/ci/windows/msys2-build.sh
new file mode 100644
index 0000000000..d9d046b5b0
--- /dev/null
+++ b/scripts/ci/windows/msys2-build.sh
@@ -0,0 +1,28 @@
+mkdir build
+cd build
+../configure \
+--python=python3 \
+--ninja=ninja \
+--enable-stack-protector \
+--enable-guest-agent \
+--disable-pie \
+--enable-gnutls --enable-nettle \
+--enable-sdl --enable-sdl-image --enable-gtk --disable-vte --enable-curses --enable-iconv \
+--enable-vnc --enable-vnc-sasl --enable-vnc-jpeg --enable-vnc-png \
+--enable-slirp=git \
+--disable-brlapi --enable-curl \
+--enable-fdt \
+--disable-kvm --enable-hax --enable-whpx \
+--enable-libnfs --enable-libusb --enable-live-block-migration --enable-usb-redir \
+--enable-lzo --enable-snappy --enable-bzip2 --enable-zstd \
+--enable-membarrier --enable-coroutine-pool \
+--enable-libssh --enable-libxml2 \
+--enable-jemalloc --enable-avx2 \
+--enable-replication \
+--enable-tools \
+--enable-bochs --enable-cloop --enable-dmg --enable-qcow1 --enable-vdi --enable-vvfat --enable-qed --enable-parallels \
+--enable-sheepdog \
+--enable-capstone=git
+
+make -j$NUMBER_OF_PROCESSORS
+make -i -j$NUMBER_OF_PROCESSORS check
diff --git a/scripts/ci/windows/msys2-install.sh b/scripts/ci/windows/msys2-install.sh
new file mode 100644
index 0000000000..6086452399
--- /dev/null
+++ b/scripts/ci/windows/msys2-install.sh
@@ -0,0 +1,33 @@
+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 \
+
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 07/16] tests: Trying fixes test-replication.c on msys2/mingw.
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (5 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 06/16] ci: Enable msys2 ci in cirrus Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  8:23   ` Daniel P. Berrangé
  2020-09-08 19:48 ` [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c Yonggang Luo
                   ` (9 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

On Windows there is no path like /tmp/s_local_disk.XXXXXX

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/test-replication.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/tests/test-replication.c b/tests/test-replication.c
index 9ab3666a90..cfc1ae6feb 100644
--- a/tests/test-replication.c
+++ b/tests/test-replication.c
@@ -23,14 +23,14 @@
 
 /* primary */
 #define P_ID "primary-id"
-static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX";
+static char p_local_disk[PATH_MAX];
 
 /* secondary */
 #define S_ID "secondary-id"
 #define S_LOCAL_DISK_ID "secondary-local-disk-id"
-static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX";
-static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX";
-static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX";
+static char s_local_disk[PATH_MAX];
+static char s_active_disk[PATH_MAX];
+static char s_hidden_disk[PATH_MAX];
 
 /* FIXME: steal from blockdev.c */
 QemuOptsList qemu_drive_opts = {
@@ -571,6 +571,11 @@ static void setup_sigabrt_handler(void)
 int main(int argc, char **argv)
 {
     int ret;
+    const char *tmpdir = g_get_tmp_dir();
+    snprintf(p_local_disk, sizeof(p_local_disk), "%s/p_local_disk.XXXXXX", tmpdir);
+    snprintf(s_local_disk, sizeof(s_local_disk), "%s/s_local_disk.XXXXXX", tmpdir);
+    snprintf(s_active_disk, sizeof(s_active_disk), "%s/s_active_disk.XXXXXX", tmpdir);
+    snprintf(s_hidden_disk, sizeof(s_hidden_disk), "%s/s_hidden_disk.XXXXXX", tmpdir);
     qemu_init_main_loop(&error_fatal);
     bdrv_init();
 
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (6 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 07/16] tests: Trying fixes test-replication.c on msys2/mingw Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  8:19   ` Kevin Wolf
  2020-09-08 19:48 ` [PATCH 09/16] osdep: These function are only available on Non-Win32 system Yonggang Luo
                   ` (8 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 block/file-win32.c | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/block/file-win32.c b/block/file-win32.c
index ab69bd811a..14e5f5c3b5 100644
--- a/block/file-win32.c
+++ b/block/file-win32.c
@@ -299,6 +299,11 @@ static QemuOptsList raw_runtime_opts = {
             .type = QEMU_OPT_STRING,
             .help = "host AIO implementation (threads, native)",
         },
+        {
+            .name = "locking",
+            .type = QEMU_OPT_STRING,
+            .help = "file locking mode (on/off/auto, default: auto)",
+        },
         { /* end of list */ }
     },
 };
@@ -334,6 +339,7 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
     const char *filename;
     bool use_aio;
     int ret;
+    OnOffAuto locking;
 
     s->type = FTYPE_FILE;
 
@@ -342,11 +348,24 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
         ret = -EINVAL;
         goto fail;
     }
-
-    if (qdict_get_try_bool(options, "locking", false)) {
+    locking = qapi_enum_parse(&OnOffAuto_lookup,
+                              qemu_opt_get(opts, "locking"),
+                              ON_OFF_AUTO_AUTO, &local_err);
+    if (local_err) {
+        error_propagate(errp, local_err);
+        ret = -EINVAL;
+        goto fail;
+    }
+    switch (locking) {
+    case ON_OFF_AUTO_ON:
         error_setg(errp, "locking=on is not supported on Windows");
         ret = -EINVAL;
         goto fail;
+    case ON_OFF_AUTO_OFF:
+    case ON_OFF_AUTO_AUTO:
+        break;
+    default:
+        g_assert_not_reached();
     }
 
     filename = qemu_opt_get(opts, "filename");
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 09/16] osdep: These function are only available on Non-Win32 system.
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (7 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-08 19:48 ` [PATCH 10/16] meson: Use -b to ignore CR vs. CR-LF issues on Windows Yonggang Luo
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

int qemu_lock_fd(int fd, int64_t start, int64_t len, bool exclusive);
int qemu_unlock_fd(int fd, int64_t start, int64_t len);
int qemu_lock_fd_test(int fd, int64_t start, int64_t len, bool exclusive);
bool qemu_has_ofd_lock(void);

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 include/qemu/osdep.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 412962d91a..e80fddd1e8 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -502,11 +502,11 @@ int qemu_close(int fd);
 int qemu_unlink(const char *name);
 #ifndef _WIN32
 int qemu_dup(int fd);
-#endif
 int qemu_lock_fd(int fd, int64_t start, int64_t len, bool exclusive);
 int qemu_unlock_fd(int fd, int64_t start, int64_t len);
 int qemu_lock_fd_test(int fd, int64_t start, int64_t len, bool exclusive);
 bool qemu_has_ofd_lock(void);
+#endif
 
 #if defined(__HAIKU__) && defined(__i386__)
 #define FMT_pid "%ld"
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 10/16] meson: Use -b to ignore CR vs. CR-LF issues on Windows
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (8 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 09/16] osdep: These function are only available on Non-Win32 system Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-08 19:48 ` [PATCH 11/16] meson: disable crypto tests are empty under win32 Yonggang Luo
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

On windows, a difference in line endings causes testsuite failures
complaining that every single line in files such as
'tests/qapi-schemadoc-good.texi' is wrong.  Fix it by adding -b to diff.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 tests/qapi-schema/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
index c87d141417..f1449298b0 100644
--- a/tests/qapi-schema/meson.build
+++ b/tests/qapi-schema/meson.build
@@ -220,6 +220,6 @@ qapi_doc = custom_target('QAPI doc',
 
 # "full_path()" needed here to work around
 # https://github.com/mesonbuild/meson/issues/7585
-test('QAPI doc', diff, args: ['-u', files('doc-good.texi'), qapi_doc[0].full_path()],
+test('QAPI doc', diff, args: ['-b', '-u', files('doc-good.texi'), qapi_doc[0].full_path()],
      depends: qapi_doc,
      suite: ['qapi-schema', 'qapi-doc'])
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 11/16] meson: disable crypto tests are empty under win32
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (9 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 10/16] meson: Use -b to ignore CR vs. CR-LF issues on Windows Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  8:07   ` Thomas Huth
  2020-09-09  8:10   ` Daniel P. Berrangé
  2020-09-08 19:48 ` [PATCH 12/16] meson: remove empty else and duplicated gio deps Yonggang Luo
                   ` (5 subsequent siblings)
  16 siblings, 2 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

Disable following tests on msys2/mingw
      'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
                                   tasn1, crypto],
      'test-crypto-tlssession': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
                                 tasn1, crypto],
      'test-io-channel-tls': ['io-channel-helpers.c', 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
                              tasn1, io, crypto]}

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/meson.build b/tests/meson.build
index 998e4c48f9..b470a90e3a 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -145,7 +145,8 @@ if have_block
     'test-crypto-block': [io],
   }
   if 'CONFIG_GNUTLS' in config_host and \
-     'CONFIG_TASN1' in config_host
+     'CONFIG_TASN1' in config_host and \
+     'CONFIG_POSIX' in config_host
     tests += {
       'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
                                    tasn1, crypto],
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 12/16] meson: remove empty else and duplicated gio deps
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (10 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 11/16] meson: disable crypto tests are empty under win32 Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-08 19:48 ` [PATCH 13/16] vmstate: Fixes test-vmstate.c on msys2/mingw Yonggang Luo
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 meson.build | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/meson.build b/meson.build
index 5421eca66a..0b1741557d 100644
--- a/meson.build
+++ b/meson.build
@@ -317,7 +317,6 @@ opengl = not_found
 if 'CONFIG_OPENGL' in config_host
   opengl = declare_dependency(compile_args: config_host['OPENGL_CFLAGS'].split(),
                               link_args: config_host['OPENGL_LIBS'].split())
-else
 endif
 gtk = not_found
 if 'CONFIG_GTK' in config_host
@@ -344,11 +343,6 @@ if 'CONFIG_ICONV' in config_host
   iconv = declare_dependency(compile_args: config_host['ICONV_CFLAGS'].split(),
                              link_args: config_host['ICONV_LIBS'].split())
 endif
-gio = not_found
-if 'CONFIG_GIO' in config_host
-  gio = declare_dependency(compile_args: config_host['GIO_CFLAGS'].split(),
-                           link_args: config_host['GIO_LIBS'].split())
-endif
 vnc = not_found
 png = not_found
 jpeg = not_found
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 13/16] vmstate: Fixes test-vmstate.c on msys2/mingw
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (11 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 12/16] meson: remove empty else and duplicated gio deps Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  8:11   ` Thomas Huth
  2020-09-08 19:48 ` [PATCH 14/16] cirrus: Building freebsd in a single short Yonggang Luo
                   ` (3 subsequent siblings)
  16 siblings, 1 reply; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang,
	Philippe Mathieu-Daudé,
	Li-Wen Hsu, Peter Lieven

The vmstate are valid on win32, just need generate tmp path properly

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 tests/test-vmstate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c
index f8de709a0b..4c453575bb 100644
--- a/tests/test-vmstate.c
+++ b/tests/test-vmstate.c
@@ -34,7 +34,6 @@
 #include "qemu/module.h"
 #include "io/channel-file.h"
 
-static char temp_file[] = "/tmp/vmst.test.XXXXXX";
 static int temp_fd;
 
 
@@ -1487,6 +1486,7 @@ static void test_tmp_struct(void)
 
 int main(int argc, char **argv)
 {
+    g_autofree char* temp_file = g_strdup_printf("%s/vmst.test.XXXXXX", g_get_tmp_dir());
     temp_fd = mkstemp(temp_file);
 
     module_call_init(MODULE_INIT_QOM);
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 14/16] cirrus: Building freebsd in a single short
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (12 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 13/16] vmstate: Fixes test-vmstate.c on msys2/mingw Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-09  8:15   ` Thomas Huth
  2020-09-09  8:17   ` Daniel P. Berrangé
  2020-09-08 19:48 ` [PATCH 15/16] logging: Fixes memory leak in test-logging.c Yonggang Luo
                   ` (2 subsequent siblings)
  16 siblings, 2 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

freebsd 1 hour limit not hit anymore

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 .cirrus.yml | 35 ++++++++---------------------------
 1 file changed, 8 insertions(+), 27 deletions(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 49335e68c9..b0004273bb 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,38 +1,19 @@
 env:
   CIRRUS_CLONE_DEPTH: 1
 
-freebsd_1st_task:
+freebsd_12_task:
   freebsd_instance:
     image_family: freebsd-12-1
-    cpu: 4
-    memory: 4G
-  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y
-    bash curl cyrus-sasl git glib gmake gnutls gsed
-    nettle perl5 pixman pkgconf png usbredir
+    cpu: 8
+    memory: 8G
+  install_script:
+    - ASSUME_ALWAYS_YES=yes pkg bootstrap -f ;
+    - pkg install -y bash curl cyrus-sasl git glib gmake gnutls gsed 
+          nettle perl5 pixman pkgconf png usbredir
   script:
     - mkdir build
     - cd build
-    - ../configure --disable-user --target-list-exclude='alpha-softmmu
-        ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu
-        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu'
-        --enable-werror || { cat config.log; exit 1; }
-    - gmake -j$(sysctl -n hw.ncpu)
-    - gmake -j$(sysctl -n hw.ncpu) check
-
-freebsd_2nd_task:
-  freebsd_instance:
-    image_family: freebsd-12-1
-    cpu: 4
-    memory: 4G
-  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y
-    bash curl cyrus-sasl git glib gmake gnutls gtk3 gsed libepoxy mesa-libs
-    nettle perl5 pixman pkgconf png SDL2 usbredir
-  script:
-    - ./configure --enable-werror --target-list='alpha-softmmu ppc64-softmmu
-        ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu
-        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu
-        sparc-bsd-user sparc64-bsd-user x86_64-bsd-user i386-bsd-user'
-        || { cat config.log; exit 1; }
+    - ../configure --enable-werror || { cat config.log; exit 1; }
     - gmake -j$(sysctl -n hw.ncpu)
     - gmake -j$(sysctl -n hw.ncpu) check
 
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 15/16] logging: Fixes memory leak in test-logging.c
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (13 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 14/16] cirrus: Building freebsd in a single short Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-08 19:48 ` [PATCH 16/16] rcu: add uninit destructor for rcu Yonggang Luo
  2020-09-08 20:41 ` [PATCH 00/16] W32, W64 patches Eric Blake
  16 siblings, 0 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang,
	Philippe Mathieu-Daudé,
	Li-Wen Hsu, Peter Lieven

g_dir_make_tmp Returns the actual name used. This string should be
freed with g_free() when not needed any longer and is is in the GLib
file name encoding. In case of errors, NULL is returned and error will
be set. Use g_autofree to free it properly

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 tests/test-logging.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/test-logging.c b/tests/test-logging.c
index 8a1161de1d..957f6c08cd 100644
--- a/tests/test-logging.c
+++ b/tests/test-logging.c
@@ -196,7 +196,7 @@ static void rmdir_full(gchar const *root)
 
 int main(int argc, char **argv)
 {
-    gchar *tmp_path = g_dir_make_tmp("qemu-test-logging.XXXXXX", NULL);
+    g_autofree gchar *tmp_path = g_dir_make_tmp("qemu-test-logging.XXXXXX", NULL);
     int rc;
 
     g_test_init(&argc, &argv, NULL);
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH 16/16] rcu: add uninit destructor for rcu
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (14 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 15/16] logging: Fixes memory leak in test-logging.c Yonggang Luo
@ 2020-09-08 19:48 ` Yonggang Luo
  2020-09-08 20:41 ` [PATCH 00/16] W32, W64 patches Eric Blake
  16 siblings, 0 replies; 43+ messages in thread
From: Yonggang Luo @ 2020-09-08 19:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, Markus Armbruster, Max Reitz,
	Yonggang Luo, Gerd Hoffmann, Wen Congyang, Li-Wen Hsu,
	Peter Lieven

This is necessary if the pending  rcu calls are closing and removing
temp files. This also provide a function
void rcu_wait_finished(void);
to fixes test-logging.c test failure on msys2/mingw.
On windows if the file doesn't closed, you can not remove it.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 include/qemu/rcu.h   |  5 +++++
 tests/test-logging.c |  2 ++
 util/rcu.c           | 37 ++++++++++++++++++++++++++++++++++++-
 3 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h
index 570aa603eb..dd0a92c1d0 100644
--- a/include/qemu/rcu.h
+++ b/include/qemu/rcu.h
@@ -124,6 +124,11 @@ extern void rcu_unregister_thread(void);
 extern void rcu_enable_atfork(void);
 extern void rcu_disable_atfork(void);
 
+/*
+ * Wait all rcu call executed and exit the rcu thread.
+ */
+extern void rcu_wait_finished(void);
+
 struct rcu_head;
 typedef void RCUCBFunc(struct rcu_head *head);
 
diff --git a/tests/test-logging.c b/tests/test-logging.c
index 957f6c08cd..7a5b59f4a5 100644
--- a/tests/test-logging.c
+++ b/tests/test-logging.c
@@ -210,6 +210,8 @@ int main(int argc, char **argv)
                          tmp_path, test_logfile_lock);
 
     rc = g_test_run();
+    qemu_log_close();
+    rcu_wait_finished();
 
     rmdir_full(tmp_path);
     g_free(tmp_path);
diff --git a/util/rcu.c b/util/rcu.c
index 60a37f72c3..43367988b9 100644
--- a/util/rcu.c
+++ b/util/rcu.c
@@ -308,10 +308,20 @@ void rcu_unregister_thread(void)
     qemu_mutex_unlock(&rcu_registry_lock);
 }
 
+typedef struct QemuRcuMessage {
+    struct rcu_head rcu;
+    void *message;
+} QemuRcuMessage;
+
+static int rcu_thread_exit_called = 0;
+static int rcu_thread_exited = 0;
+static QemuRcuMessage rcu_thread_message;
+
 static void rcu_init_complete(void)
 {
     QemuThread thread;
-
+    atomic_mb_set(&rcu_thread_exit_called, 0);
+    atomic_mb_set(&rcu_thread_exited, 0);
     qemu_mutex_init(&rcu_registry_lock);
     qemu_mutex_init(&rcu_sync_lock);
     qemu_event_init(&rcu_gp_event, true);
@@ -327,6 +337,26 @@ static void rcu_init_complete(void)
     rcu_register_thread();
 }
 
+static void rcu_thread_exit(QemuRcuMessage *param)
+{
+    atomic_mb_set((int*)param->message, 1);
+    qemu_thread_exit(NULL);
+}
+
+void rcu_wait_finished(void)
+{
+    if (atomic_xchg(&rcu_thread_exit_called, 1) == 0)
+    {
+        rcu_thread_message.message = &rcu_thread_exited;
+        call_rcu(&rcu_thread_message, rcu_thread_exit, rcu);
+    }
+
+    while (atomic_mb_read(&rcu_thread_exited) == 0)
+    {
+        g_usleep(10000);
+    }
+}
+
 static int atfork_depth = 1;
 
 void rcu_enable_atfork(void)
@@ -379,3 +409,8 @@ static void __attribute__((__constructor__)) rcu_init(void)
 #endif
     rcu_init_complete();
 }
+
+static void __attribute__((__destructor__)) rcu_uninit(void)
+{
+    rcu_wait_finished();
+}
-- 
2.28.0.windows.1



^ permalink raw reply related	[flat|nested] 43+ messages in thread

* Re: [PATCH 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2
  2020-09-08 19:48 ` [PATCH 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2 Yonggang Luo
@ 2020-09-08 20:36   ` Peter Maydell
  2020-09-08 20:57     ` 罗勇刚(Yonggang Luo)
  0 siblings, 1 reply; 43+ messages in thread
From: Peter Maydell @ 2020-09-08 20:36 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, QEMU Developers, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Tue, 8 Sep 2020 at 20:50, Yonggang Luo <luoyonggang@gmail.com> wrote:
>
> The currently random version capstone have the following compiling issue:
>   CC      /c/work/xemu/qemu/build/slirp/src/arp_table.o
> make[1]: *** No rule to make target “/c/work/xemu/qemu/build/capstone/capstone.lib”。 Stop.
>
> Subproject commit 1d230532840a37ac032c6ab80128238fc930c6c1 are the tagged version 4.0.2

Richard H says that last time we tried to move the capstone
submodule forward there were "all sorts of random portability problems
across old/odd systems", so this is probably likely to have issues
when it gets tested on other systems.

thanks
-- PMm


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 00/16] W32, W64 patches
  2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
                   ` (15 preceding siblings ...)
  2020-09-08 19:48 ` [PATCH 16/16] rcu: add uninit destructor for rcu Yonggang Luo
@ 2020-09-08 20:41 ` Eric Blake
  2020-09-08 20:52   ` 罗勇刚(Yonggang Luo)
  16 siblings, 1 reply; 43+ messages in thread
From: Eric Blake @ 2020-09-08 20:41 UTC (permalink / raw)
  To: Yonggang Luo, qemu-devel
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Michael Roth, Markus Armbruster,
	Gerd Hoffmann, Wen Congyang, Max Reitz, Li-Wen Hsu, Peter Lieven

On 9/8/20 2:48 PM, Yonggang Luo wrote:
> It first introduce msys2 CI on cirrus by fixes nfs, capstone, curses and
> disable partial test-char tests.
> And then fixes a number of unit tests failure on msys2/mingw

Please remember to include a version number (v2, v3, ...) if this is an 
improved posting of an earlier revision of the patch series.  'git 
send-email -v2' does that automatically, for example.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 00/16] W32, W64 patches
  2020-09-08 20:41 ` [PATCH 00/16] W32, W64 patches Eric Blake
@ 2020-09-08 20:52   ` 罗勇刚(Yonggang Luo)
  0 siblings, 0 replies; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-08 20:52 UTC (permalink / raw)
  To: Eric Blake
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 807 bytes --]

On Wed, Sep 9, 2020 at 4:42 AM Eric Blake <eblake@redhat.com> wrote:

> On 9/8/20 2:48 PM, Yonggang Luo wrote:
> > It first introduce msys2 CI on cirrus by fixes nfs, capstone, curses and
> > disable partial test-char tests.
> > And then fixes a number of unit tests failure on msys2/mingw
>
> Please remember to include a version number (v2, v3, ...) if this is an
> improved posting of an earlier revision of the patch series.  'git
> send-email -v2' does that automatically, for example.
>
> See that, I am using git-publish.py script, next time it will comes with a
v2.

> --
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.           +1-919-301-3226
> Virtualization:  qemu.org | libvirt.org
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 1529 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2
  2020-09-08 20:36   ` Peter Maydell
@ 2020-09-08 20:57     ` 罗勇刚(Yonggang Luo)
  0 siblings, 0 replies; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-08 20:57 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, QEMU Developers, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 964 bytes --]

On Wed, Sep 9, 2020 at 4:36 AM Peter Maydell <peter.maydell@linaro.org>
wrote:

> On Tue, 8 Sep 2020 at 20:50, Yonggang Luo <luoyonggang@gmail.com> wrote:
> >
> > The currently random version capstone have the following compiling issue:
> >   CC      /c/work/xemu/qemu/build/slirp/src/arp_table.o
> > make[1]: *** No rule to make target
> “/c/work/xemu/qemu/build/capstone/capstone.lib”。 Stop.
> >
> > Subproject commit 1d230532840a37ac032c6ab80128238fc930c6c1 are the
> tagged version 4.0.2
>
> Richard H says that last time we tried to move the capstone
> submodule forward there were "all sorts of random portability problems
> across old/odd systems", so this is probably likely to have issues
> when it gets tested on other systems.
>
Which system specifically, maybe they are dropped now or we can convert
capstone to meson?

>
> thanks
> -- PMm
>


-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 1625 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 03/16] configure: Fixes ncursesw detection under msys2/mingw and enable curses
  2020-09-08 19:48 ` [PATCH 03/16] configure: Fixes ncursesw detection under msys2/mingw and enable curses Yonggang Luo
@ 2020-09-09  4:56   ` Gerd Hoffmann
  0 siblings, 0 replies; 43+ messages in thread
From: Gerd Hoffmann @ 2020-09-09  4:56 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, qemu-devel, Max Reitz,
	Wen Congyang, Li-Wen Hsu, Markus Armbruster, Peter Lieven

On Wed, Sep 09, 2020 at 03:48:07AM +0800, Yonggang Luo wrote:
> The mingw pkg-config are showing following absolute path and contains : as the separator,
> so we must handling : properly.
> 
> -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC:/CI-Tools/msys64/mingw64/include/ncursesw:-I/usr/include/ncursesw:
> -DNCURSES_WIDECHAR -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC -pipe -lncursesw -lgnurx -ltre -lintl -liconv
> -DNCURSES_WIDECHAR -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC -lncursesw
> -DNCURSES_WIDECHAR -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=199506L -IC -lcursesw
> -DNCURSES_WIDECHAR /CI-Tools/msys64/mingw64/include/ncursesw -pipe -lncursesw -lgnurx -ltre -lintl -liconv
> -DNCURSES_WIDECHAR /CI-Tools/msys64/mingw64/include/ncursesw -lncursesw
> -DNCURSES_WIDECHAR /CI-Tools/msys64/mingw64/include/ncursesw -lcursesw
> -DNCURSES_WIDECHAR -I/usr/include/ncursesw -pipe -lncursesw -lgnurx -ltre -lintl -liconv
> -DNCURSES_WIDECHAR -I/usr/include/ncursesw -lncursesw
> -DNCURSES_WIDECHAR -I/usr/include/ncursesw -lcursesw
> 
> msys2/mingw lacks the POSIX-required langinfo.h.
> 
> gcc test.c -DNCURSES_WIDECHAR -I/mingw64/include/ncursesw -pipe -lncursesw -lgnurx -ltre -lintl -liconv
> test.c:4:10: fatal error: langinfo.h: No such file or directory
>     4 | #include <langinfo.h>
>       |          ^~~~~~~~~~~~
> compilation terminated.
> 
> So we using g_get_codeset instead of nl_langinfo(CODESET)
> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>

Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 04/16] curses: Fixes curses compiling errors.
  2020-09-08 19:48 ` [PATCH 04/16] curses: Fixes curses compiling errors Yonggang Luo
@ 2020-09-09  4:56   ` Gerd Hoffmann
  0 siblings, 0 replies; 43+ messages in thread
From: Gerd Hoffmann @ 2020-09-09  4:56 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Kevin Wolf, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, qemu-devel, Max Reitz,
	Wen Congyang, Li-Wen Hsu, Markus Armbruster, Peter Lieven

On Wed, Sep 09, 2020 at 03:48:08AM +0800, Yonggang Luo wrote:
> This is the compiling error:
> ../ui/curses.c: In function 'curses_refresh':
> ../ui/curses.c:256:5: error: 'next_maybe_keycode' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>   256 |     curses2foo(_curses2keycode, _curseskey2keycode, chr, maybe_keycode)
>       |     ^~~~~~~~~~
> ../ui/curses.c:302:32: note: 'next_maybe_keycode' was declared here
>   302 |             enum maybe_keycode next_maybe_keycode;
>       |                                ^~~~~~~~~~~~~~~~~~
> ../ui/curses.c:256:5: error: 'maybe_keycode' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>   256 |     curses2foo(_curses2keycode, _curseskey2keycode, chr, maybe_keycode)
>       |     ^~~~~~~~~~
> ../ui/curses.c:265:24: note: 'maybe_keycode' was declared here
>   265 |     enum maybe_keycode maybe_keycode;
>       |                        ^~~~~~~~~~~~~
> cc1.exe: all warnings being treated as errors
> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>

Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 05/16] tests: disable /char/stdio/* tests in test-char.c on win32
  2020-09-08 19:48 ` [PATCH 05/16] tests: disable /char/stdio/* tests in test-char.c on win32 Yonggang Luo
@ 2020-09-09  7:13   ` Thomas Huth
  2020-09-09  7:52     ` 罗勇刚(Yonggang Luo)
  0 siblings, 1 reply; 43+ messages in thread
From: Thomas Huth @ 2020-09-09  7:13 UTC (permalink / raw)
  To: Yonggang Luo, qemu-devel
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Michael Roth, Markus Armbruster,
	Gerd Hoffmann, Wen Congyang, Max Reitz, Li-Wen Hsu, Peter Lieven

On 08/09/2020 21.48, Yonggang Luo wrote:
> These tests are blocking test-char to be finished.
> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  tests/test-char.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tests/test-char.c b/tests/test-char.c
> index d35cc839bc..80e5bac61a 100644
> --- a/tests/test-char.c
> +++ b/tests/test-char.c
> @@ -103,6 +103,7 @@ static void char_console_test(void)
>      g_test_trap_assert_stdout("CONSOLE");
>  }
>  #endif
> +#ifndef _WIN32
>  static void char_stdio_test_subprocess(void)
>  {
>      Chardev *chr;
> @@ -126,6 +127,7 @@ static void char_stdio_test(void)
>      g_test_trap_assert_passed();
>      g_test_trap_assert_stdout("buf");
>  }
> +#endif
>  
>  static void char_ringbuf_test(void)
>  {
> @@ -1471,8 +1473,10 @@ int main(int argc, char **argv)
>      g_test_add_func("/char/console/subprocess", char_console_test_subprocess);
>      g_test_add_func("/char/console", char_console_test);
>  #endif
> +#ifndef _WIN32
>      g_test_add_func("/char/stdio/subprocess", char_stdio_test_subprocess);
>      g_test_add_func("/char/stdio", char_stdio_test);
> +#endif
>  #ifndef _WIN32
>      g_test_add_func("/char/pipe", char_pipe_test);
>  #endif

I think you could rather simply replace the three #ifndef _WIN32
sections with only one?

 Thomas



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 05/16] tests: disable /char/stdio/* tests in test-char.c on win32
  2020-09-09  7:13   ` Thomas Huth
@ 2020-09-09  7:52     ` 罗勇刚(Yonggang Luo)
  0 siblings, 0 replies; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-09  7:52 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 1759 bytes --]

On Wed, Sep 9, 2020 at 3:13 PM Thomas Huth <thuth@redhat.com> wrote:

> On 08/09/2020 21.48, Yonggang Luo wrote:
> > These tests are blocking test-char to be finished.
> >
> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > ---
> >  tests/test-char.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/tests/test-char.c b/tests/test-char.c
> > index d35cc839bc..80e5bac61a 100644
> > --- a/tests/test-char.c
> > +++ b/tests/test-char.c
> > @@ -103,6 +103,7 @@ static void char_console_test(void)
> >      g_test_trap_assert_stdout("CONSOLE");
> >  }
> >  #endif
> > +#ifndef _WIN32
> >  static void char_stdio_test_subprocess(void)
> >  {
> >      Chardev *chr;
> > @@ -126,6 +127,7 @@ static void char_stdio_test(void)
> >      g_test_trap_assert_passed();
> >      g_test_trap_assert_stdout("buf");
> >  }
> > +#endif
> >
> >  static void char_ringbuf_test(void)
> >  {
> > @@ -1471,8 +1473,10 @@ int main(int argc, char **argv)
> >      g_test_add_func("/char/console/subprocess",
> char_console_test_subprocess);
> >      g_test_add_func("/char/console", char_console_test);
> >  #endif
> > +#ifndef _WIN32
> >      g_test_add_func("/char/stdio/subprocess",
> char_stdio_test_subprocess);
> >      g_test_add_func("/char/stdio", char_stdio_test);
> > +#endif
> >  #ifndef _WIN32
> >      g_test_add_func("/char/pipe", char_pipe_test);
> >  #endif
>
> I think you could rather simply replace the three #ifndef _WIN32
> sections with only one?
>
That's easy, I am wondering if /char/stdio are able works under win32?
And also the  /char/pipe, anyway disable it first, trying it latter

>
>  Thomas
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 2690 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 11/16] meson: disable crypto tests are empty under win32
  2020-09-08 19:48 ` [PATCH 11/16] meson: disable crypto tests are empty under win32 Yonggang Luo
@ 2020-09-09  8:07   ` Thomas Huth
  2020-09-09  8:10   ` Daniel P. Berrangé
  1 sibling, 0 replies; 43+ messages in thread
From: Thomas Huth @ 2020-09-09  8:07 UTC (permalink / raw)
  To: Yonggang Luo, qemu-devel
  Cc: Peter Lieven, Daniel P. Berrange, Stefan Weil, Xie Changlong,
	Richard Henderson, Markus Armbruster, Max Reitz, Gerd Hoffmann,
	Wen Congyang

On 08/09/2020 21.48, Yonggang Luo wrote:
> Disable following tests on msys2/mingw
>       'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
>                                    tasn1, crypto],
>       'test-crypto-tlssession': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
>                                  tasn1, crypto],
>       'test-io-channel-tls': ['io-channel-helpers.c', 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
>                               tasn1, io, crypto]}
> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  tests/meson.build | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/meson.build b/tests/meson.build
> index 998e4c48f9..b470a90e3a 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -145,7 +145,8 @@ if have_block
>      'test-crypto-block': [io],
>    }
>    if 'CONFIG_GNUTLS' in config_host and \
> -     'CONFIG_TASN1' in config_host
> +     'CONFIG_TASN1' in config_host and \
> +     'CONFIG_POSIX' in config_host
>      tests += {
>        'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
>                                     tasn1, crypto],
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 11/16] meson: disable crypto tests are empty under win32
  2020-09-08 19:48 ` [PATCH 11/16] meson: disable crypto tests are empty under win32 Yonggang Luo
  2020-09-09  8:07   ` Thomas Huth
@ 2020-09-09  8:10   ` Daniel P. Berrangé
  2020-09-09  8:17     ` 罗勇刚(Yonggang Luo)
  1 sibling, 1 reply; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  8:10 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-devel, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 03:48:15AM +0800, Yonggang Luo wrote:
> Disable following tests on msys2/mingw
>       'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
>                                    tasn1, crypto],
>       'test-crypto-tlssession': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
>                                  tasn1, crypto],
>       'test-io-channel-tls': ['io-channel-helpers.c', 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
>                               tasn1, io, crypto]}

Why ?   GNUTLS is available on Windows and if it is enabled
at build time, then we should certainly be running the tests.

> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  tests/meson.build | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/meson.build b/tests/meson.build
> index 998e4c48f9..b470a90e3a 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -145,7 +145,8 @@ if have_block
>      'test-crypto-block': [io],
>    }
>    if 'CONFIG_GNUTLS' in config_host and \
> -     'CONFIG_TASN1' in config_host
> +     'CONFIG_TASN1' in config_host and \
> +     'CONFIG_POSIX' in config_host
>      tests += {
>        'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
>                                     tasn1, crypto],
> -- 
> 2.28.0.windows.1
> 
> 

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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 13/16] vmstate: Fixes test-vmstate.c on msys2/mingw
  2020-09-08 19:48 ` [PATCH 13/16] vmstate: Fixes test-vmstate.c on msys2/mingw Yonggang Luo
@ 2020-09-09  8:11   ` Thomas Huth
  0 siblings, 0 replies; 43+ messages in thread
From: Thomas Huth @ 2020-09-09  8:11 UTC (permalink / raw)
  To: Yonggang Luo, qemu-devel
  Cc: Peter Lieven, Juan Quintela, Stefan Weil, Xie Changlong,
	Richard Henderson, Dr. David Alan Gilbert, Markus Armbruster,
	Gerd Hoffmann, Wen Congyang, Max Reitz,
	Philippe Mathieu-Daudé

On 08/09/2020 21.48, Yonggang Luo wrote:
> The vmstate are valid on win32, just need generate tmp path properly
> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  tests/test-vmstate.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c
> index f8de709a0b..4c453575bb 100644
> --- a/tests/test-vmstate.c
> +++ b/tests/test-vmstate.c
> @@ -34,7 +34,6 @@
>  #include "qemu/module.h"
>  #include "io/channel-file.h"
>  
> -static char temp_file[] = "/tmp/vmst.test.XXXXXX";
>  static int temp_fd;
>  
>  
> @@ -1487,6 +1486,7 @@ static void test_tmp_struct(void)
>  
>  int main(int argc, char **argv)
>  {
> +    g_autofree char* temp_file = g_strdup_printf("%s/vmst.test.XXXXXX", g_get_tmp_dir());
>      temp_fd = mkstemp(temp_file);
>  
>      module_call_init(MODULE_INIT_QOM);
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 14/16] cirrus: Building freebsd in a single short
  2020-09-08 19:48 ` [PATCH 14/16] cirrus: Building freebsd in a single short Yonggang Luo
@ 2020-09-09  8:15   ` Thomas Huth
  2020-09-09  8:17   ` Daniel P. Berrangé
  1 sibling, 0 replies; 43+ messages in thread
From: Thomas Huth @ 2020-09-09  8:15 UTC (permalink / raw)
  To: Yonggang Luo, qemu-devel
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, Michael Roth, Markus Armbruster,
	Gerd Hoffmann, Wen Congyang, Max Reitz, Li-Wen Hsu, Peter Lieven

On 08/09/2020 21.48, Yonggang Luo wrote:
> freebsd 1 hour limit not hit anymore

Why is this faster again? How long did the build take for you? If it's
still close to 1h, I think we should keep the two jobs, to avoid that it
is occasionally failing when the builder machines are a little bit slower...

 Thomas



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 11/16] meson: disable crypto tests are empty under win32
  2020-09-09  8:10   ` Daniel P. Berrangé
@ 2020-09-09  8:17     ` 罗勇刚(Yonggang Luo)
  2020-09-09  8:22       ` Daniel P. Berrangé
  0 siblings, 1 reply; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-09  8:17 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 2408 bytes --]

On Wed, Sep 9, 2020 at 4:11 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:

> On Wed, Sep 09, 2020 at 03:48:15AM +0800, Yonggang Luo wrote:
> > Disable following tests on msys2/mingw
> >       'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c',
> 'pkix_asn1_tab.c',
> >                                    tasn1, crypto],
> >       'test-crypto-tlssession': ['crypto-tls-x509-helpers.c',
> 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
> >                                  tasn1, crypto],
> >       'test-io-channel-tls': ['io-channel-helpers.c',
> 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
> >                               tasn1, io, crypto]}
>
> Why ?   GNUTLS is available on Windows and if it is enabled
> at build time, then we should certainly be running the tests.
>

Don't know why., the header disable it totally. and it's requires
CONFIG_TASN1, don't know if  CONFIG_TASN1 works under win32
```
#ifndef TESTS_CRYPTO_TLS_X509_HELPERS_H
#define TESTS_CRYPTO_TLS_X509_HELPERS_H

#include <gnutls/gnutls.h>
#include <gnutls/x509.h>

#if !(defined WIN32) && \
    defined(CONFIG_TASN1)
# define QCRYPTO_HAVE_TLS_TEST_SUPPORT
#endif

#ifdef QCRYPTO_HAVE_TLS_TEST_SUPPORT
# include <libtasn1.h>
```




>
> >
> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > ---
> >  tests/meson.build | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/meson.build b/tests/meson.build
> > index 998e4c48f9..b470a90e3a 100644
> > --- a/tests/meson.build
> > +++ b/tests/meson.build
> > @@ -145,7 +145,8 @@ if have_block
> >      'test-crypto-block': [io],
> >    }
> >    if 'CONFIG_GNUTLS' in config_host and \
> > -     'CONFIG_TASN1' in config_host
> > +     'CONFIG_TASN1' in config_host and \
> > +     'CONFIG_POSIX' in config_host
> >      tests += {
> >        'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c',
> 'pkix_asn1_tab.c',
> >                                     tasn1, crypto],
> > --
> > 2.28.0.windows.1
> >
> >
>
> 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 :|
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 4035 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 14/16] cirrus: Building freebsd in a single short
  2020-09-08 19:48 ` [PATCH 14/16] cirrus: Building freebsd in a single short Yonggang Luo
  2020-09-09  8:15   ` Thomas Huth
@ 2020-09-09  8:17   ` Daniel P. Berrangé
  2020-09-09  8:24     ` 罗勇刚(Yonggang Luo)
  1 sibling, 1 reply; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  8:17 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-devel, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 03:48:18AM +0800, Yonggang Luo wrote:
> freebsd 1 hour limit not hit anymore

How long does the combined job take with this change ? If it is
within 10 minutes of the limit, then we still want the split, as
transient changes in the CI system can push it over the limit
making the test unreliable.

> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  .cirrus.yml | 35 ++++++++---------------------------
>  1 file changed, 8 insertions(+), 27 deletions(-)
> 
> diff --git a/.cirrus.yml b/.cirrus.yml
> index 49335e68c9..b0004273bb 100644
> --- a/.cirrus.yml
> +++ b/.cirrus.yml
> @@ -1,38 +1,19 @@
>  env:
>    CIRRUS_CLONE_DEPTH: 1
>  
> -freebsd_1st_task:
> +freebsd_12_task:
>    freebsd_instance:
>      image_family: freebsd-12-1
> -    cpu: 4
> -    memory: 4G
> -  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y
> -    bash curl cyrus-sasl git glib gmake gnutls gsed
> -    nettle perl5 pixman pkgconf png usbredir
> +    cpu: 8
> +    memory: 8G
> +  install_script:
> +    - ASSUME_ALWAYS_YES=yes pkg bootstrap -f ;
> +    - pkg install -y bash curl cyrus-sasl git glib gmake gnutls gsed 
> +          nettle perl5 pixman pkgconf png usbredir
>    script:
>      - mkdir build
>      - cd build
> -    - ../configure --disable-user --target-list-exclude='alpha-softmmu
> -        ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu
> -        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu'
> -        --enable-werror || { cat config.log; exit 1; }
> -    - gmake -j$(sysctl -n hw.ncpu)
> -    - gmake -j$(sysctl -n hw.ncpu) check
> -
> -freebsd_2nd_task:
> -  freebsd_instance:
> -    image_family: freebsd-12-1
> -    cpu: 4
> -    memory: 4G
> -  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y
> -    bash curl cyrus-sasl git glib gmake gnutls gtk3 gsed libepoxy mesa-libs
> -    nettle perl5 pixman pkgconf png SDL2 usbredir
> -  script:
> -    - ./configure --enable-werror --target-list='alpha-softmmu ppc64-softmmu
> -        ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu
> -        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu
> -        sparc-bsd-user sparc64-bsd-user x86_64-bsd-user i386-bsd-user'
> -        || { cat config.log; exit 1; }
> +    - ../configure --enable-werror || { cat config.log; exit 1; }
>      - gmake -j$(sysctl -n hw.ncpu)
>      - gmake -j$(sysctl -n hw.ncpu) check
>  
> -- 
> 2.28.0.windows.1
> 
> 

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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c
  2020-09-08 19:48 ` [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c Yonggang Luo
@ 2020-09-09  8:19   ` Kevin Wolf
  2020-09-09  8:41     ` 罗勇刚(Yonggang Luo)
  0 siblings, 1 reply; 43+ messages in thread
From: Kevin Wolf @ 2020-09-09  8:19 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Peter Lieven, Ed Maste, Michael Roth, qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, qemu-devel, Max Reitz,
	Gerd Hoffmann, Wen Congyang, Li-Wen Hsu, Markus Armbruster

Am 08.09.2020 um 21:48 hat Yonggang Luo geschrieben:
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  block/file-win32.c | 23 +++++++++++++++++++++--
>  1 file changed, 21 insertions(+), 2 deletions(-)

This is almost the same as my separately posted 'file-win32: Fix
"locking" option', except that you changed the order of variable
definitions which will cause a merge conflict.

When you take patches from other people, you should correctly attribute
them and not make them look as if they were your own.

Commit messages should not be empty, but explain the motivation for the
change.

In this case, dropping the patch is easiest because my patch is already
in a pull request and will probably be merged soon.

Kevin



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 11/16] meson: disable crypto tests are empty under win32
  2020-09-09  8:17     ` 罗勇刚(Yonggang Luo)
@ 2020-09-09  8:22       ` Daniel P. Berrangé
  2020-09-09  8:30         ` 罗勇刚(Yonggang Luo)
  0 siblings, 1 reply; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  8:22 UTC (permalink / raw)
  To: 罗勇刚(Yonggang Luo)
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 04:17:22PM +0800, 罗勇刚(Yonggang Luo) wrote:
> On Wed, Sep 9, 2020 at 4:11 PM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
> 
> > On Wed, Sep 09, 2020 at 03:48:15AM +0800, Yonggang Luo wrote:
> > > Disable following tests on msys2/mingw
> > >       'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c',
> > 'pkix_asn1_tab.c',
> > >                                    tasn1, crypto],
> > >       'test-crypto-tlssession': ['crypto-tls-x509-helpers.c',
> > 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
> > >                                  tasn1, crypto],
> > >       'test-io-channel-tls': ['io-channel-helpers.c',
> > 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
> > >                               tasn1, io, crypto]}
> >
> > Why ?   GNUTLS is available on Windows and if it is enabled
> > at build time, then we should certainly be running the tests.
> >
> 
> Don't know why., the header disable it totally.

Yes, I know the source disables it, because it creates various
files and no effort has been made to use WIndows filename
building code.

Given that it is already disabled in the source, why do we need
to disable it a second time in meson.build ?

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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 07/16] tests: Trying fixes test-replication.c on msys2/mingw.
  2020-09-08 19:48 ` [PATCH 07/16] tests: Trying fixes test-replication.c on msys2/mingw Yonggang Luo
@ 2020-09-09  8:23   ` Daniel P. Berrangé
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  8:23 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-devel, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 03:48:11AM +0800, Yonggang Luo wrote:
> On Windows there is no path like /tmp/s_local_disk.XXXXXX
> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  tests/test-replication.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/test-replication.c b/tests/test-replication.c
> index 9ab3666a90..cfc1ae6feb 100644
> --- a/tests/test-replication.c
> +++ b/tests/test-replication.c
> @@ -23,14 +23,14 @@
>  
>  /* primary */
>  #define P_ID "primary-id"
> -static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX";
> +static char p_local_disk[PATH_MAX];
>  
>  /* secondary */
>  #define S_ID "secondary-id"
>  #define S_LOCAL_DISK_ID "secondary-local-disk-id"
> -static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX";
> -static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX";
> -static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX";
> +static char s_local_disk[PATH_MAX];
> +static char s_active_disk[PATH_MAX];
> +static char s_hidden_disk[PATH_MAX];
>  
>  /* FIXME: steal from blockdev.c */
>  QemuOptsList qemu_drive_opts = {
> @@ -571,6 +571,11 @@ static void setup_sigabrt_handler(void)
>  int main(int argc, char **argv)
>  {
>      int ret;
> +    const char *tmpdir = g_get_tmp_dir();
> +    snprintf(p_local_disk, sizeof(p_local_disk), "%s/p_local_disk.XXXXXX", tmpdir);
> +    snprintf(s_local_disk, sizeof(s_local_disk), "%s/s_local_disk.XXXXXX", tmpdir);
> +    snprintf(s_active_disk, sizeof(s_active_disk), "%s/s_active_disk.XXXXXX", tmpdir);
> +    snprintf(s_hidden_disk, sizeof(s_hidden_disk), "%s/s_hidden_disk.XXXXXX", tmpdir);

Don't use PATH_MAX and snprintf.  Please use g_strdup_printf() as suggested
already in previous reviews.


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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 14/16] cirrus: Building freebsd in a single short
  2020-09-09  8:17   ` Daniel P. Berrangé
@ 2020-09-09  8:24     ` 罗勇刚(Yonggang Luo)
  2020-09-09  8:42       ` Daniel P. Berrangé
  0 siblings, 1 reply; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-09  8:24 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 3635 bytes --]

On Wed, Sep 9, 2020 at 4:17 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:

> On Wed, Sep 09, 2020 at 03:48:18AM +0800, Yonggang Luo wrote:
> > freebsd 1 hour limit not hit anymore
>
> How long does the combined job take with this change ? If it is
> within 10 minutes of the limit, then we still want the split, as
> transient changes in the CI system can push it over the limit
> making the test unreliable.
>
I think we going to a wrong direction, I think there is some tests a stall
the test runner,
please look at
https://cirrus-ci.com/task/5110577531977728
When its running properly, the consumed time are little, but when tests
running too long, look at the cpu
usage, the cpu usage are nearly zero. does't consuming time.

And look at
https://cirrus-ci.com/task/6119341601062912

If the tests running properly, the time consuming are little

We should not hide the error by split them

>
> >
> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > ---
> >  .cirrus.yml | 35 ++++++++---------------------------
> >  1 file changed, 8 insertions(+), 27 deletions(-)
> >
> > diff --git a/.cirrus.yml b/.cirrus.yml
> > index 49335e68c9..b0004273bb 100644
> > --- a/.cirrus.yml
> > +++ b/.cirrus.yml
> > @@ -1,38 +1,19 @@
> >  env:
> >    CIRRUS_CLONE_DEPTH: 1
> >
> > -freebsd_1st_task:
> > +freebsd_12_task:
> >    freebsd_instance:
> >      image_family: freebsd-12-1
> > -    cpu: 4
> > -    memory: 4G
> > -  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install
> -y
> > -    bash curl cyrus-sasl git glib gmake gnutls gsed
> > -    nettle perl5 pixman pkgconf png usbredir
> > +    cpu: 8
> > +    memory: 8G
> > +  install_script:
> > +    - ASSUME_ALWAYS_YES=yes pkg bootstrap -f ;
> > +    - pkg install -y bash curl cyrus-sasl git glib gmake gnutls gsed
> > +          nettle perl5 pixman pkgconf png usbredir
> >    script:
> >      - mkdir build
> >      - cd build
> > -    - ../configure --disable-user --target-list-exclude='alpha-softmmu
> > -        ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu
> s390x-softmmu
> > -        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu'
> > -        --enable-werror || { cat config.log; exit 1; }
> > -    - gmake -j$(sysctl -n hw.ncpu)
> > -    - gmake -j$(sysctl -n hw.ncpu) check
> > -
> > -freebsd_2nd_task:
> > -  freebsd_instance:
> > -    image_family: freebsd-12-1
> > -    cpu: 4
> > -    memory: 4G
> > -  install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install
> -y
> > -    bash curl cyrus-sasl git glib gmake gnutls gtk3 gsed libepoxy
> mesa-libs
> > -    nettle perl5 pixman pkgconf png SDL2 usbredir
> > -  script:
> > -    - ./configure --enable-werror --target-list='alpha-softmmu
> ppc64-softmmu
> > -        ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu
> > -        sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu
> > -        sparc-bsd-user sparc64-bsd-user x86_64-bsd-user i386-bsd-user'
> > -        || { cat config.log; exit 1; }
> > +    - ../configure --enable-werror || { cat config.log; exit 1; }
> >      - gmake -j$(sysctl -n hw.ncpu)
> >      - gmake -j$(sysctl -n hw.ncpu) check
> >
> > --
> > 2.28.0.windows.1
> >
> >
>
> 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 :|
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 5414 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 06/16] ci: Enable msys2 ci in cirrus
  2020-09-08 19:48 ` [PATCH 06/16] ci: Enable msys2 ci in cirrus Yonggang Luo
@ 2020-09-09  8:27   ` Daniel P. Berrangé
  2020-09-09  9:36     ` 罗勇刚(Yonggang Luo)
  0 siblings, 1 reply; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  8:27 UTC (permalink / raw)
  To: Yonggang Luo
  Cc: Kevin Wolf, Ed Maste, qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-devel, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 03:48:10AM +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                         | 24 +++++++++++++++++++++
>  scripts/ci/windows/msys2-build.sh   | 28 ++++++++++++++++++++++++
>  scripts/ci/windows/msys2-install.sh | 33 +++++++++++++++++++++++++++++
>  3 files changed, 85 insertions(+)
>  create mode 100644 scripts/ci/windows/msys2-build.sh
>  create mode 100644 scripts/ci/windows/msys2-install.sh
> 
> diff --git a/.cirrus.yml b/.cirrus.yml
> index 3dd9fcff7f..49335e68c9 100644
> --- a/.cirrus.yml
> +++ b/.cirrus.yml
> @@ -63,3 +63,27 @@ 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 "sh scripts/ci/windows/msys2-install.sh"
> +  script:
> +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh scripts/ci/windows/msys2-build.sh"
> diff --git a/scripts/ci/windows/msys2-build.sh b/scripts/ci/windows/msys2-build.sh
> new file mode 100644
> index 0000000000..d9d046b5b0
> --- /dev/null
> +++ b/scripts/ci/windows/msys2-build.sh
> @@ -0,0 +1,28 @@
> +mkdir build
> +cd build
> +../configure \
> +--python=python3 \
> +--ninja=ninja \
> +--enable-stack-protector \
> +--enable-guest-agent \
> +--disable-pie \
> +--enable-gnutls --enable-nettle \
> +--enable-sdl --enable-sdl-image --enable-gtk --disable-vte --enable-curses --enable-iconv \
> +--enable-vnc --enable-vnc-sasl --enable-vnc-jpeg --enable-vnc-png \
> +--enable-slirp=git \
> +--disable-brlapi --enable-curl \
> +--enable-fdt \
> +--disable-kvm --enable-hax --enable-whpx \
> +--enable-libnfs --enable-libusb --enable-live-block-migration --enable-usb-redir \
> +--enable-lzo --enable-snappy --enable-bzip2 --enable-zstd \
> +--enable-membarrier --enable-coroutine-pool \
> +--enable-libssh --enable-libxml2 \
> +--enable-jemalloc --enable-avx2 \
> +--enable-replication \
> +--enable-tools \
> +--enable-bochs --enable-cloop --enable-dmg --enable-qcow1 --enable-vdi --enable-vvfat --enable-qed --enable-parallels \
> +--enable-sheepdog \
> +--enable-capstone=git

Why do we need to have all these disable/enable args ?   AFAIK, configure
should just "do the right thing" and automatically detect and enable
libraries which are present in the environment.

Te intent is that a bare "configure" should complete successfully on all
supported platforms. Ff something breaks at build time, that is
generally considered a bug in the configure script as it should automatically
disable any features that are broken on a given platform.


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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 11/16] meson: disable crypto tests are empty under win32
  2020-09-09  8:22       ` Daniel P. Berrangé
@ 2020-09-09  8:30         ` 罗勇刚(Yonggang Luo)
  2020-09-09  8:39           ` Daniel P. Berrangé
  0 siblings, 1 reply; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-09  8:30 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 1818 bytes --]

On Wed, Sep 9, 2020 at 4:22 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:

> On Wed, Sep 09, 2020 at 04:17:22PM +0800, 罗勇刚(Yonggang Luo) wrote:
> > On Wed, Sep 9, 2020 at 4:11 PM Daniel P. Berrangé <berrange@redhat.com>
> > wrote:
> >
> > > On Wed, Sep 09, 2020 at 03:48:15AM +0800, Yonggang Luo wrote:
> > > > Disable following tests on msys2/mingw
> > > >       'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c',
> > > 'pkix_asn1_tab.c',
> > > >                                    tasn1, crypto],
> > > >       'test-crypto-tlssession': ['crypto-tls-x509-helpers.c',
> > > 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
> > > >                                  tasn1, crypto],
> > > >       'test-io-channel-tls': ['io-channel-helpers.c',
> > > 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
> > > >                               tasn1, io, crypto]}
> > >
> > > Why ?   GNUTLS is available on Windows and if it is enabled
> > > at build time, then we should certainly be running the tests.
> > >
> >
> > Don't know why., the header disable it totally.
>
> Yes, I know the source disables it, because it creates various
> files and no effort has been made to use WIndows filename
> building code.
>
> Given that it is already disabled in the source, why do we need
> to disable it a second time in meson.build ?
>
Because when there is no testcase ,the test runner would complain
ERROR - missing test plan


>
> 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 :|
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 3273 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 11/16] meson: disable crypto tests are empty under win32
  2020-09-09  8:30         ` 罗勇刚(Yonggang Luo)
@ 2020-09-09  8:39           ` Daniel P. Berrangé
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  8:39 UTC (permalink / raw)
  To: 罗勇刚(Yonggang Luo)
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 04:30:26PM +0800, 罗勇刚(Yonggang Luo) wrote:
> On Wed, Sep 9, 2020 at 4:22 PM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
> 
> > On Wed, Sep 09, 2020 at 04:17:22PM +0800, 罗勇刚(Yonggang Luo) wrote:
> > > On Wed, Sep 9, 2020 at 4:11 PM Daniel P. Berrangé <berrange@redhat.com>
> > > wrote:
> > >
> > > > On Wed, Sep 09, 2020 at 03:48:15AM +0800, Yonggang Luo wrote:
> > > > > Disable following tests on msys2/mingw
> > > > >       'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c',
> > > > 'pkix_asn1_tab.c',
> > > > >                                    tasn1, crypto],
> > > > >       'test-crypto-tlssession': ['crypto-tls-x509-helpers.c',
> > > > 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
> > > > >                                  tasn1, crypto],
> > > > >       'test-io-channel-tls': ['io-channel-helpers.c',
> > > > 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
> > > > >                               tasn1, io, crypto]}
> > > >
> > > > Why ?   GNUTLS is available on Windows and if it is enabled
> > > > at build time, then we should certainly be running the tests.
> > > >
> > >
> > > Don't know why., the header disable it totally.
> >
> > Yes, I know the source disables it, because it creates various
> > files and no effort has been made to use WIndows filename
> > building code.
> >
> > Given that it is already disabled in the source, why do we need
> > to disable it a second time in meson.build ?
> >
> Because when there is no testcase ,the test runner would complain
> ERROR - missing test plan

Ok, please say that in the commit message to explain why the change
is needed.

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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c
  2020-09-09  8:19   ` Kevin Wolf
@ 2020-09-09  8:41     ` 罗勇刚(Yonggang Luo)
  2020-09-09  8:57       ` Kevin Wolf
  0 siblings, 1 reply; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-09  8:41 UTC (permalink / raw)
  To: Kevin Wolf
  Cc: Peter Lieven, Ed Maste, Michael Roth, Qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, qemu-level, Max Reitz,
	Gerd Hoffmann, Wen Congyang, Li-Wen Hsu, Markus Armbruster

[-- Attachment #1: Type: text/plain, Size: 1248 bytes --]

On Wed, Sep 9, 2020 at 4:19 PM Kevin Wolf <kwolf@redhat.com> wrote:

> Am 08.09.2020 um 21:48 hat Yonggang Luo geschrieben:
> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > ---
> >  block/file-win32.c | 23 +++++++++++++++++++++--
> >  1 file changed, 21 insertions(+), 2 deletions(-)
>
> This is almost the same as my separately posted 'file-win32: Fix
> "locking" option', except that you changed the order of variable
> definitions which will cause a merge conflict.
>
> When you take patches from other people, you should correctly attribute
> them and not make them look as if they were your own.
>
> Commit messages should not be empty, but explain the motivation for the
> change.
>
I know someone else have already have fixes for it, so I didn't detail it
much, Ineed
I wanna skip it when sending patches, but  git-publish.py didn't handle it
well under Win32 yet

>
> In this case, dropping the patch is easiest because my patch is already
> in a pull request and will probably be merged soon.
>
I am waiting it to merged, at the current stage, if I don't include this
patch the
test runner will fail.

>
> Kevin
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 2094 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 14/16] cirrus: Building freebsd in a single short
  2020-09-09  8:24     ` 罗勇刚(Yonggang Luo)
@ 2020-09-09  8:42       ` Daniel P. Berrangé
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  8:42 UTC (permalink / raw)
  To: 罗勇刚(Yonggang Luo)
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 04:24:00PM +0800, 罗勇刚(Yonggang Luo) wrote:
> On Wed, Sep 9, 2020 at 4:17 PM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
> 
> > On Wed, Sep 09, 2020 at 03:48:18AM +0800, Yonggang Luo wrote:
> > > freebsd 1 hour limit not hit anymore
> >
> > How long does the combined job take with this change ? If it is
> > within 10 minutes of the limit, then we still want the split, as
> > transient changes in the CI system can push it over the limit
> > making the test unreliable.
> >
> I think we going to a wrong direction, I think there is some tests a stall
> the test runner,
> please look at
> https://cirrus-ci.com/task/5110577531977728
> When its running properly, the consumed time are little, but when tests
> running too long, look at the cpu
> usage, the cpu usage are nearly zero. does't consuming time.
> 
> And look at
> https://cirrus-ci.com/task/6119341601062912
> 
> If the tests running properly, the time consuming are little
> 
> We should not hide the error by split them

Ok, please explain this in the commit message so reviewers know why the
change is intentionally reverting the previous split.


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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c
  2020-09-09  8:41     ` 罗勇刚(Yonggang Luo)
@ 2020-09-09  8:57       ` Kevin Wolf
  0 siblings, 0 replies; 43+ messages in thread
From: Kevin Wolf @ 2020-09-09  8:57 UTC (permalink / raw)
  To: 罗勇刚(Yonggang Luo)
  Cc: Peter Lieven, Ed Maste, Michael Roth, Qemu-block, Stefan Weil,
	Xie Changlong, Richard Henderson, qemu-level, Max Reitz,
	Gerd Hoffmann, Wen Congyang, Li-Wen Hsu, Markus Armbruster

Am 09.09.2020 um 10:41 hat 罗勇刚(Yonggang Luo) geschrieben:
> On Wed, Sep 9, 2020 at 4:19 PM Kevin Wolf <kwolf@redhat.com> wrote:
> 
> > Am 08.09.2020 um 21:48 hat Yonggang Luo geschrieben:
> > > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > > ---
> > >  block/file-win32.c | 23 +++++++++++++++++++++--
> > >  1 file changed, 21 insertions(+), 2 deletions(-)
> >
> > This is almost the same as my separately posted 'file-win32: Fix
> > "locking" option', except that you changed the order of variable
> > definitions which will cause a merge conflict.
> >
> > When you take patches from other people, you should correctly attribute
> > them and not make them look as if they were your own.
> >
> > Commit messages should not be empty, but explain the motivation for the
> > change.
> >
> I know someone else have already have fixes for it, so I didn't detail
> it much, Ineed I wanna skip it when sending patches, but
> git-publish.py didn't handle it well under Win32 yet
> 
> >
> > In this case, dropping the patch is easiest because my patch is already
> > in a pull request and will probably be merged soon.
>
> I am waiting it to merged, at the current stage, if I don't include
> this patch the test runner will fail.

I see. This is not obvious to others and it will look like you want to
get the patch included as you sent it.

What I do in situations like this is that I put any patches from other
series first in my branch and then send out only what is on top of them,
noting the dependency in the cover letter.

Kevin



^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 06/16] ci: Enable msys2 ci in cirrus
  2020-09-09  8:27   ` Daniel P. Berrangé
@ 2020-09-09  9:36     ` 罗勇刚(Yonggang Luo)
  2020-09-09  9:40       ` Daniel P. Berrangé
  0 siblings, 1 reply; 43+ messages in thread
From: 罗勇刚(Yonggang Luo) @ 2020-09-09  9:36 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

[-- Attachment #1: Type: text/plain, Size: 5123 bytes --]

On Wed, Sep 9, 2020 at 4:27 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:

> On Wed, Sep 09, 2020 at 03:48:10AM +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                         | 24 +++++++++++++++++++++
> >  scripts/ci/windows/msys2-build.sh   | 28 ++++++++++++++++++++++++
> >  scripts/ci/windows/msys2-install.sh | 33 +++++++++++++++++++++++++++++
> >  3 files changed, 85 insertions(+)
> >  create mode 100644 scripts/ci/windows/msys2-build.sh
> >  create mode 100644 scripts/ci/windows/msys2-install.sh
> >
> > diff --git a/.cirrus.yml b/.cirrus.yml
> > index 3dd9fcff7f..49335e68c9 100644
> > --- a/.cirrus.yml
> > +++ b/.cirrus.yml
> > @@ -63,3 +63,27 @@ 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 "sh
> scripts/ci/windows/msys2-install.sh"
> > +  script:
> > +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh
> scripts/ci/windows/msys2-build.sh"
> > diff --git a/scripts/ci/windows/msys2-build.sh
> b/scripts/ci/windows/msys2-build.sh
> > new file mode 100644
> > index 0000000000..d9d046b5b0
> > --- /dev/null
> > +++ b/scripts/ci/windows/msys2-build.sh
> > @@ -0,0 +1,28 @@
> > +mkdir build
> > +cd build
> > +../configure \
> > +--python=python3 \
> > +--ninja=ninja \
> > +--enable-stack-protector \
> > +--enable-guest-agent \
> > +--disable-pie \
> > +--enable-gnutls --enable-nettle \
> > +--enable-sdl --enable-sdl-image --enable-gtk --disable-vte
> --enable-curses --enable-iconv \
> > +--enable-vnc --enable-vnc-sasl --enable-vnc-jpeg --enable-vnc-png \
> > +--enable-slirp=git \
> > +--disable-brlapi --enable-curl \
> > +--enable-fdt \
> > +--disable-kvm --enable-hax --enable-whpx \
> > +--enable-libnfs --enable-libusb --enable-live-block-migration
> --enable-usb-redir \
> > +--enable-lzo --enable-snappy --enable-bzip2 --enable-zstd \
> > +--enable-membarrier --enable-coroutine-pool \
> > +--enable-libssh --enable-libxml2 \
> > +--enable-jemalloc --enable-avx2 \
> > +--enable-replication \
> > +--enable-tools \
> > +--enable-bochs --enable-cloop --enable-dmg --enable-qcow1 --enable-vdi
> --enable-vvfat --enable-qed --enable-parallels \
> > +--enable-sheepdog \
> > +--enable-capstone=git
>
> Why do we need to have all these disable/enable args ?   AFAIK, configure
> should just "do the right thing" and automatically detect and enable
> libraries which are present in the environment.
>
> Te intent is that a bare "configure" should complete successfully on all
> supported platforms. Ff something breaks at build time, that is
> generally considered a bug in the configure script as it should
> automatically
> disable any features that are broken on a given platform.
>
Gotcha, I'll leave only configure latter, currently I use this to detect
which msys2 package not installed yet.


>
>
> 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 :|
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

[-- Attachment #2: Type: text/html, Size: 7305 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH 06/16] ci: Enable msys2 ci in cirrus
  2020-09-09  9:36     ` 罗勇刚(Yonggang Luo)
@ 2020-09-09  9:40       ` Daniel P. Berrangé
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel P. Berrangé @ 2020-09-09  9:40 UTC (permalink / raw)
  To: 罗勇刚(Yonggang Luo)
  Cc: Kevin Wolf, Ed Maste, Qemu-block, Stefan Weil, Xie Changlong,
	Richard Henderson, qemu-level, Michael Roth, Gerd Hoffmann,
	Wen Congyang, Max Reitz, Li-Wen Hsu, Markus Armbruster,
	Peter Lieven

On Wed, Sep 09, 2020 at 05:36:49PM +0800, 罗勇刚(Yonggang Luo) wrote:
> On Wed, Sep 9, 2020 at 4:27 PM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
> 
> > On Wed, Sep 09, 2020 at 03:48:10AM +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                         | 24 +++++++++++++++++++++
> > >  scripts/ci/windows/msys2-build.sh   | 28 ++++++++++++++++++++++++
> > >  scripts/ci/windows/msys2-install.sh | 33 +++++++++++++++++++++++++++++
> > >  3 files changed, 85 insertions(+)
> > >  create mode 100644 scripts/ci/windows/msys2-build.sh
> > >  create mode 100644 scripts/ci/windows/msys2-install.sh
> > >
> > > diff --git a/.cirrus.yml b/.cirrus.yml
> > > index 3dd9fcff7f..49335e68c9 100644
> > > --- a/.cirrus.yml
> > > +++ b/.cirrus.yml
> > > @@ -63,3 +63,27 @@ 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 "sh
> > scripts/ci/windows/msys2-install.sh"
> > > +  script:
> > > +    - C:\tools\msys64\usr\bin\bash.exe -lc "sh
> > scripts/ci/windows/msys2-build.sh"
> > > diff --git a/scripts/ci/windows/msys2-build.sh
> > b/scripts/ci/windows/msys2-build.sh
> > > new file mode 100644
> > > index 0000000000..d9d046b5b0
> > > --- /dev/null
> > > +++ b/scripts/ci/windows/msys2-build.sh
> > > @@ -0,0 +1,28 @@
> > > +mkdir build
> > > +cd build
> > > +../configure \
> > > +--python=python3 \
> > > +--ninja=ninja \
> > > +--enable-stack-protector \
> > > +--enable-guest-agent \
> > > +--disable-pie \
> > > +--enable-gnutls --enable-nettle \
> > > +--enable-sdl --enable-sdl-image --enable-gtk --disable-vte
> > --enable-curses --enable-iconv \
> > > +--enable-vnc --enable-vnc-sasl --enable-vnc-jpeg --enable-vnc-png \
> > > +--enable-slirp=git \
> > > +--disable-brlapi --enable-curl \
> > > +--enable-fdt \
> > > +--disable-kvm --enable-hax --enable-whpx \
> > > +--enable-libnfs --enable-libusb --enable-live-block-migration
> > --enable-usb-redir \
> > > +--enable-lzo --enable-snappy --enable-bzip2 --enable-zstd \
> > > +--enable-membarrier --enable-coroutine-pool \
> > > +--enable-libssh --enable-libxml2 \
> > > +--enable-jemalloc --enable-avx2 \
> > > +--enable-replication \
> > > +--enable-tools \
> > > +--enable-bochs --enable-cloop --enable-dmg --enable-qcow1 --enable-vdi
> > --enable-vvfat --enable-qed --enable-parallels \
> > > +--enable-sheepdog \
> > > +--enable-capstone=git
> >
> > Why do we need to have all these disable/enable args ?   AFAIK, configure
> > should just "do the right thing" and automatically detect and enable
> > libraries which are present in the environment.
> >
> > Te intent is that a bare "configure" should complete successfully on all
> > supported platforms. Ff something breaks at build time, that is
> > generally considered a bug in the configure script as it should
> > automatically
> > disable any features that are broken on a given platform.
> >
> Gotcha, I'll leave only configure latter, currently I use this to detect
> which msys2 package not installed yet.

With all those args removed, there's no real reason for this separate
shell script. Just put the configure && make commands dirctly in
the cirrus.yml file, similar to the other builds in that file.

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 :|



^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2020-09-09  9:41 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-08 19:48 [PATCH 00/16] W32, W64 patches Yonggang Luo
2020-09-08 19:48 ` [PATCH 01/16] block: Fixes nfs compiling error on msys2/mingw Yonggang Luo
2020-09-08 19:48 ` [PATCH 02/16] ci: fixes msys2 build by upgrading capstone to 4.0.2 Yonggang Luo
2020-09-08 20:36   ` Peter Maydell
2020-09-08 20:57     ` 罗勇刚(Yonggang Luo)
2020-09-08 19:48 ` [PATCH 03/16] configure: Fixes ncursesw detection under msys2/mingw and enable curses Yonggang Luo
2020-09-09  4:56   ` Gerd Hoffmann
2020-09-08 19:48 ` [PATCH 04/16] curses: Fixes curses compiling errors Yonggang Luo
2020-09-09  4:56   ` Gerd Hoffmann
2020-09-08 19:48 ` [PATCH 05/16] tests: disable /char/stdio/* tests in test-char.c on win32 Yonggang Luo
2020-09-09  7:13   ` Thomas Huth
2020-09-09  7:52     ` 罗勇刚(Yonggang Luo)
2020-09-08 19:48 ` [PATCH 06/16] ci: Enable msys2 ci in cirrus Yonggang Luo
2020-09-09  8:27   ` Daniel P. Berrangé
2020-09-09  9:36     ` 罗勇刚(Yonggang Luo)
2020-09-09  9:40       ` Daniel P. Berrangé
2020-09-08 19:48 ` [PATCH 07/16] tests: Trying fixes test-replication.c on msys2/mingw Yonggang Luo
2020-09-09  8:23   ` Daniel P. Berrangé
2020-09-08 19:48 ` [PATCH 08/16] block: get file-win32.c handle locking option consistence with file-posix.c Yonggang Luo
2020-09-09  8:19   ` Kevin Wolf
2020-09-09  8:41     ` 罗勇刚(Yonggang Luo)
2020-09-09  8:57       ` Kevin Wolf
2020-09-08 19:48 ` [PATCH 09/16] osdep: These function are only available on Non-Win32 system Yonggang Luo
2020-09-08 19:48 ` [PATCH 10/16] meson: Use -b to ignore CR vs. CR-LF issues on Windows Yonggang Luo
2020-09-08 19:48 ` [PATCH 11/16] meson: disable crypto tests are empty under win32 Yonggang Luo
2020-09-09  8:07   ` Thomas Huth
2020-09-09  8:10   ` Daniel P. Berrangé
2020-09-09  8:17     ` 罗勇刚(Yonggang Luo)
2020-09-09  8:22       ` Daniel P. Berrangé
2020-09-09  8:30         ` 罗勇刚(Yonggang Luo)
2020-09-09  8:39           ` Daniel P. Berrangé
2020-09-08 19:48 ` [PATCH 12/16] meson: remove empty else and duplicated gio deps Yonggang Luo
2020-09-08 19:48 ` [PATCH 13/16] vmstate: Fixes test-vmstate.c on msys2/mingw Yonggang Luo
2020-09-09  8:11   ` Thomas Huth
2020-09-08 19:48 ` [PATCH 14/16] cirrus: Building freebsd in a single short Yonggang Luo
2020-09-09  8:15   ` Thomas Huth
2020-09-09  8:17   ` Daniel P. Berrangé
2020-09-09  8:24     ` 罗勇刚(Yonggang Luo)
2020-09-09  8:42       ` Daniel P. Berrangé
2020-09-08 19:48 ` [PATCH 15/16] logging: Fixes memory leak in test-logging.c Yonggang Luo
2020-09-08 19:48 ` [PATCH 16/16] rcu: add uninit destructor for rcu Yonggang Luo
2020-09-08 20:41 ` [PATCH 00/16] W32, W64 patches Eric Blake
2020-09-08 20:52   ` 罗勇刚(Yonggang Luo)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).