qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups
@ 2017-05-09 11:33 Marc-André Lureau
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 01/13] char-win: simplify win_chr_read() Marc-André Lureau
                   ` (14 more replies)
  0 siblings, 15 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Hi,

This is the last batch of patches I have pending for chardev for
now. They are mostly windows and headers related, and various small
improvements.

Comments welcome,
Thanks

Marc-André Lureau (13):
  char-win: simplify win_chr_read()
  char-win: remove WinChardev.len
  char-win: rename win_chr_init/poll win_chr_serial_init/poll
  char-win: rename hcom->file
  char-win: close file handle except with console
  chardev: move headers to include/chardev
  chardev: serial & parallel declaration to own headers
  be-hci: use backend functions
  char: generalize qemu_chr_write_all()
  char: move CharBackend handling in char-fe unit
  Remove/replace chardev/char.h inclusion
  char: rename functions that are not part of fe
  char: make chr_fe_deinit() optionaly delete backend

 {chardev => include/chardev}/char-fd.h        |   2 +-
 include/chardev/char-fe.h                     | 251 +++++++++++++
 {chardev => include/chardev}/char-io.h        |   2 +-
 {chardev => include/chardev}/char-mux.h       |   3 +-
 {chardev => include/chardev}/char-parallel.h  |  20 +-
 {chardev => include/chardev}/char-serial.h    |  22 ++
 {chardev => include/chardev}/char-win-stdio.h |   0
 {chardev => include/chardev}/char-win.h       |  14 +-
 include/chardev/char.h                        | 229 ++++++++++++
 include/hw/char/bcm2835_aux.h                 |   2 +-
 include/hw/char/cadence_uart.h                |   2 +-
 include/hw/char/digic-uart.h                  |   2 +-
 include/hw/char/imx_serial.h                  |   2 +-
 include/hw/char/serial.h                      |   4 +-
 include/hw/char/stm32f2xx_usart.h             |   2 +-
 include/sysemu/char.h                         | 499 --------------------------
 backends/baum.c                               |   2 +-
 backends/msmouse.c                            |   2 +-
 backends/rng-egd.c                            |   4 +-
 backends/testdev.c                            |   2 +-
 backends/wctablet.c                           |   2 +-
 chardev/char-console.c                        |   4 +-
 chardev/char-fd.c                             |   6 +-
 chardev/char-fe.c                             | 361 +++++++++++++++++++
 chardev/char-file.c                           |   8 +-
 chardev/char-io.c                             |   2 +-
 chardev/char-mux.c                            |   6 +-
 chardev/char-null.c                           |   2 +-
 chardev/char-parallel.c                       |   6 +-
 chardev/char-pipe.c                           |  16 +-
 chardev/char-pty.c                            |   4 +-
 chardev/char-ringbuf.c                        |   2 +-
 chardev/char-serial.c                         |   8 +-
 chardev/char-socket.c                         |   4 +-
 chardev/char-stdio.c                          |   8 +-
 chardev/char-udp.c                            |   4 +-
 chardev/char-win-stdio.c                      |   4 +-
 chardev/char-win.c                            |  95 ++---
 chardev/char.c                                | 386 +-------------------
 gdbstub.c                                     |  18 +-
 hmp.c                                         |   2 +-
 hw/arm/bcm2835_peripherals.c                  |   1 -
 hw/arm/fsl-imx25.c                            |   2 +-
 hw/arm/fsl-imx31.c                            |   2 +-
 hw/arm/fsl-imx6.c                             |   2 +-
 hw/arm/omap2.c                                |   2 +-
 hw/arm/pxa2xx.c                               |   2 +-
 hw/arm/strongarm.c                            |   3 +-
 hw/bt/hci-csr.c                               |  11 +-
 hw/char/cadence_uart.c                        |   3 +-
 hw/char/debugcon.c                            |   2 +-
 hw/char/digic-uart.c                          |   2 +-
 hw/char/escc.c                                |   3 +-
 hw/char/etraxfs_ser.c                         |   2 +-
 hw/char/exynos4210_uart.c                     |   3 +-
 hw/char/grlib_apbuart.c                       |   2 +-
 hw/char/imx_serial.c                          |   1 -
 hw/char/ipoctal232.c                          |   2 +-
 hw/char/lm32_juart.c                          |   2 +-
 hw/char/lm32_uart.c                           |   2 +-
 hw/char/mcf_uart.c                            |   2 +-
 hw/char/milkymist-uart.c                      |   2 +-
 hw/char/omap_uart.c                           |   2 +-
 hw/char/parallel.c                            |   3 +-
 hw/char/pl011.c                               |   2 +-
 hw/char/sclpconsole-lm.c                      |   2 +-
 hw/char/sclpconsole.c                         |   2 +-
 hw/char/serial.c                              |   4 +-
 hw/char/sh_serial.c                           |   2 +-
 hw/char/spapr_vty.c                           |   2 +-
 hw/char/virtio-console.c                      |   2 +-
 hw/char/xen_console.c                         |   4 +-
 hw/char/xilinx_uartlite.c                     |   2 +-
 hw/core/qdev-properties-system.c              |   4 +-
 hw/core/qdev-properties.c                     |   2 +-
 hw/display/xenfb.c                            |   1 -
 hw/i386/xen/xen-hvm.c                         |   1 -
 hw/ipmi/ipmi_bmc_extern.c                     |   2 +-
 hw/isa/pc87312.c                              |   2 +-
 hw/mips/boston.c                              |   2 +-
 hw/mips/mips_fulong2e.c                       |   1 -
 hw/mips/mips_malta.c                          |   1 -
 hw/misc/ivshmem.c                             |   2 +-
 hw/net/xgmac.c                                |   1 -
 hw/ppc/spapr_events.c                         |   1 -
 hw/ppc/spapr_rtas.c                           |   1 -
 hw/sparc/leon3.c                              |   1 -
 hw/usb/ccid-card-emulated.c                   |   2 +-
 hw/usb/ccid-card-passthru.c                   |   7 +-
 hw/usb/dev-serial.c                           |   3 +-
 hw/usb/redirect.c                             |   6 +-
 hw/virtio/vhost-user.c                        |   2 +-
 hw/xen/xen-common.c                           |   2 +-
 hw/xen/xen_backend.c                          |   1 -
 hw/xtensa/xtfpga.c                            |   2 +-
 monitor.c                                     |   4 +-
 net/colo-compare.c                            |  10 +-
 net/filter-mirror.c                           |   8 +-
 net/slirp.c                                   |   2 +-
 net/vhost-user.c                              |   7 +-
 qmp.c                                         |   2 +-
 qtest.c                                       |   2 +-
 replay/replay-char.c                          |   2 +-
 slirp/slirp.c                                 |   2 +-
 spice-qemu-char.c                             |   2 +-
 tests/postcopy-test.c                         |   2 +-
 tests/test-char.c                             |  24 +-
 tests/vhost-user-test.c                       |   6 +-
 ui/console.c                                  |   2 +-
 ui/gtk.c                                      |   2 +-
 util/event_notifier-posix.c                   |   1 -
 vl.c                                          |   2 +-
 MAINTAINERS                                   |   1 +
 chardev/Makefile.objs                         |   1 +
 114 files changed, 1095 insertions(+), 1128 deletions(-)
 rename {chardev => include/chardev}/char-fd.h (98%)
 create mode 100644 include/chardev/char-fe.h
 rename {chardev => include/chardev}/char-io.h (98%)
 rename {chardev => include/chardev}/char-mux.h (97%)
 rename {chardev => include/chardev}/char-parallel.h (70%)
 rename {chardev => include/chardev}/char-serial.h (75%)
 rename {chardev => include/chardev}/char-win-stdio.h (100%)
 rename {chardev => include/chardev}/char-win.h (84%)
 create mode 100644 include/chardev/char.h
 delete mode 100644 include/sysemu/char.h
 create mode 100644 chardev/char-fe.c

-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 01/13] char-win: simplify win_chr_read()
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:55   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 02/13] char-win: remove WinChardev.len Marc-André Lureau
                   ` (13 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

win_chr_read_poll() is always used before win_chr_read().
We can easily fold win_chr_readfile() too.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char-win.h |  2 +-
 chardev/char-win.c | 35 +++++++++--------------------------
 2 files changed, 10 insertions(+), 27 deletions(-)

diff --git a/chardev/char-win.h b/chardev/char-win.h
index d78a7d7972..73a0e3caef 100644
--- a/chardev/char-win.h
+++ b/chardev/char-win.h
@@ -28,7 +28,7 @@
 
 typedef struct {
     Chardev parent;
-    int max_size;
+
     HANDLE hcom, hrecv, hsend;
     OVERLAPPED orecv;
     BOOL fpipe;
diff --git a/chardev/char-win.c b/chardev/char-win.c
index e4b6957ded..a46d878ef8 100644
--- a/chardev/char-win.c
+++ b/chardev/char-win.c
@@ -26,14 +26,21 @@
 #include "qapi/error.h"
 #include "char-win.h"
 
-static void win_chr_readfile(Chardev *chr)
+static void win_chr_read(Chardev *chr)
 {
     WinChardev *s = WIN_CHARDEV(chr);
-
+    int max_size = qemu_chr_be_can_write(chr);
     int ret, err;
     uint8_t buf[CHR_READ_BUF_LEN];
     DWORD size;
 
+    if (s->len > max_size) {
+        s->len = max_size;
+    }
+    if (s->len == 0) {
+        return;
+    }
+
     ZeroMemory(&s->orecv, sizeof(s->orecv));
     s->orecv.hEvent = s->hrecv;
     ret = ReadFile(s->hcom, buf, s->len, &size, &s->orecv);
@@ -49,28 +56,6 @@ static void win_chr_readfile(Chardev *chr)
     }
 }
 
-static void win_chr_read(Chardev *chr)
-{
-    WinChardev *s = WIN_CHARDEV(chr);
-
-    if (s->len > s->max_size) {
-        s->len = s->max_size;
-    }
-    if (s->len == 0) {
-        return;
-    }
-
-    win_chr_readfile(chr);
-}
-
-static int win_chr_read_poll(Chardev *chr)
-{
-    WinChardev *s = WIN_CHARDEV(chr);
-
-    s->max_size = qemu_chr_be_can_write(chr);
-    return s->max_size;
-}
-
 static int win_chr_poll(void *opaque)
 {
     Chardev *chr = CHARDEV(opaque);
@@ -81,7 +66,6 @@ static int win_chr_poll(void *opaque)
     ClearCommError(s->hcom, &comerr, &status);
     if (status.cbInQue > 0) {
         s->len = status.cbInQue;
-        win_chr_read_poll(chr);
         win_chr_read(chr);
         return 1;
     }
@@ -163,7 +147,6 @@ int win_chr_pipe_poll(void *opaque)
     PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL);
     if (size > 0) {
         s->len = size;
-        win_chr_read_poll(chr);
         win_chr_read(chr);
         return 1;
     }
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 02/13] char-win: remove WinChardev.len
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 01/13] char-win: simplify win_chr_read() Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:47   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 03/13] char-win: rename win_chr_init/poll win_chr_serial_init/poll Marc-André Lureau
                   ` (12 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

The "len" argument can be passed directly to win_chr_read()

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char-win.h |  1 -
 chardev/char-win.c | 16 +++++++---------
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/chardev/char-win.h b/chardev/char-win.h
index 73a0e3caef..70215e04c2 100644
--- a/chardev/char-win.h
+++ b/chardev/char-win.h
@@ -32,7 +32,6 @@ typedef struct {
     HANDLE hcom, hrecv, hsend;
     OVERLAPPED orecv;
     BOOL fpipe;
-    DWORD len;
 
     /* Protected by the Chardev chr_write_lock.  */
     OVERLAPPED osend;
diff --git a/chardev/char-win.c b/chardev/char-win.c
index a46d878ef8..5e7daeeae1 100644
--- a/chardev/char-win.c
+++ b/chardev/char-win.c
@@ -26,7 +26,7 @@
 #include "qapi/error.h"
 #include "char-win.h"
 
-static void win_chr_read(Chardev *chr)
+static void win_chr_read(Chardev *chr, DWORD len)
 {
     WinChardev *s = WIN_CHARDEV(chr);
     int max_size = qemu_chr_be_can_write(chr);
@@ -34,16 +34,16 @@ static void win_chr_read(Chardev *chr)
     uint8_t buf[CHR_READ_BUF_LEN];
     DWORD size;
 
-    if (s->len > max_size) {
-        s->len = max_size;
+    if (len > max_size) {
+        len = max_size;
     }
-    if (s->len == 0) {
+    if (len == 0) {
         return;
     }
 
     ZeroMemory(&s->orecv, sizeof(s->orecv));
     s->orecv.hEvent = s->hrecv;
-    ret = ReadFile(s->hcom, buf, s->len, &size, &s->orecv);
+    ret = ReadFile(s->hcom, buf, len, &size, &s->orecv);
     if (!ret) {
         err = GetLastError();
         if (err == ERROR_IO_PENDING) {
@@ -65,8 +65,7 @@ static int win_chr_poll(void *opaque)
 
     ClearCommError(s->hcom, &comerr, &status);
     if (status.cbInQue > 0) {
-        s->len = status.cbInQue;
-        win_chr_read(chr);
+        win_chr_read(chr, status.cbInQue);
         return 1;
     }
     return 0;
@@ -146,8 +145,7 @@ int win_chr_pipe_poll(void *opaque)
 
     PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL);
     if (size > 0) {
-        s->len = size;
-        win_chr_read(chr);
+        win_chr_read(chr, size);
         return 1;
     }
     return 0;
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 03/13] char-win: rename win_chr_init/poll win_chr_serial_init/poll
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 01/13] char-win: simplify win_chr_read() Marc-André Lureau
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 02/13] char-win: remove WinChardev.len Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:53   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 04/13] char-win: rename hcom->file Marc-André Lureau
                   ` (11 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Those 2 functions are specific to serial chardev, make it more clear.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char-win.h    | 2 +-
 chardev/char-serial.c | 2 +-
 chardev/char-win.c    | 8 ++++----
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/chardev/char-win.h b/chardev/char-win.h
index 70215e04c2..e0b3839a77 100644
--- a/chardev/char-win.h
+++ b/chardev/char-win.h
@@ -46,7 +46,7 @@ typedef struct {
 #define WIN_CHARDEV(obj) OBJECT_CHECK(WinChardev, (obj), TYPE_CHARDEV_WIN)
 
 void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out);
-int win_chr_init(Chardev *chr, const char *filename, Error **errp);
+int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp);
 int win_chr_pipe_poll(void *opaque);
 
 #endif /* CHAR_WIN_H */
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 094e08dca5..fef3a91c77 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -45,7 +45,7 @@ static void qmp_chardev_open_serial(Chardev *chr,
 {
     ChardevHostdev *serial = backend->u.serial.data;
 
-    win_chr_init(chr, serial->device, errp);
+    win_chr_serial_init(chr, serial->device, errp);
 }
 
 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
diff --git a/chardev/char-win.c b/chardev/char-win.c
index 5e7daeeae1..11abad1521 100644
--- a/chardev/char-win.c
+++ b/chardev/char-win.c
@@ -56,7 +56,7 @@ static void win_chr_read(Chardev *chr, DWORD len)
     }
 }
 
-static int win_chr_poll(void *opaque)
+static int win_chr_serial_poll(void *opaque)
 {
     Chardev *chr = CHARDEV(opaque);
     WinChardev *s = WIN_CHARDEV(opaque);
@@ -71,7 +71,7 @@ static int win_chr_poll(void *opaque)
     return 0;
 }
 
-int win_chr_init(Chardev *chr, const char *filename, Error **errp)
+int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp)
 {
     WinChardev *s = WIN_CHARDEV(chr);
     COMMCONFIG comcfg;
@@ -130,7 +130,7 @@ int win_chr_init(Chardev *chr, const char *filename, Error **errp)
         error_setg(errp, "Failed ClearCommError");
         goto fail;
     }
-    qemu_add_polling_cb(win_chr_poll, chr);
+    qemu_add_polling_cb(win_chr_serial_poll, chr);
     return 0;
 
  fail:
@@ -208,7 +208,7 @@ static void char_win_finalize(Object *obj)
     if (s->fpipe) {
         qemu_del_polling_cb(win_chr_pipe_poll, chr);
     } else {
-        qemu_del_polling_cb(win_chr_poll, chr);
+        qemu_del_polling_cb(win_chr_serial_poll, chr);
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 04/13] char-win: rename hcom->file
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (2 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 03/13] char-win: rename win_chr_init/poll win_chr_serial_init/poll Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:48   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 05/13] char-win: close file handle except with console Marc-André Lureau
                   ` (10 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

hcom is the name of the file handle, regardless of the actual chardev
driver (serial, file, console etc..). Rename it to be more explicit.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char-win.h  |  2 +-
 chardev/char-pipe.c | 10 +++++-----
 chardev/char-win.c  | 36 ++++++++++++++++++------------------
 3 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/chardev/char-win.h b/chardev/char-win.h
index e0b3839a77..888be2b3ca 100644
--- a/chardev/char-win.h
+++ b/chardev/char-win.h
@@ -29,7 +29,7 @@
 typedef struct {
     Chardev parent;
 
-    HANDLE hcom, hrecv, hsend;
+    HANDLE file, hrecv, hsend;
     OVERLAPPED orecv;
     BOOL fpipe;
 
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index 54240c863d..aae950a22b 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -58,27 +58,27 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     }
 
     openname = g_strdup_printf("\\\\.\\pipe\\%s", filename);
-    s->hcom = CreateNamedPipe(openname,
+    s->file = CreateNamedPipe(openname,
                               PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
                               PIPE_TYPE_BYTE | PIPE_READMODE_BYTE |
                               PIPE_WAIT,
                               MAXCONNECT, NSENDBUF, NRECVBUF, NTIMEOUT, NULL);
     g_free(openname);
-    if (s->hcom == INVALID_HANDLE_VALUE) {
+    if (s->file == INVALID_HANDLE_VALUE) {
         error_setg(errp, "Failed CreateNamedPipe (%lu)", GetLastError());
-        s->hcom = NULL;
+        s->file = NULL;
         goto fail;
     }
 
     ZeroMemory(&ov, sizeof(ov));
     ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
-    ret = ConnectNamedPipe(s->hcom, &ov);
+    ret = ConnectNamedPipe(s->file, &ov);
     if (ret) {
         error_setg(errp, "Failed ConnectNamedPipe");
         goto fail;
     }
 
-    ret = GetOverlappedResult(s->hcom, &ov, &size, TRUE);
+    ret = GetOverlappedResult(s->file, &ov, &size, TRUE);
     if (!ret) {
         error_setg(errp, "Failed GetOverlappedResult");
         if (ov.hEvent) {
diff --git a/chardev/char-win.c b/chardev/char-win.c
index 11abad1521..a7e3296909 100644
--- a/chardev/char-win.c
+++ b/chardev/char-win.c
@@ -43,11 +43,11 @@ static void win_chr_read(Chardev *chr, DWORD len)
 
     ZeroMemory(&s->orecv, sizeof(s->orecv));
     s->orecv.hEvent = s->hrecv;
-    ret = ReadFile(s->hcom, buf, len, &size, &s->orecv);
+    ret = ReadFile(s->file, buf, len, &size, &s->orecv);
     if (!ret) {
         err = GetLastError();
         if (err == ERROR_IO_PENDING) {
-            ret = GetOverlappedResult(s->hcom, &s->orecv, &size, TRUE);
+            ret = GetOverlappedResult(s->file, &s->orecv, &size, TRUE);
         }
     }
 
@@ -63,7 +63,7 @@ static int win_chr_serial_poll(void *opaque)
     COMSTAT status;
     DWORD comerr;
 
-    ClearCommError(s->hcom, &comerr, &status);
+    ClearCommError(s->file, &comerr, &status);
     if (status.cbInQue > 0) {
         win_chr_read(chr, status.cbInQue);
         return 1;
@@ -91,15 +91,15 @@ int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp)
         goto fail;
     }
 
-    s->hcom = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
+    s->file = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
                       OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
-    if (s->hcom == INVALID_HANDLE_VALUE) {
+    if (s->file == INVALID_HANDLE_VALUE) {
         error_setg(errp, "Failed CreateFile (%lu)", GetLastError());
-        s->hcom = NULL;
+        s->file = NULL;
         goto fail;
     }
 
-    if (!SetupComm(s->hcom, NRECVBUF, NSENDBUF)) {
+    if (!SetupComm(s->file, NRECVBUF, NSENDBUF)) {
         error_setg(errp, "Failed SetupComm");
         goto fail;
     }
@@ -110,23 +110,23 @@ int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp)
     comcfg.dcb.DCBlength = sizeof(DCB);
     CommConfigDialog(filename, NULL, &comcfg);
 
-    if (!SetCommState(s->hcom, &comcfg.dcb)) {
+    if (!SetCommState(s->file, &comcfg.dcb)) {
         error_setg(errp, "Failed SetCommState");
         goto fail;
     }
 
-    if (!SetCommMask(s->hcom, EV_ERR)) {
+    if (!SetCommMask(s->file, EV_ERR)) {
         error_setg(errp, "Failed SetCommMask");
         goto fail;
     }
 
     cto.ReadIntervalTimeout = MAXDWORD;
-    if (!SetCommTimeouts(s->hcom, &cto)) {
+    if (!SetCommTimeouts(s->file, &cto)) {
         error_setg(errp, "Failed SetCommTimeouts");
         goto fail;
     }
 
-    if (!ClearCommError(s->hcom, &err, &comstat)) {
+    if (!ClearCommError(s->file, &err, &comstat)) {
         error_setg(errp, "Failed ClearCommError");
         goto fail;
     }
@@ -143,7 +143,7 @@ int win_chr_pipe_poll(void *opaque)
     WinChardev *s = WIN_CHARDEV(opaque);
     DWORD size;
 
-    PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL);
+    PeekNamedPipe(s->file, NULL, 0, NULL, &size, NULL);
     if (size > 0) {
         win_chr_read(chr, size);
         return 1;
@@ -162,14 +162,14 @@ static int win_chr_write(Chardev *chr, const uint8_t *buf, int len1)
     s->osend.hEvent = s->hsend;
     while (len > 0) {
         if (s->hsend) {
-            ret = WriteFile(s->hcom, buf, len, &size, &s->osend);
+            ret = WriteFile(s->file, buf, len, &size, &s->osend);
         } else {
-            ret = WriteFile(s->hcom, buf, len, &size, NULL);
+            ret = WriteFile(s->file, buf, len, &size, NULL);
         }
         if (!ret) {
             err = GetLastError();
             if (err == ERROR_IO_PENDING) {
-                ret = GetOverlappedResult(s->hcom, &s->osend, &size, TRUE);
+                ret = GetOverlappedResult(s->file, &s->osend, &size, TRUE);
                 if (ret) {
                     buf += size;
                     len -= size;
@@ -202,8 +202,8 @@ static void char_win_finalize(Object *obj)
     if (s->hrecv) {
         CloseHandle(s->hrecv);
     }
-    if (s->hcom) {
-        CloseHandle(s->hcom);
+    if (s->file) {
+        CloseHandle(s->file);
     }
     if (s->fpipe) {
         qemu_del_polling_cb(win_chr_pipe_poll, chr);
@@ -219,7 +219,7 @@ void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out)
     WinChardev *s = WIN_CHARDEV(chr);
 
     s->skip_free = true;
-    s->hcom = fd_out;
+    s->file = fd_out;
 }
 
 static void char_win_class_init(ObjectClass *oc, void *data)
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 05/13] char-win: close file handle except with console
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (3 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 04/13] char-win: rename hcom->file Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-26 15:30   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 06/13] chardev: move headers to include/chardev Marc-André Lureau
                   ` (9 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Only the console handle shouldn't be closed, however, the "file" handle
should.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char-win.h     |  5 ++---
 chardev/char-console.c |  2 +-
 chardev/char-file.c    |  2 +-
 chardev/char-win.c     | 12 ++++--------
 4 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/chardev/char-win.h b/chardev/char-win.h
index 888be2b3ca..9ed2ba998a 100644
--- a/chardev/char-win.h
+++ b/chardev/char-win.h
@@ -29,14 +29,13 @@
 typedef struct {
     Chardev parent;
 
+    bool dont_close; /* console do not close file */
     HANDLE file, hrecv, hsend;
     OVERLAPPED orecv;
     BOOL fpipe;
 
     /* Protected by the Chardev chr_write_lock.  */
     OVERLAPPED osend;
-    /* FIXME: file/console do not finalize */
-    bool skip_free;
 } WinChardev;
 
 #define NSENDBUF 2048
@@ -45,7 +44,7 @@ typedef struct {
 #define TYPE_CHARDEV_WIN "chardev-win"
 #define WIN_CHARDEV(obj) OBJECT_CHECK(WinChardev, (obj), TYPE_CHARDEV_WIN)
 
-void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out);
+void win_chr_set_file(Chardev *chr, HANDLE file, bool dont_close);
 int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp);
 int win_chr_pipe_poll(void *opaque);
 
diff --git a/chardev/char-console.c b/chardev/char-console.c
index c824937fe6..8d972c1506 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -29,7 +29,7 @@ static void qemu_chr_open_win_con(Chardev *chr,
                                   bool *be_opened,
                                   Error **errp)
 {
-    qemu_chr_open_win_file(chr, GetStdHandle(STD_OUTPUT_HANDLE));
+    win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
 }
 
 static void char_console_class_init(ObjectClass *oc, void *data)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 8bae25350d..aed4ae1569 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -65,7 +65,7 @@ static void qmp_chardev_open_file(Chardev *chr,
         return;
     }
 
-    qemu_chr_open_win_file(chr, out);
+    win_chr_set_file(chr, out, false);
 #else
     int flags, in = -1, out;
 
diff --git a/chardev/char-win.c b/chardev/char-win.c
index a7e3296909..24cf364947 100644
--- a/chardev/char-win.c
+++ b/chardev/char-win.c
@@ -192,17 +192,13 @@ static void char_win_finalize(Object *obj)
     Chardev *chr = CHARDEV(obj);
     WinChardev *s = WIN_CHARDEV(chr);
 
-    if (s->skip_free) {
-        return;
-    }
-
     if (s->hsend) {
         CloseHandle(s->hsend);
     }
     if (s->hrecv) {
         CloseHandle(s->hrecv);
     }
-    if (s->file) {
+    if (!s->dont_close && s->file) {
         CloseHandle(s->file);
     }
     if (s->fpipe) {
@@ -214,12 +210,12 @@ static void char_win_finalize(Object *obj)
     qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
 }
 
-void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out)
+void win_chr_set_file(Chardev *chr, HANDLE file, bool dont_close)
 {
     WinChardev *s = WIN_CHARDEV(chr);
 
-    s->skip_free = true;
-    s->file = fd_out;
+    s->dont_close = dont_close;
+    s->file = file;
 }
 
 static void char_win_class_init(ObjectClass *oc, void *data)
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 06/13] chardev: move headers to include/chardev
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (4 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 05/13] char-win: close file handle except with console Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 11:39   ` Paolo Bonzini
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 07/13] chardev: serial & parallel declaration to own headers Marc-André Lureau
                   ` (8 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

So they are all in one place.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 {chardev => include/chardev}/char-fd.h        |  2 +-
 {chardev => include/chardev}/char-io.h        |  2 +-
 {chardev => include/chardev}/char-mux.h       |  2 +-
 {chardev => include/chardev}/char-parallel.h  |  0
 {chardev => include/chardev}/char-serial.h    |  0
 {chardev => include/chardev}/char-win-stdio.h |  0
 {chardev => include/chardev}/char-win.h       |  2 +-
 include/{sysemu => chardev}/char.h            |  0
 include/hw/char/bcm2835_aux.h                 |  2 +-
 include/hw/char/cadence_uart.h                |  2 +-
 include/hw/char/digic-uart.h                  |  2 +-
 include/hw/char/imx_serial.h                  |  2 +-
 include/hw/char/serial.h                      |  4 ++--
 include/hw/char/stm32f2xx_usart.h             |  2 +-
 backends/baum.c                               |  2 +-
 backends/msmouse.c                            |  2 +-
 backends/rng-egd.c                            |  2 +-
 backends/testdev.c                            |  2 +-
 chardev/char-console.c                        |  2 +-
 chardev/char-fd.c                             |  6 +++---
 chardev/char-file.c                           |  6 +++---
 chardev/char-io.c                             |  2 +-
 chardev/char-mux.c                            |  4 ++--
 chardev/char-null.c                           |  2 +-
 chardev/char-parallel.c                       |  6 +++---
 chardev/char-pipe.c                           |  6 +++---
 chardev/char-pty.c                            |  4 ++--
 chardev/char-ringbuf.c                        |  2 +-
 chardev/char-serial.c                         |  6 +++---
 chardev/char-socket.c                         |  4 ++--
 chardev/char-stdio.c                          |  8 ++++----
 chardev/char-udp.c                            |  4 ++--
 chardev/char-win-stdio.c                      |  4 ++--
 chardev/char-win.c                            |  2 +-
 chardev/char.c                                | 10 +++++-----
 gdbstub.c                                     |  2 +-
 hmp.c                                         |  2 +-
 hw/arm/bcm2835_peripherals.c                  |  2 +-
 hw/arm/fsl-imx25.c                            |  2 +-
 hw/arm/fsl-imx31.c                            |  2 +-
 hw/arm/fsl-imx6.c                             |  2 +-
 hw/arm/omap2.c                                |  2 +-
 hw/arm/pxa2xx.c                               |  2 +-
 hw/arm/strongarm.c                            |  2 +-
 hw/bt/hci-csr.c                               |  2 +-
 hw/char/cadence_uart.c                        |  2 +-
 hw/char/debugcon.c                            |  2 +-
 hw/char/digic-uart.c                          |  2 +-
 hw/char/escc.c                                |  2 +-
 hw/char/etraxfs_ser.c                         |  2 +-
 hw/char/exynos4210_uart.c                     |  2 +-
 hw/char/grlib_apbuart.c                       |  2 +-
 hw/char/imx_serial.c                          |  2 +-
 hw/char/ipoctal232.c                          |  2 +-
 hw/char/lm32_juart.c                          |  2 +-
 hw/char/lm32_uart.c                           |  2 +-
 hw/char/mcf_uart.c                            |  2 +-
 hw/char/milkymist-uart.c                      |  2 +-
 hw/char/omap_uart.c                           |  2 +-
 hw/char/parallel.c                            |  2 +-
 hw/char/pl011.c                               |  2 +-
 hw/char/sclpconsole-lm.c                      |  2 +-
 hw/char/sclpconsole.c                         |  2 +-
 hw/char/serial.c                              |  2 +-
 hw/char/sh_serial.c                           |  2 +-
 hw/char/spapr_vty.c                           |  2 +-
 hw/char/virtio-console.c                      |  2 +-
 hw/char/xen_console.c                         |  2 +-
 hw/char/xilinx_uartlite.c                     |  2 +-
 hw/core/qdev-properties-system.c              |  2 +-
 hw/core/qdev-properties.c                     |  2 +-
 hw/display/xenfb.c                            |  2 +-
 hw/i386/xen/xen-hvm.c                         |  2 +-
 hw/ipmi/ipmi_bmc_extern.c                     |  2 +-
 hw/isa/pc87312.c                              |  2 +-
 hw/mips/boston.c                              |  2 +-
 hw/mips/mips_fulong2e.c                       |  2 +-
 hw/mips/mips_malta.c                          |  2 +-
 hw/misc/ivshmem.c                             |  2 +-
 hw/net/xgmac.c                                |  2 +-
 hw/ppc/spapr_events.c                         |  2 +-
 hw/ppc/spapr_rtas.c                           |  2 +-
 hw/sparc/leon3.c                              |  2 +-
 hw/usb/ccid-card-emulated.c                   |  2 +-
 hw/usb/ccid-card-passthru.c                   |  2 +-
 hw/usb/dev-serial.c                           |  2 +-
 hw/usb/redirect.c                             |  2 +-
 hw/virtio/vhost-user.c                        |  2 +-
 hw/xen/xen-common.c                           |  2 +-
 hw/xen/xen_backend.c                          |  2 +-
 hw/xtensa/xtfpga.c                            |  2 +-
 monitor.c                                     |  2 +-
 net/colo-compare.c                            |  2 +-
 net/filter-mirror.c                           |  2 +-
 net/slirp.c                                   |  2 +-
 net/vhost-user.c                              |  2 +-
 qmp.c                                         |  2 +-
 qtest.c                                       |  2 +-
 replay/replay-char.c                          |  2 +-
 slirp/slirp.c                                 |  2 +-
 spice-qemu-char.c                             |  2 +-
 tests/postcopy-test.c                         |  2 +-
 tests/test-char.c                             |  2 +-
 tests/vhost-user-test.c                       |  2 +-
 ui/console.c                                  |  2 +-
 ui/gtk.c                                      |  2 +-
 util/event_notifier-posix.c                   |  2 +-
 vl.c                                          |  2 +-
 MAINTAINERS                                   |  1 +
 109 files changed, 128 insertions(+), 127 deletions(-)
 rename {chardev => include/chardev}/char-fd.h (98%)
 rename {chardev => include/chardev}/char-io.h (98%)
 rename {chardev => include/chardev}/char-mux.h (98%)
 rename {chardev => include/chardev}/char-parallel.h (100%)
 rename {chardev => include/chardev}/char-serial.h (100%)
 rename {chardev => include/chardev}/char-win-stdio.h (100%)
 rename {chardev => include/chardev}/char-win.h (98%)
 rename include/{sysemu => chardev}/char.h (100%)

diff --git a/chardev/char-fd.h b/include/chardev/char-fd.h
similarity index 98%
rename from chardev/char-fd.h
rename to include/chardev/char-fd.h
index d8327982fb..55ae5b47b0 100644
--- a/chardev/char-fd.h
+++ b/include/chardev/char-fd.h
@@ -25,7 +25,7 @@
 #define CHAR_FD_H
 
 #include "io/channel.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 typedef struct FDChardev {
     Chardev parent;
diff --git a/chardev/char-io.h b/include/chardev/char-io.h
similarity index 98%
rename from chardev/char-io.h
rename to include/chardev/char-io.h
index 842be56bda..62753f660a 100644
--- a/chardev/char-io.h
+++ b/include/chardev/char-io.h
@@ -26,7 +26,7 @@
 
 #include "qemu-common.h"
 #include "io/channel.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 /* Can only be used for read */
 guint io_add_watch_poll(Chardev *chr,
diff --git a/chardev/char-mux.h b/include/chardev/char-mux.h
similarity index 98%
rename from chardev/char-mux.h
rename to include/chardev/char-mux.h
index 3f41dfcfd2..45cdfc7e67 100644
--- a/chardev/char-mux.h
+++ b/include/chardev/char-mux.h
@@ -24,7 +24,7 @@
 #ifndef CHAR_MUX_H
 #define CHAR_MUX_H
 
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 extern bool muxes_realized;
 
diff --git a/chardev/char-parallel.h b/include/chardev/char-parallel.h
similarity index 100%
rename from chardev/char-parallel.h
rename to include/chardev/char-parallel.h
diff --git a/chardev/char-serial.h b/include/chardev/char-serial.h
similarity index 100%
rename from chardev/char-serial.h
rename to include/chardev/char-serial.h
diff --git a/chardev/char-win-stdio.h b/include/chardev/char-win-stdio.h
similarity index 100%
rename from chardev/char-win-stdio.h
rename to include/chardev/char-win-stdio.h
diff --git a/chardev/char-win.h b/include/chardev/char-win.h
similarity index 98%
rename from chardev/char-win.h
rename to include/chardev/char-win.h
index 9ed2ba998a..a440a68343 100644
--- a/chardev/char-win.h
+++ b/include/chardev/char-win.h
@@ -24,7 +24,7 @@
 #ifndef CHAR_WIN_H
 #define CHAR_WIN_H
 
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 typedef struct {
     Chardev parent;
diff --git a/include/sysemu/char.h b/include/chardev/char.h
similarity index 100%
rename from include/sysemu/char.h
rename to include/chardev/char.h
diff --git a/include/hw/char/bcm2835_aux.h b/include/hw/char/bcm2835_aux.h
index 6865f154bc..2a051c5646 100644
--- a/include/hw/char/bcm2835_aux.h
+++ b/include/hw/char/bcm2835_aux.h
@@ -9,7 +9,7 @@
 #define BCM2835_AUX_H
 
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #define TYPE_BCM2835_AUX "bcm2835-aux"
 #define BCM2835_AUX(obj) OBJECT_CHECK(BCM2835AuxState, (obj), TYPE_BCM2835_AUX)
diff --git a/include/hw/char/cadence_uart.h b/include/hw/char/cadence_uart.h
index c836db4b74..eed7d8d358 100644
--- a/include/hw/char/cadence_uart.h
+++ b/include/hw/char/cadence_uart.h
@@ -19,7 +19,7 @@
 #ifndef CADENCE_UART_H
 
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/timer.h"
 
 #define CADENCE_UART_RX_FIFO_SIZE           16
diff --git a/include/hw/char/digic-uart.h b/include/hw/char/digic-uart.h
index 340c8e1111..370b48a6c5 100644
--- a/include/hw/char/digic-uart.h
+++ b/include/hw/char/digic-uart.h
@@ -19,7 +19,7 @@
 #define HW_CHAR_DIGIC_UART_H
 
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #define TYPE_DIGIC_UART "digic-uart"
 #define DIGIC_UART(obj) \
diff --git a/include/hw/char/imx_serial.h b/include/hw/char/imx_serial.h
index 4cc3fbc395..05500f5346 100644
--- a/include/hw/char/imx_serial.h
+++ b/include/hw/char/imx_serial.h
@@ -19,7 +19,7 @@
 #define IMX_SERIAL_H
 
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #define TYPE_IMX_SERIAL "imx.serial"
 #define IMX_SERIAL(obj) OBJECT_CHECK(IMXSerialState, (obj), TYPE_IMX_SERIAL)
diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h
index daebb076c2..01dcd2a8d2 100644
--- a/include/hw/char/serial.h
+++ b/include/hw/char/serial.h
@@ -28,10 +28,10 @@
 
 #include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "exec/memory.h"
 #include "qemu/fifo8.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #define UART_FIFO_LENGTH    16      /* 16550A Fifo Length */
 
diff --git a/include/hw/char/stm32f2xx_usart.h b/include/hw/char/stm32f2xx_usart.h
index 3267523270..4259dbeb1e 100644
--- a/include/hw/char/stm32f2xx_usart.h
+++ b/include/hw/char/stm32f2xx_usart.h
@@ -26,7 +26,7 @@
 #define HW_STM32F2XX_USART_H
 
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/hw.h"
 
 #define USART_SR   0x00
diff --git a/backends/baum.c b/backends/baum.c
index 2eddcae119..302dd9666c 100644
--- a/backends/baum.c
+++ b/backends/baum.c
@@ -24,7 +24,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/timer.h"
 #include "hw/usb.h"
 #include "ui/console.h"
diff --git a/backends/msmouse.c b/backends/msmouse.c
index d2c3162f1e..0ffd137ce8 100644
--- a/backends/msmouse.c
+++ b/backends/msmouse.c
@@ -23,7 +23,7 @@
  */
 #include "qemu/osdep.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "ui/console.h"
 #include "ui/input.h"
 
diff --git a/backends/rng-egd.c b/backends/rng-egd.c
index 380b19a0a1..5448f6e5f5 100644
--- a/backends/rng-egd.c
+++ b/backends/rng-egd.c
@@ -12,7 +12,7 @@
 
 #include "qemu/osdep.h"
 #include "sysemu/rng.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qapi/error.h"
 #include "qapi/qmp/qerror.h"
 
diff --git a/backends/testdev.c b/backends/testdev.c
index 7df9248a13..031e9a23e8 100644
--- a/backends/testdev.c
+++ b/backends/testdev.c
@@ -25,7 +25,7 @@
  */
 #include "qemu/osdep.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #define BUF_SIZE 32
 
diff --git a/chardev/char-console.c b/chardev/char-console.c
index 8d972c1506..535ed65136 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "char-win.h"
+#include "chardev/char-win.h"
 
 static void qemu_chr_open_win_con(Chardev *chr,
                                   ChardevBackend *backend,
diff --git a/chardev/char-fd.c b/chardev/char-fd.c
index 548dd4cdd9..c55e7892d0 100644
--- a/chardev/char-fd.c
+++ b/chardev/char-fd.c
@@ -25,11 +25,11 @@
 #include "qemu/sockets.h"
 #include "qapi/error.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "io/channel-file.h"
 
-#include "char-fd.h"
-#include "char-io.h"
+#include "chardev/char-fd.h"
+#include "chardev/char-io.h"
 
 /* Called with chr_write_lock held.  */
 static int fd_chr_write(Chardev *chr, const uint8_t *buf, int len)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index aed4ae1569..a57b88aaf2 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -24,12 +24,12 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #ifdef _WIN32
-#include "char-win.h"
+#include "chardev/char-win.h"
 #else
-#include "char-fd.h"
+#include "chardev/char-fd.h"
 #endif
 
 static void qmp_chardev_open_file(Chardev *chr,
diff --git a/chardev/char-io.c b/chardev/char-io.c
index b4bb094ea3..f7849ddc1e 100644
--- a/chardev/char-io.c
+++ b/chardev/char-io.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "char-io.h"
+#include "chardev/char-io.h"
 
 typedef struct IOWatchPoll {
     GSource parent;
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 37d42c65c6..106c682e7f 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -24,9 +24,9 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/block-backend.h"
-#include "char-mux.h"
+#include "chardev/char-mux.h"
 
 /* MUX driver for serial I/O splitting */
 
diff --git a/chardev/char-null.c b/chardev/char-null.c
index dc0d68ab2d..90bafe76f4 100644
--- a/chardev/char-null.c
+++ b/chardev/char-null.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 static void null_chr_open(Chardev *chr,
                           ChardevBackend *backend,
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index 3fa22ce29d..bce89f8c36 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qapi/error.h"
 #include <sys/ioctl.h>
 
@@ -41,8 +41,8 @@
 #endif
 #endif
 
-#include "char-fd.h"
-#include "char-parallel.h"
+#include "chardev/char-fd.h"
+#include "chardev/char-parallel.h"
 
 #if defined(__linux__)
 
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index aae950a22b..3a95e4c1b2 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -23,12 +23,12 @@
  */
 #include "qemu/osdep.h"
 #include "qapi/error.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #ifdef _WIN32
-#include "char-win.h"
+#include "chardev/char-win.h"
 #else
-#include "char-fd.h"
+#include "chardev/char-fd.h"
 #endif
 
 #ifdef _WIN32
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index aa9d0cb2c3..b1d6ce104c 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -24,12 +24,12 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "io/channel-file.h"
 #include "qemu/sockets.h"
 #include "qemu/error-report.h"
 
-#include "char-io.h"
+#include "chardev/char-io.h"
 
 #if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
     || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) \
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index d130069e88..df52b04d22 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qmp-commands.h"
 #include "qemu/base64.h"
 
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index fef3a91c77..2f8f83821d 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -27,14 +27,14 @@
 #include "qapi/error.h"
 
 #ifdef _WIN32
-#include "char-win.h"
+#include "chardev/char-win.h"
 #else
 #include <sys/ioctl.h>
 #include <termios.h>
-#include "char-fd.h"
+#include "chardev/char-fd.h"
 #endif
 
-#include "char-serial.h"
+#include "chardev/char-serial.h"
 
 #ifdef _WIN32
 
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 9d5f062c62..8fea5d3ccd 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -22,14 +22,14 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "io/channel-socket.h"
 #include "io/channel-tls.h"
 #include "qemu/error-report.h"
 #include "qapi/error.h"
 #include "qapi/clone-visitor.h"
 
-#include "char-io.h"
+#include "chardev/char-io.h"
 
 /***********************************************************/
 /* TCP Net console */
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index be4a65962c..6f5d798d7b 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -25,14 +25,14 @@
 #include "qemu/sockets.h"
 #include "qapi/error.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #ifdef _WIN32
-#include "char-win.h"
-#include "char-win-stdio.h"
+#include "chardev/char-win.h"
+#include "chardev/char-win-stdio.h"
 #else
 #include <termios.h>
-#include "char-fd.h"
+#include "chardev/char-fd.h"
 #endif
 
 #ifndef _WIN32
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 1958c36de4..40c012d9b0 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -22,11 +22,11 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "io/channel-socket.h"
 #include "qapi/error.h"
 
-#include "char-io.h"
+#include "chardev/char-io.h"
 
 /***********************************************************/
 /* UDP Net console */
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index eb44afc17a..efcf7827eb 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -23,8 +23,8 @@
  */
 #include "qemu/osdep.h"
 #include "qapi/error.h"
-#include "char-win.h"
-#include "char-win-stdio.h"
+#include "chardev/char-win.h"
+#include "chardev/char-win-stdio.h"
 
 typedef struct {
     Chardev parent;
diff --git a/chardev/char-win.c b/chardev/char-win.c
index 24cf364947..ca236ba368 100644
--- a/chardev/char-win.c
+++ b/chardev/char-win.c
@@ -24,7 +24,7 @@
 #include "qemu/osdep.h"
 #include "qemu-common.h"
 #include "qapi/error.h"
-#include "char-win.h"
+#include "chardev/char-win.h"
 
 static void win_chr_read(Chardev *chr, DWORD len)
 {
diff --git a/chardev/char.c b/chardev/char.c
index fadfedb836..af7d871ed5 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -28,16 +28,16 @@
 #include "sysemu/sysemu.h"
 #include "qemu/config-file.h"
 #include "qemu/error-report.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qmp-commands.h"
 #include "qapi-visit.h"
 #include "sysemu/replay.h"
 #include "qemu/help_option.h"
 
-#include "char-mux.h"
-#include "char-io.h"
-#include "char-parallel.h"
-#include "char-serial.h"
+#include "chardev/char-mux.h"
+#include "chardev/char-io.h"
+#include "chardev/char-parallel.h"
+#include "chardev/char-serial.h"
 
 /***********************************************************/
 /* character device */
diff --git a/gdbstub.c b/gdbstub.c
index 07ebfe9626..e53661ec41 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -25,7 +25,7 @@
 #include "qemu.h"
 #else
 #include "monitor/monitor.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "exec/gdbstub.h"
 #endif
diff --git a/hmp.c b/hmp.c
index bd7b1caf2b..d1c94de440 100644
--- a/hmp.c
+++ b/hmp.c
@@ -17,7 +17,7 @@
 #include "hmp.h"
 #include "net/net.h"
 #include "net/eth.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/block-backend.h"
 #include "sysemu/sysemu.h"
 #include "qemu/config-file.h"
diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c
index 369ef1e3bd..091e14dc60 100644
--- a/hw/arm/bcm2835_peripherals.c
+++ b/hw/arm/bcm2835_peripherals.c
@@ -13,7 +13,7 @@
 #include "hw/arm/bcm2835_peripherals.h"
 #include "hw/misc/bcm2835_mbox_defs.h"
 #include "hw/arm/raspi_platform.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 
 /* Peripheral base address on the VC (GPU) system bus */
diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c
index 9056f27bf8..40666b68a3 100644
--- a/hw/arm/fsl-imx25.c
+++ b/hw/arm/fsl-imx25.c
@@ -30,7 +30,7 @@
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
 #include "hw/boards.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 static void fsl_imx25_init(Object *obj)
 {
diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c
index d7e2d832b2..c30130667e 100644
--- a/hw/arm/fsl-imx31.c
+++ b/hw/arm/fsl-imx31.c
@@ -27,7 +27,7 @@
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
 #include "hw/boards.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 static void fsl_imx31_init(Object *obj)
 {
diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c
index 6969e734ad..27773c9c47 100644
--- a/hw/arm/fsl-imx6.c
+++ b/hw/arm/fsl-imx6.c
@@ -24,7 +24,7 @@
 #include "qemu-common.h"
 #include "hw/arm/fsl-imx6.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/error-report.h"
 
 #define NAME_SIZE 20
diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c
index cf1b4ba58f..566749a9eb 100644
--- a/hw/arm/omap2.c
+++ b/hw/arm/omap2.c
@@ -30,7 +30,7 @@
 #include "hw/arm/omap.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/block/flash.h"
 #include "hw/arm/soc_dma.h"
 #include "hw/sysbus.h"
diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
index eea551dc16..0d43cc707c 100644
--- a/hw/arm/pxa2xx.c
+++ b/hw/arm/pxa2xx.c
@@ -17,7 +17,7 @@
 #include "hw/char/serial.h"
 #include "hw/i2c/i2c.h"
 #include "hw/ssi/ssi.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/block-backend.h"
 #include "sysemu/blockdev.h"
 #include "qemu/cutils.h"
diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
index 3311cc38a4..66cad198d4 100644
--- a/hw/arm/strongarm.c
+++ b/hw/arm/strongarm.c
@@ -34,7 +34,7 @@
 #include "strongarm.h"
 #include "qemu/error-report.h"
 #include "hw/arm/arm.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "hw/ssi/ssi.h"
 #include "qemu/cutils.h"
diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
index 3c193848fc..cc2087392e 100644
--- a/hw/bt/hci-csr.c
+++ b/hw/bt/hci-csr.c
@@ -20,7 +20,7 @@
 
 #include "qemu/osdep.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/timer.h"
 #include "qemu/bswap.h"
 #include "hw/irq.h"
diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c
index 4dcee571c0..cf4c1d56ff 100644
--- a/hw/char/cadence_uart.c
+++ b/hw/char/cadence_uart.c
@@ -23,7 +23,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/timer.h"
 #include "qemu/log.h"
 #include "hw/char/cadence_uart.h"
diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c
index 80dce07e7f..77d91c8558 100644
--- a/hw/char/debugcon.c
+++ b/hw/char/debugcon.c
@@ -27,7 +27,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "hw/hw.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/isa/isa.h"
 #include "hw/i386/pc.h"
 
diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c
index 029f5bbf5e..4f1dec7f1d 100644
--- a/hw/char/digic-uart.c
+++ b/hw/char/digic-uart.c
@@ -29,7 +29,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/log.h"
 
 #include "hw/char/digic-uart.h"
diff --git a/hw/char/escc.c b/hw/char/escc.c
index 9228091cec..df89d58eed 100644
--- a/hw/char/escc.c
+++ b/hw/char/escc.c
@@ -26,7 +26,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/char/escc.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "ui/console.h"
 #include "ui/input.h"
 #include "trace.h"
diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c
index 54383878e0..33e3e16397 100644
--- a/hw/char/etraxfs_ser.c
+++ b/hw/char/etraxfs_ser.c
@@ -24,7 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/log.h"
 
 #define D(x)
diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c
index bff706ab3a..94952fb90f 100644
--- a/hw/char/exynos4210_uart.c
+++ b/hw/char/exynos4210_uart.c
@@ -23,7 +23,7 @@
 #include "hw/sysbus.h"
 #include "qemu/error-report.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #include "hw/arm/exynos4210.h"
 
diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c
index db686e6a6f..39d1133c61 100644
--- a/hw/char/grlib_apbuart.c
+++ b/hw/char/grlib_apbuart.c
@@ -24,7 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #include "trace.h"
 
diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
index 52e67f8dc9..1d4f378a59 100644
--- a/hw/char/imx_serial.c
+++ b/hw/char/imx_serial.c
@@ -21,7 +21,7 @@
 #include "qemu/osdep.h"
 #include "hw/char/imx_serial.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/log.h"
 
 #ifndef DEBUG_IMX_UART
diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c
index 93929c2880..b8a3c92c9e 100644
--- a/hw/char/ipoctal232.c
+++ b/hw/char/ipoctal232.c
@@ -11,7 +11,7 @@
 #include "qemu/osdep.h"
 #include "hw/ipack/ipack.h"
 #include "qemu/bitops.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 /* #define DEBUG_IPOCTAL */
 
diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c
index f8c1e0d076..6b0633e518 100644
--- a/hw/char/lm32_juart.c
+++ b/hw/char/lm32_juart.c
@@ -21,7 +21,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #include "hw/char/lm32_juart.h"
 
diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c
index 7f3597c4b0..a7610c28ce 100644
--- a/hw/char/lm32_uart.c
+++ b/hw/char/lm32_uart.c
@@ -26,7 +26,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/error-report.h"
 
 enum {
diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c
index e69672f4e9..b639b53c83 100644
--- a/hw/char/mcf_uart.c
+++ b/hw/char/mcf_uart.c
@@ -9,7 +9,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/m68k/mcf.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "exec/address-spaces.h"
 #include "qapi/error.h"
 
diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c
index ae8e2f3554..5ef847c5eb 100644
--- a/hw/char/milkymist-uart.c
+++ b/hw/char/milkymist-uart.c
@@ -25,7 +25,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/error-report.h"
 
 enum {
diff --git a/hw/char/omap_uart.c b/hw/char/omap_uart.c
index 31ebb1592c..6fd1b9cf6b 100644
--- a/hw/char/omap_uart.c
+++ b/hw/char/omap_uart.c
@@ -18,7 +18,7 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/hw.h"
 #include "hw/arm/omap.h"
 #include "hw/char/serial.h"
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index c71a4a0f4f..c926df0bee 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -25,7 +25,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "hw/hw.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/isa/isa.h"
 #include "hw/i386/pc.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/char/pl011.c b/hw/char/pl011.c
index 24ea9738b6..1757035bb3 100644
--- a/hw/char/pl011.c
+++ b/hw/char/pl011.c
@@ -9,7 +9,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/log.h"
 #include "trace.h"
 
diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c
index 07d6ebd112..755d514188 100644
--- a/hw/char/sclpconsole-lm.c
+++ b/hw/char/sclpconsole-lm.c
@@ -17,7 +17,7 @@
 #include "hw/qdev.h"
 #include "qemu/thread.h"
 #include "qemu/error-report.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #include "hw/s390x/sclp.h"
 #include "hw/s390x/event-facility.h"
diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c
index b78f240a73..0fd3cb4887 100644
--- a/hw/char/sclpconsole.c
+++ b/hw/char/sclpconsole.c
@@ -19,7 +19,7 @@
 
 #include "hw/s390x/sclp.h"
 #include "hw/s390x/event-facility.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 typedef struct ASCIIConsoleData {
     EventBufferHeader ebh;
diff --git a/hw/char/serial.c b/hw/char/serial.c
index 03d890ca24..aa336333be 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -25,7 +25,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/char/serial.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qapi/error.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
index 303eb0a678..80c7696d8d 100644
--- a/hw/char/sh_serial.c
+++ b/hw/char/sh_serial.c
@@ -27,7 +27,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/sh4/sh.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "exec/address-spaces.h"
 #include "qapi/error.h"
 
diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c
index e30c8da57c..2317e45404 100644
--- a/hw/char/spapr_vty.c
+++ b/hw/char/spapr_vty.c
@@ -4,7 +4,7 @@
 #include "qemu-common.h"
 #include "cpu.h"
 #include "hw/qdev.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/ppc/spapr.h"
 #include "hw/ppc/spapr_vio.h"
 
diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c
index 798d9b69fd..8418db6a07 100644
--- a/hw/char/virtio-console.c
+++ b/hw/char/virtio-console.c
@@ -11,7 +11,7 @@
  */
 
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/error-report.h"
 #include "trace.h"
 #include "hw/virtio/virtio-serial.h"
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index c01f41090e..1cdbe59f8a 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -25,7 +25,7 @@
 
 #include "qapi/error.h"
 #include "hw/hw.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/xen/xen_backend.h"
 #include "qapi/error.h"
 
diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c
index 37d313b429..bcebdae3da 100644
--- a/hw/char/xilinx_uartlite.c
+++ b/hw/char/xilinx_uartlite.c
@@ -24,7 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #define DUART(x)
 
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 79c2014135..4da0c6a24e 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -20,7 +20,7 @@
 #include "hw/block/block.h"
 #include "net/hub.h"
 #include "qapi/visitor.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/iothread.h"
 
 static void get_pointer(Object *obj, Visitor *v, Property *prop,
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index fa3617db2d..9f1a497322 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -9,7 +9,7 @@
 #include "hw/block/block.h"
 #include "net/hub.h"
 #include "qapi/visitor.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 void qdev_prop_set_after_realize(DeviceState *dev, const char *name,
                                   Error **errp)
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 7a8727aa21..4a1a2a4d6e 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -28,7 +28,7 @@
 
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/xen/xen_backend.h"
 
 #include <xen/event_channel.h>
diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index b1c05ffb86..8dc57a31cf 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -18,7 +18,7 @@
 #include "hw/xen/xen_backend.h"
 #include "qmp-commands.h"
 
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/error-report.h"
 #include "qemu/range.h"
 #include "sysemu/xen-mapcache.h"
diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c
index e8e3d250b6..35285383fd 100644
--- a/hw/ipmi/ipmi_bmc_extern.c
+++ b/hw/ipmi/ipmi_bmc_extern.c
@@ -30,7 +30,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu/timer.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "hw/ipmi/ipmi.h"
 
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index c707d24db4..5ce9f0a062 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -30,7 +30,7 @@
 #include "sysemu/block-backend.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "trace.h"
 
 
diff --git a/hw/mips/boston.c b/hw/mips/boston.c
index 83f7b82386..56d22fe49b 100644
--- a/hw/mips/boston.c
+++ b/hw/mips/boston.c
@@ -35,7 +35,7 @@
 #include "qemu/cutils.h"
 #include "qemu/error-report.h"
 #include "qemu/log.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/device_tree.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/qtest.h"
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index e636c3abaa..55eeb9227d 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -32,7 +32,7 @@
 #include "hw/mips/mips.h"
 #include "hw/mips/cpudevs.h"
 #include "hw/pci/pci.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "audio/audio.h"
 #include "qemu/log.h"
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 5dd177e961..610e1e9085 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -37,7 +37,7 @@
 #include "hw/mips/mips.h"
 #include "hw/mips/cpudevs.h"
 #include "hw/pci/pci.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/arch_init.h"
 #include "qemu/log.h"
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index 82ce8378bf..a45bb7943d 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -29,7 +29,7 @@
 #include "qemu/error-report.h"
 #include "qemu/event_notifier.h"
 #include "qom/object_interfaces.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/hostmem.h"
 #include "sysemu/qtest.h"
 #include "qapi/visitor.h"
diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
index 46b1aa17fa..3d00e2868c 100644
--- a/hw/net/xgmac.c
+++ b/hw/net/xgmac.c
@@ -26,7 +26,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/log.h"
 #include "net/net.h"
 #include "net/checksum.h"
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index f0b28d8112..b309f2f4b0 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -28,7 +28,7 @@
 #include "qapi/error.h"
 #include "cpu.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 619f32c054..9995b1a9f5 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -29,7 +29,7 @@
 #include "qemu/log.h"
 #include "qemu/error-report.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 #include "sysemu/cpus.h"
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index 6e16478413..f3e62f5bd7 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -28,7 +28,7 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "hw/ptimer.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/qtest.h"
 #include "hw/boards.h"
diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index 99627860a3..690b6c3ab4 100644
--- a/hw/usb/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
@@ -33,7 +33,7 @@
 #include <vcard_emul.h>
 
 #include "qemu/thread.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "ccid.h"
 
 #define DPRINTF(card, lvl, fmt, ...) \
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index a41b0d6ec5..c2096b25ab 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -9,7 +9,7 @@
  */
 
 #include "qemu/osdep.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/error-report.h"
 #include "qemu/sockets.h"
 #include "ccid.h"
diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
index 6d5137383b..c19cd310c2 100644
--- a/hw/usb/dev-serial.c
+++ b/hw/usb/dev-serial.c
@@ -15,7 +15,7 @@
 #include "qemu/error-report.h"
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 //#define DEBUG_Serial
 
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index b001a27f05..48468fc61a 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -33,7 +33,7 @@
 #include "qapi/qmp/qerror.h"
 #include "qemu/error-report.h"
 #include "qemu/iov.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 #include <usbredirparser.h>
 #include <usbredirfilter.h>
diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
index 9334a8ae22..07b97205fa 100644
--- a/hw/virtio/vhost-user.c
+++ b/hw/virtio/vhost-user.c
@@ -13,7 +13,7 @@
 #include "hw/virtio/vhost.h"
 #include "hw/virtio/vhost-backend.h"
 #include "hw/virtio/virtio-net.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/kvm.h"
 #include "qemu/error-report.h"
 #include "qemu/sockets.h"
diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c
index a9055e9eba..0bed5770c9 100644
--- a/hw/xen/xen-common.c
+++ b/hw/xen/xen-common.c
@@ -11,7 +11,7 @@
 #include "qemu/osdep.h"
 #include "hw/xen/xen_backend.h"
 #include "qmp-commands.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/accel.h"
 #include "migration/migration.h"
 
diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c
index c85f1637e4..a252a7fd96 100644
--- a/hw/xen/xen_backend.c
+++ b/hw/xen/xen_backend.c
@@ -28,7 +28,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/boards.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/log.h"
 #include "qapi/error.h"
 #include "hw/xen/xen_backend.h"
diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
index 11176e26bd..5b31cdc566 100644
--- a/hw/xtensa/xtfpga.c
+++ b/hw/xtensa/xtfpga.c
@@ -40,7 +40,7 @@
 #include "hw/sysbus.h"
 #include "hw/block/flash.h"
 #include "sysemu/block-backend.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/device_tree.h"
 #include "qemu/error-report.h"
 #include "bootparam.h"
diff --git a/monitor.c b/monitor.c
index ce1102944b..1b041e0514 100644
--- a/monitor.c
+++ b/monitor.c
@@ -35,7 +35,7 @@
 #include "exec/gdbstub.h"
 #include "net/net.h"
 #include "net/slirp.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "ui/qemu-spice.h"
 #include "sysemu/numa.h"
 #include "monitor/monitor.h"
diff --git a/net/colo-compare.c b/net/colo-compare.c
index 4ab80b1cbb..d2cdcdfd78 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -25,7 +25,7 @@
 #include "qom/object.h"
 #include "qemu/typedefs.h"
 #include "net/queue.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/sockets.h"
 #include "qapi-visit.h"
 #include "net/colo.h"
diff --git a/net/filter-mirror.c b/net/filter-mirror.c
index 72fa7c2b6c..03a380b4db 100644
--- a/net/filter-mirror.c
+++ b/net/filter-mirror.c
@@ -20,7 +20,7 @@
 #include "qemu/main-loop.h"
 #include "qemu/error-report.h"
 #include "trace.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/iov.h"
 #include "qemu/sockets.h"
 
diff --git a/net/slirp.c b/net/slirp.c
index c705a60b62..af3e8b22ac 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -37,7 +37,7 @@
 #include "qemu/sockets.h"
 #include "slirp/libslirp.h"
 #include "slirp/ip6.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "qemu/cutils.h"
 #include "qapi/error.h"
diff --git a/net/vhost-user.c b/net/vhost-user.c
index 00a0c1cbc5..77d2ce22a6 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -12,7 +12,7 @@
 #include "clients.h"
 #include "net/vhost_net.h"
 #include "net/vhost-user.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/config-file.h"
 #include "qemu/error-report.h"
 #include "qmp-commands.h"
diff --git a/qmp.c b/qmp.c
index ab74cd729d..5cebc543c6 100644
--- a/qmp.c
+++ b/qmp.c
@@ -21,7 +21,7 @@
 #include "qemu/config-file.h"
 #include "qemu/uuid.h"
 #include "qmp-commands.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "ui/qemu-spice.h"
 #include "ui/vnc.h"
 #include "sysemu/kvm.h"
diff --git a/qtest.c b/qtest.c
index 5aa6636ca8..dbf70a7018 100644
--- a/qtest.c
+++ b/qtest.c
@@ -17,7 +17,7 @@
 #include "cpu.h"
 #include "sysemu/qtest.h"
 #include "hw/qdev.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "exec/ioport.h"
 #include "exec/memory.h"
 #include "hw/irq.h"
diff --git a/replay/replay-char.c b/replay/replay-char.c
index aa65955942..cbf7c04a9f 100755
--- a/replay/replay-char.c
+++ b/replay/replay-char.c
@@ -14,7 +14,7 @@
 #include "sysemu/replay.h"
 #include "replay-internal.h"
 #include "sysemu/sysemu.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 
 /* Char drivers that generate qemu_chr_be_write events
    that should be saved into the log. */
diff --git a/slirp/slirp.c b/slirp/slirp.c
index 2f2ec2c1b3..3b92cb54ce 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -25,7 +25,7 @@
 #include "qemu-common.h"
 #include "qemu/timer.h"
 #include "qemu/error-report.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "slirp.h"
 #include "hw/hw.h"
 #include "qemu/cutils.h"
diff --git a/spice-qemu-char.c b/spice-qemu-char.c
index 4d1c76e8a4..1c6c2e3969 100644
--- a/spice-qemu-char.c
+++ b/spice-qemu-char.c
@@ -1,7 +1,7 @@
 #include "qemu/osdep.h"
 #include "trace-root.h"
 #include "ui/qemu-spice.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/error-report.h"
 #include <spice.h>
 #include <spice/protocol.h>
diff --git a/tests/postcopy-test.c b/tests/postcopy-test.c
index de35a18903..85e7666e84 100644
--- a/tests/postcopy-test.c
+++ b/tests/postcopy-test.c
@@ -16,7 +16,7 @@
 #include "qemu/option.h"
 #include "qemu/range.h"
 #include "qemu/sockets.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "hw/nvram/chrp_nvram.h"
 
diff --git a/tests/test-char.c b/tests/test-char.c
index 773a1c36ba..a6ab17c100 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -4,7 +4,7 @@
 #include "qemu-common.h"
 #include "qemu/config-file.h"
 #include "qemu/sockets.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "qapi/error.h"
 #include "qom/qom-qobject.h"
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 9095af267e..acc392d046 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -16,7 +16,7 @@
 #include "qemu/option.h"
 #include "qemu/range.h"
 #include "qemu/sockets.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "libqos/libqos.h"
 #include "libqos/pci-pc.h"
diff --git a/ui/console.c b/ui/console.c
index ac66b3c910..6cf795a23d 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -27,7 +27,7 @@
 #include "hw/qdev-core.h"
 #include "qemu/timer.h"
 #include "qmp-commands.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "trace.h"
 #include "exec/memory.h"
 
diff --git a/ui/gtk.c b/ui/gtk.c
index 7479ceef35..8bb836a09d 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -54,7 +54,7 @@
 #include "qmp-commands.h"
 #include "x_keymap.h"
 #include "keymaps.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qom/object.h"
 
 #define MAX_VCS 10
diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
index acdbe3b483..8ab06f9b41 100644
--- a/util/event_notifier-posix.c
+++ b/util/event_notifier-posix.c
@@ -14,7 +14,7 @@
 #include "qemu-common.h"
 #include "qemu/cutils.h"
 #include "qemu/event_notifier.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/main-loop.h"
 
 #ifdef CONFIG_EVENTFD
diff --git a/vl.c b/vl.c
index 560288fe0c..c028faa149 100644
--- a/vl.c
+++ b/vl.c
@@ -81,7 +81,7 @@ int main(int argc, char **argv)
 #include "sysemu/numa.h"
 #include "exec/gdbstub.h"
 #include "qemu/timer.h"
-#include "sysemu/char.h"
+#include "chardev/char.h"
 #include "qemu/bitmap.h"
 #include "qemu/log.h"
 #include "sysemu/blockdev.h"
diff --git a/MAINTAINERS b/MAINTAINERS
index efdec47319..8f8efa3f7b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1221,6 +1221,7 @@ M: Paolo Bonzini <pbonzini@redhat.com>
 M: Marc-André Lureau <marcandre.lureau@redhat.com>
 S: Maintained
 F: chardev/
+F: include/chardev/
 F: backends/msmouse.c
 F: backends/testdev.c
 
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 07/13] chardev: serial & parallel declaration to own headers
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (5 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 06/13] chardev: move headers to include/chardev Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 11:41   ` Paolo Bonzini
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 08/13] be-hci: use backend functions Marc-André Lureau
                   ` (7 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 include/chardev/char-parallel.h | 20 +++++++++++++++++++-
 include/chardev/char-serial.h   | 22 ++++++++++++++++++++++
 include/chardev/char.h          | 36 ------------------------------------
 hw/arm/strongarm.c              |  2 +-
 hw/bt/hci-csr.c                 |  2 +-
 hw/char/cadence_uart.c          |  2 +-
 hw/char/escc.c                  |  2 +-
 hw/char/exynos4210_uart.c       |  2 +-
 hw/char/parallel.c              |  2 +-
 hw/char/serial.c                |  2 +-
 hw/usb/dev-serial.c             |  2 +-
 11 files changed, 49 insertions(+), 45 deletions(-)

diff --git a/include/chardev/char-parallel.h b/include/chardev/char-parallel.h
index 26742f9d5c..3284a1b96b 100644
--- a/include/chardev/char-parallel.h
+++ b/include/chardev/char-parallel.h
@@ -24,9 +24,27 @@
 #ifndef CHAR_PARALLEL_H
 #define CHAR_PARALLEL_H
 
-#if defined(__linux__) || defined(__FreeBSD__) || \
+#include "chardev/char.h"
+
+#if defined(__linux__) || defined(__FreeBSD__) ||               \
     defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 #define HAVE_CHARDEV_PARPORT 1
 #endif
 
+#define CHR_IOCTL_PP_READ_DATA        3
+#define CHR_IOCTL_PP_WRITE_DATA       4
+#define CHR_IOCTL_PP_READ_CONTROL     5
+#define CHR_IOCTL_PP_WRITE_CONTROL    6
+#define CHR_IOCTL_PP_READ_STATUS      7
+#define CHR_IOCTL_PP_EPP_READ_ADDR    8
+#define CHR_IOCTL_PP_EPP_READ         9
+#define CHR_IOCTL_PP_EPP_WRITE_ADDR  10
+#define CHR_IOCTL_PP_EPP_WRITE       11
+#define CHR_IOCTL_PP_DATA_DIR        12
+
+struct ParallelIOArg {
+    void *buffer;
+    int count;
+};
+
 #endif /* CHAR_PARALLEL_H */
diff --git a/include/chardev/char-serial.h b/include/chardev/char-serial.h
index 64a27f63b1..cb2e59e82a 100644
--- a/include/chardev/char-serial.h
+++ b/include/chardev/char-serial.h
@@ -24,6 +24,8 @@
 #ifndef CHAR_SERIAL_H
 #define CHAR_SERIAL_H
 
+#include "chardev/char.h"
+
 #ifdef _WIN32
 #define HAVE_CHARDEV_SERIAL 1
 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)    \
@@ -32,4 +34,24 @@
 #define HAVE_CHARDEV_SERIAL 1
 #endif
 
+#define CHR_IOCTL_SERIAL_SET_PARAMS   1
+typedef struct {
+    int speed;
+    int parity;
+    int data_bits;
+    int stop_bits;
+} QEMUSerialSetParams;
+
+#define CHR_IOCTL_SERIAL_SET_BREAK    2
+
+#define CHR_IOCTL_SERIAL_SET_TIOCM   13
+#define CHR_IOCTL_SERIAL_GET_TIOCM   14
+
+#define CHR_TIOCM_CTS   0x020
+#define CHR_TIOCM_CAR   0x040
+#define CHR_TIOCM_DSR   0x100
+#define CHR_TIOCM_RI    0x080
+#define CHR_TIOCM_DTR   0x002
+#define CHR_TIOCM_RTS   0x004
+
 #endif
diff --git a/include/chardev/char.h b/include/chardev/char.h
index ea9f2cb7d6..0e1ef1ea4f 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -27,42 +27,6 @@ typedef enum {
 
 #define CHR_READ_BUF_LEN 4096
 
-#define CHR_IOCTL_SERIAL_SET_PARAMS   1
-typedef struct {
-    int speed;
-    int parity;
-    int data_bits;
-    int stop_bits;
-} QEMUSerialSetParams;
-
-#define CHR_IOCTL_SERIAL_SET_BREAK    2
-
-#define CHR_IOCTL_PP_READ_DATA        3
-#define CHR_IOCTL_PP_WRITE_DATA       4
-#define CHR_IOCTL_PP_READ_CONTROL     5
-#define CHR_IOCTL_PP_WRITE_CONTROL    6
-#define CHR_IOCTL_PP_READ_STATUS      7
-#define CHR_IOCTL_PP_EPP_READ_ADDR    8
-#define CHR_IOCTL_PP_EPP_READ         9
-#define CHR_IOCTL_PP_EPP_WRITE_ADDR  10
-#define CHR_IOCTL_PP_EPP_WRITE       11
-#define CHR_IOCTL_PP_DATA_DIR        12
-
-struct ParallelIOArg {
-    void *buffer;
-    int count;
-};
-
-#define CHR_IOCTL_SERIAL_SET_TIOCM   13
-#define CHR_IOCTL_SERIAL_GET_TIOCM   14
-
-#define CHR_TIOCM_CTS	0x020
-#define CHR_TIOCM_CAR	0x040
-#define CHR_TIOCM_DSR	0x100
-#define CHR_TIOCM_RI	0x080
-#define CHR_TIOCM_DTR	0x002
-#define CHR_TIOCM_RTS	0x004
-
 typedef void IOEventHandler(void *opaque, int event);
 
 typedef enum {
diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
index 66cad198d4..967caea749 100644
--- a/hw/arm/strongarm.c
+++ b/hw/arm/strongarm.c
@@ -34,7 +34,7 @@
 #include "strongarm.h"
 #include "qemu/error-report.h"
 #include "hw/arm/arm.h"
-#include "chardev/char.h"
+#include "chardev/char-serial.h"
 #include "sysemu/sysemu.h"
 #include "hw/ssi/ssi.h"
 #include "qemu/cutils.h"
diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
index cc2087392e..0f2021086d 100644
--- a/hw/bt/hci-csr.c
+++ b/hw/bt/hci-csr.c
@@ -20,7 +20,7 @@
 
 #include "qemu/osdep.h"
 #include "qemu-common.h"
-#include "chardev/char.h"
+#include "chardev/char-serial.h"
 #include "qemu/timer.h"
 #include "qemu/bswap.h"
 #include "hw/irq.h"
diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c
index cf4c1d56ff..4bfc185376 100644
--- a/hw/char/cadence_uart.c
+++ b/hw/char/cadence_uart.c
@@ -23,7 +23,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-serial.h"
 #include "qemu/timer.h"
 #include "qemu/log.h"
 #include "hw/char/cadence_uart.h"
diff --git a/hw/char/escc.c b/hw/char/escc.c
index df89d58eed..81d792cb47 100644
--- a/hw/char/escc.c
+++ b/hw/char/escc.c
@@ -26,7 +26,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/char/escc.h"
-#include "chardev/char.h"
+#include "chardev/char-serial.h"
 #include "ui/console.h"
 #include "ui/input.h"
 #include "trace.h"
diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c
index 94952fb90f..d93125645a 100644
--- a/hw/char/exynos4210_uart.c
+++ b/hw/char/exynos4210_uart.c
@@ -23,7 +23,7 @@
 #include "hw/sysbus.h"
 #include "qemu/error-report.h"
 #include "sysemu/sysemu.h"
-#include "chardev/char.h"
+#include "chardev/char-serial.h"
 
 #include "hw/arm/exynos4210.h"
 
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index c926df0bee..1d6c6e9f33 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -25,7 +25,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "hw/hw.h"
-#include "chardev/char.h"
+#include "chardev/char-parallel.h"
 #include "hw/isa/isa.h"
 #include "hw/i386/pc.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/char/serial.c b/hw/char/serial.c
index aa336333be..23e5fe9d18 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -25,7 +25,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/char/serial.h"
-#include "chardev/char.h"
+#include "chardev/char-serial.h"
 #include "qapi/error.h"
 #include "qemu/timer.h"
 #include "exec/address-spaces.h"
diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
index c19cd310c2..4f592d0f82 100644
--- a/hw/usb/dev-serial.c
+++ b/hw/usb/dev-serial.c
@@ -15,7 +15,7 @@
 #include "qemu/error-report.h"
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
-#include "chardev/char.h"
+#include "chardev/char-serial.h"
 
 //#define DEBUG_Serial
 
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 08/13] be-hci: use backend functions
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (6 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 07/13] chardev: serial & parallel declaration to own headers Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-26 12:20   ` Marc-André Lureau
  2017-05-26 15:39   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 09/13] char: generalize qemu_chr_write_all() Marc-André Lureau
                   ` (6 subsequent siblings)
  14 siblings, 2 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Avoid accessing CharBackend directly, use qemu_chr_be_* methods instead.

be->chr_read should exists if qemu_chr_be_can_write() is true.

(use qemu_chr_be_write(), _impl() bypasses replay)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/bt/hci-csr.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
index 0f2021086d..d13192b9b5 100644
--- a/hw/bt/hci-csr.c
+++ b/hw/bt/hci-csr.c
@@ -82,17 +82,14 @@ enum {
 
 static inline void csrhci_fifo_wake(struct csrhci_s *s)
 {
-    Chardev *chr = (Chardev *)s;
-    CharBackend *be = chr->be;
+    Chardev *chr = CHARDEV(s);
 
     if (!s->enable || !s->out_len)
         return;
 
     /* XXX: Should wait for s->modem_state & CHR_TIOCM_RTS? */
-    if (be && be->chr_can_read && be->chr_can_read(be->opaque) &&
-        be->chr_read) {
-        be->chr_read(be->opaque,
-                     s->outfifo + s->out_start++, 1);
+    if (qemu_chr_be_can_write(chr)) {
+        qemu_chr_be_write(chr, s->outfifo + s->out_start++, 1);
         s->out_len--;
         if (s->out_start >= s->out_size) {
             s->out_start = 0;
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 09/13] char: generalize qemu_chr_write_all()
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (7 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 08/13] be-hci: use backend functions Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:58   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 10/13] char: move CharBackend handling in char-fe unit Marc-André Lureau
                   ` (5 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

qemu_chr_fe_write() is similar to qemu_chr_write_all(): the later write
all with a chardev backend.

Make qemu_chr_write() and qemu_chr_fe_write_buffer() take an 'all'
argument. If false, handle 'partial' write the way qemu_chr_fe_write()
use to, and call qemu_chr_write() from qemu_chr_fe_write().

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char.c | 69 +++++++++++++++++++++++-----------------------------------
 1 file changed, 27 insertions(+), 42 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index af7d871ed5..392dba6a86 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -96,7 +96,8 @@ static void qemu_chr_fe_write_log(Chardev *s,
 }
 
 static int qemu_chr_fe_write_buffer(Chardev *s,
-                                    const uint8_t *buf, int len, int *offset)
+                                    const uint8_t *buf, int len,
+                                    int *offset, bool all)
 {
     ChardevClass *cc = CHARDEV_GET_CLASS(s);
     int res = 0;
@@ -106,7 +107,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
     while (*offset < len) {
     retry:
         res = cc->chr_write(s, buf + *offset, len - *offset);
-        if (res < 0 && errno == EAGAIN) {
+        if (res < 0 && errno == EAGAIN && all) {
             g_usleep(100);
             goto retry;
         }
@@ -116,6 +117,9 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
         }
 
         *offset += res;
+        if (!all) {
+            break;
+        }
     }
     if (*offset > 0) {
         qemu_chr_fe_write_log(s, buf, *offset);
@@ -130,54 +134,19 @@ static bool qemu_chr_replay(Chardev *chr)
     return qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_REPLAY);
 }
 
-int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
+static int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all)
 {
-    Chardev *s = be->chr;
-    ChardevClass *cc;
-    int ret;
-
-    if (!s) {
-        return 0;
-    }
-
-    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
-        int offset;
-        replay_char_write_event_load(&ret, &offset);
-        assert(offset <= len);
-        qemu_chr_fe_write_buffer(s, buf, offset, &offset);
-        return ret;
-    }
-
-    cc = CHARDEV_GET_CLASS(s);
-    qemu_mutex_lock(&s->chr_write_lock);
-    ret = cc->chr_write(s, buf, len);
-
-    if (ret > 0) {
-        qemu_chr_fe_write_log(s, buf, ret);
-    }
-
-    qemu_mutex_unlock(&s->chr_write_lock);
-    
-    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
-        replay_char_write_event_save(ret, ret < 0 ? 0 : ret);
-    }
-    
-    return ret;
-}
-
-int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
-{
-    int offset;
+    int offset = 0;
     int res;
 
     if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
         replay_char_write_event_load(&res, &offset);
         assert(offset <= len);
-        qemu_chr_fe_write_buffer(s, buf, offset, &offset);
+        qemu_chr_fe_write_buffer(s, buf, offset, &offset, true);
         return res;
     }
 
-    res = qemu_chr_fe_write_buffer(s, buf, len, &offset);
+    res = qemu_chr_fe_write_buffer(s, buf, len, &offset, all);
 
     if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
         replay_char_write_event_save(res, offset);
@@ -189,6 +158,22 @@ int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
     return offset;
 }
 
+int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
+{
+    return qemu_chr_write(s, buf, len, true);
+}
+
+int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
+{
+    Chardev *s = be->chr;
+
+    if (!s) {
+        return 0;
+    }
+
+    return qemu_chr_write(s, buf, len, false);
+}
+
 int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len)
 {
     Chardev *s = be->chr;
@@ -197,7 +182,7 @@ int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len)
         return 0;
     }
 
-    return qemu_chr_write_all(s, buf, len);
+    return qemu_chr_write(s, buf, len, true);
 }
 
 int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len)
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 10/13] char: move CharBackend handling in char-fe unit
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (8 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 09/13] char: generalize qemu_chr_write_all() Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 11/13] Remove/replace chardev/char.h inclusion Marc-André Lureau
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Move all the fronted struct and methods to a seperate unit. This avoids
accidentally mixing backend and frontend calls, and helps with readibilty.

Make qemu_chr_replay() a macro shared by both char and char-fe.

Export qemu_chr_write(), and use a macro for qemu_chr_write_all()

(nb: yes, CharBackend is for char frontend :)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 include/chardev/char-fe.h         | 249 ++++++++++++++++++++++++++
 include/chardev/char-mux.h        |   1 +
 include/chardev/char.h            | 242 +-------------------------
 include/hw/char/bcm2835_aux.h     |   2 +-
 include/hw/char/cadence_uart.h    |   2 +-
 include/hw/char/digic-uart.h      |   2 +-
 include/hw/char/imx_serial.h      |   2 +-
 include/hw/char/serial.h          |   2 +-
 include/hw/char/stm32f2xx_usart.h |   2 +-
 backends/rng-egd.c                |   2 +-
 backends/wctablet.c               |   2 +-
 chardev/char-fe.c                 | 358 ++++++++++++++++++++++++++++++++++++++
 chardev/char.c                    | 342 +-----------------------------------
 gdbstub.c                         |   1 +
 hw/arm/omap2.c                    |   2 +-
 hw/arm/pxa2xx.c                   |   2 +-
 hw/arm/strongarm.c                |   1 +
 hw/char/cadence_uart.c            |   1 +
 hw/char/debugcon.c                |   2 +-
 hw/char/digic-uart.c              |   2 +-
 hw/char/escc.c                    |   1 +
 hw/char/etraxfs_ser.c             |   2 +-
 hw/char/exynos4210_uart.c         |   1 +
 hw/char/grlib_apbuart.c           |   2 +-
 hw/char/ipoctal232.c              |   2 +-
 hw/char/lm32_juart.c              |   2 +-
 hw/char/lm32_uart.c               |   2 +-
 hw/char/mcf_uart.c                |   2 +-
 hw/char/milkymist-uart.c          |   2 +-
 hw/char/parallel.c                |   1 +
 hw/char/pl011.c                   |   2 +-
 hw/char/sclpconsole-lm.c          |   2 +-
 hw/char/sclpconsole.c             |   2 +-
 hw/char/sh_serial.c               |   2 +-
 hw/char/spapr_vty.c               |   2 +-
 hw/char/virtio-console.c          |   2 +-
 hw/char/xen_console.c             |   2 +-
 hw/char/xilinx_uartlite.c         |   2 +-
 hw/core/qdev-properties-system.c  |   2 +-
 hw/ipmi/ipmi_bmc_extern.c         |   2 +-
 hw/misc/ivshmem.c                 |   2 +-
 hw/usb/ccid-card-passthru.c       |   2 +-
 hw/usb/dev-serial.c               |   1 +
 hw/usb/redirect.c                 |   2 +-
 hw/virtio/vhost-user.c            |   2 +-
 monitor.c                         |   2 +-
 net/colo-compare.c                |   2 +-
 net/filter-mirror.c               |   2 +-
 net/slirp.c                       |   2 +-
 net/vhost-user.c                  |   2 +-
 qtest.c                           |   2 +-
 slirp/slirp.c                     |   2 +-
 tests/test-char.c                 |   2 +-
 tests/vhost-user-test.c           |   2 +-
 ui/console.c                      |   2 +-
 chardev/Makefile.objs             |   1 +
 56 files changed, 664 insertions(+), 622 deletions(-)
 create mode 100644 include/chardev/char-fe.h
 create mode 100644 chardev/char-fe.c

diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h
new file mode 100644
index 0000000000..bd82093218
--- /dev/null
+++ b/include/chardev/char-fe.h
@@ -0,0 +1,249 @@
+#ifndef QEMU_CHAR_FE_H
+#define QEMU_CHAR_FE_H
+
+#include "chardev/char.h"
+
+typedef void IOEventHandler(void *opaque, int event);
+
+/* This is the backend as seen by frontend, the actual backend is
+ * Chardev */
+struct CharBackend {
+    Chardev *chr;
+    IOEventHandler *chr_event;
+    IOCanReadHandler *chr_can_read;
+    IOReadHandler *chr_read;
+    void *opaque;
+    int tag;
+    int fe_open;
+};
+
+/**
+ * @qemu_chr_fe_init:
+ *
+ * Initializes a front end for the given CharBackend and
+ * Chardev. Call qemu_chr_fe_deinit() to remove the association and
+ * release the driver.
+ *
+ * Returns: false on error.
+ */
+bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp);
+
+/**
+ * @qemu_chr_fe_deinit:
+ *
+ * Dissociate the CharBackend from the Chardev.
+ *
+ * Safe to call without associated Chardev.
+ */
+void qemu_chr_fe_deinit(CharBackend *b);
+
+/**
+ * @qemu_chr_fe_get_driver:
+ *
+ * Returns the driver associated with a CharBackend or NULL if no
+ * associated Chardev.
+ */
+Chardev *qemu_chr_fe_get_driver(CharBackend *be);
+
+/**
+ * @qemu_chr_fe_set_handlers:
+ * @b: a CharBackend
+ * @fd_can_read: callback to get the amount of data the frontend may
+ *               receive
+ * @fd_read: callback to receive data from char
+ * @fd_event: event callback
+ * @opaque: an opaque pointer for the callbacks
+ * @context: a main loop context or NULL for the default
+ * @set_open: whether to call qemu_chr_fe_set_open() implicitely when
+ * any of the handler is non-NULL
+ *
+ * Set the front end char handlers. The front end takes the focus if
+ * any of the handler is non-NULL.
+ *
+ * Without associated Chardev, nothing is changed.
+ */
+void qemu_chr_fe_set_handlers(CharBackend *b,
+                              IOCanReadHandler *fd_can_read,
+                              IOReadHandler *fd_read,
+                              IOEventHandler *fd_event,
+                              void *opaque,
+                              GMainContext *context,
+                              bool set_open);
+
+/**
+ * @qemu_chr_fe_take_focus:
+ *
+ * Take the focus (if the front end is muxed).
+ *
+ * Without associated Chardev, nothing is changed.
+ */
+void qemu_chr_fe_take_focus(CharBackend *b);
+
+/**
+ * @qemu_chr_fe_accept_input:
+ *
+ * Notify that the frontend is ready to receive data
+ */
+void qemu_chr_fe_accept_input(CharBackend *be);
+
+/**
+ * @qemu_chr_fe_disconnect:
+ *
+ * Close a fd accpeted by character backend.
+ * Without associated Chardev, do nothing.
+ */
+void qemu_chr_fe_disconnect(CharBackend *be);
+
+/**
+ * @qemu_chr_fe_wait_connected:
+ *
+ * Wait for characted backend to be connected, return < 0 on error or
+ * if no assicated Chardev.
+ */
+int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp);
+
+/**
+ * @qemu_chr_fe_set_echo:
+ *
+ * Ask the backend to override its normal echo setting.  This only really
+ * applies to the stdio backend and is used by the QMP server such that you
+ * can see what you type if you try to type QMP commands.
+ * Without associated Chardev, do nothing.
+ *
+ * @echo true to enable echo, false to disable echo
+ */
+void qemu_chr_fe_set_echo(CharBackend *be, bool echo);
+
+/**
+ * @qemu_chr_fe_set_open:
+ *
+ * Set character frontend open status.  This is an indication that the
+ * front end is ready (or not) to begin doing I/O.
+ * Without associated Chardev, do nothing.
+ */
+void qemu_chr_fe_set_open(CharBackend *be, int fe_open);
+
+/**
+ * @qemu_chr_fe_printf:
+ *
+ * Write to a character backend using a printf style interface.  This
+ * function is thread-safe. It does nothing without associated
+ * Chardev.
+ *
+ * @fmt see #printf
+ */
+void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...)
+    GCC_FMT_ATTR(2, 3);
+
+/**
+ * @qemu_chr_fe_add_watch:
+ *
+ * If the backend is connected, create and add a #GSource that fires
+ * when the given condition (typically G_IO_OUT|G_IO_HUP or G_IO_HUP)
+ * is active; return the #GSource's tag.  If it is disconnected,
+ * or without associated Chardev, return 0.
+ *
+ * @cond the condition to poll for
+ * @func the function to call when the condition happens
+ * @user_data the opaque pointer to pass to @func
+ *
+ * Returns: the source tag
+ */
+guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond,
+                            GIOFunc func, void *user_data);
+
+/**
+ * @qemu_chr_fe_write:
+ *
+ * Write data to a character backend from the front end.  This function
+ * will send data from the front end to the back end.  This function
+ * is thread-safe.
+ *
+ * @buf the data
+ * @len the number of bytes to send
+ *
+ * Returns: the number of bytes consumed (0 if no assicated Chardev)
+ */
+int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len);
+
+/**
+ * @qemu_chr_fe_write_all:
+ *
+ * Write data to a character backend from the front end.  This function will
+ * send data from the front end to the back end.  Unlike @qemu_chr_fe_write,
+ * this function will block if the back end cannot consume all of the data
+ * attempted to be written.  This function is thread-safe.
+ *
+ * @buf the data
+ * @len the number of bytes to send
+ *
+ * Returns: the number of bytes consumed (0 if no assicated Chardev)
+ */
+int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len);
+
+/**
+ * @qemu_chr_fe_read_all:
+ *
+ * Read data to a buffer from the back end.
+ *
+ * @buf the data buffer
+ * @len the number of bytes to read
+ *
+ * Returns: the number of bytes read (0 if no assicated Chardev)
+ */
+int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len);
+
+/**
+ * @qemu_chr_fe_ioctl:
+ *
+ * Issue a device specific ioctl to a backend.  This function is thread-safe.
+ *
+ * @cmd see CHR_IOCTL_*
+ * @arg the data associated with @cmd
+ *
+ * Returns: if @cmd is not supported by the backend or there is no
+ *          associated Chardev, -ENOTSUP, otherwise the return
+ *          value depends on the semantics of @cmd
+ */
+int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg);
+
+/**
+ * @qemu_chr_fe_get_msgfd:
+ *
+ * For backends capable of fd passing, return the latest file descriptor passed
+ * by a client.
+ *
+ * Returns: -1 if fd passing isn't supported or there is no pending file
+ *          descriptor.  If a file descriptor is returned, subsequent calls to
+ *          this function will return -1 until a client sends a new file
+ *          descriptor.
+ */
+int qemu_chr_fe_get_msgfd(CharBackend *be);
+
+/**
+ * @qemu_chr_fe_get_msgfds:
+ *
+ * For backends capable of fd passing, return the number of file received
+ * descriptors and fills the fds array up to num elements
+ *
+ * Returns: -1 if fd passing isn't supported or there are no pending file
+ *          descriptors.  If file descriptors are returned, subsequent calls to
+ *          this function will return -1 until a client sends a new set of file
+ *          descriptors.
+ */
+int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int num);
+
+/**
+ * @qemu_chr_fe_set_msgfds:
+ *
+ * For backends capable of fd passing, set an array of fds to be passed with
+ * the next send operation.
+ * A subsequent call to this function before calling a write function will
+ * result in overwriting the fd array with the new value without being send.
+ * Upon writing the message the fd array is freed.
+ *
+ * Returns: -1 if fd passing isn't supported or no associated Chardev.
+ */
+int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num);
+
+#endif /* QEMU_CHAR_FE_H */
diff --git a/include/chardev/char-mux.h b/include/chardev/char-mux.h
index 45cdfc7e67..8928977897 100644
--- a/include/chardev/char-mux.h
+++ b/include/chardev/char-mux.h
@@ -25,6 +25,7 @@
 #define CHAR_MUX_H
 
 #include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 extern bool muxes_realized;
 
diff --git a/include/chardev/char.h b/include/chardev/char.h
index 0e1ef1ea4f..02a08f2bec 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -16,6 +16,7 @@
 #define IAC 255
 
 /* character device */
+typedef struct CharBackend CharBackend;
 
 typedef enum {
     CHR_EVENT_BREAK, /* serial break char */
@@ -27,8 +28,6 @@ typedef enum {
 
 #define CHR_READ_BUF_LEN 4096
 
-typedef void IOEventHandler(void *opaque, int event);
-
 typedef enum {
     /* Whether the chardev peer is able to close and
      * reopen the data channel, thus requiring support
@@ -44,17 +43,7 @@ typedef enum {
     QEMU_CHAR_FEATURE_LAST,
 } ChardevFeature;
 
-/* This is the backend as seen by frontend, the actual backend is
- * Chardev */
-typedef struct CharBackend {
-    Chardev *chr;
-    IOEventHandler *chr_event;
-    IOCanReadHandler *chr_can_read;
-    IOReadHandler *chr_read;
-    void *opaque;
-    int tag;
-    int fe_open;
-} CharBackend;
+#define qemu_chr_replay(chr) qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_REPLAY)
 
 struct Chardev {
     Object parent_obj;
@@ -103,15 +92,6 @@ void qemu_chr_parse_common(QemuOpts *opts, ChardevCommon *backend);
  */
 Chardev *qemu_chr_new(const char *label, const char *filename);
 
-
-/**
- * @qemu_chr_fe_disconnect:
- *
- * Close a fd accpeted by character backend.
- * Without associated Chardev, do nothing.
- */
-void qemu_chr_fe_disconnect(CharBackend *be);
-
 /**
  * @qemu_chr_cleanup:
  *
@@ -120,14 +100,6 @@ void qemu_chr_fe_disconnect(CharBackend *be);
 void qemu_chr_cleanup(void);
 
 /**
- * @qemu_chr_fe_wait_connected:
- *
- * Wait for characted backend to be connected, return < 0 on error or
- * if no assicated Chardev.
- */
-int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp);
-
-/**
  * @qemu_chr_new_noreplay:
  *
  * Create a new character backend from a URI.
@@ -142,150 +114,6 @@ int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp);
 Chardev *qemu_chr_new_noreplay(const char *label, const char *filename);
 
 /**
- * @qemu_chr_fe_set_echo:
- *
- * Ask the backend to override its normal echo setting.  This only really
- * applies to the stdio backend and is used by the QMP server such that you
- * can see what you type if you try to type QMP commands.
- * Without associated Chardev, do nothing.
- *
- * @echo true to enable echo, false to disable echo
- */
-void qemu_chr_fe_set_echo(CharBackend *be, bool echo);
-
-/**
- * @qemu_chr_fe_set_open:
- *
- * Set character frontend open status.  This is an indication that the
- * front end is ready (or not) to begin doing I/O.
- * Without associated Chardev, do nothing.
- */
-void qemu_chr_fe_set_open(CharBackend *be, int fe_open);
-
-/**
- * @qemu_chr_fe_printf:
- *
- * Write to a character backend using a printf style interface.  This
- * function is thread-safe. It does nothing without associated
- * Chardev.
- *
- * @fmt see #printf
- */
-void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...)
-    GCC_FMT_ATTR(2, 3);
-
-/**
- * @qemu_chr_fe_add_watch:
- *
- * If the backend is connected, create and add a #GSource that fires
- * when the given condition (typically G_IO_OUT|G_IO_HUP or G_IO_HUP)
- * is active; return the #GSource's tag.  If it is disconnected,
- * or without associated Chardev, return 0.
- *
- * @cond the condition to poll for
- * @func the function to call when the condition happens
- * @user_data the opaque pointer to pass to @func
- *
- * Returns: the source tag
- */
-guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond,
-                            GIOFunc func, void *user_data);
-
-/**
- * @qemu_chr_fe_write:
- *
- * Write data to a character backend from the front end.  This function
- * will send data from the front end to the back end.  This function
- * is thread-safe.
- *
- * @buf the data
- * @len the number of bytes to send
- *
- * Returns: the number of bytes consumed (0 if no assicated Chardev)
- */
-int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len);
-
-/**
- * @qemu_chr_fe_write_all:
- *
- * Write data to a character backend from the front end.  This function will
- * send data from the front end to the back end.  Unlike @qemu_chr_fe_write,
- * this function will block if the back end cannot consume all of the data
- * attempted to be written.  This function is thread-safe.
- *
- * @buf the data
- * @len the number of bytes to send
- *
- * Returns: the number of bytes consumed (0 if no assicated Chardev)
- */
-int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len);
-
-/**
- * @qemu_chr_fe_read_all:
- *
- * Read data to a buffer from the back end.
- *
- * @buf the data buffer
- * @len the number of bytes to read
- *
- * Returns: the number of bytes read (0 if no assicated Chardev)
- */
-int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len);
-
-/**
- * @qemu_chr_fe_ioctl:
- *
- * Issue a device specific ioctl to a backend.  This function is thread-safe.
- *
- * @cmd see CHR_IOCTL_*
- * @arg the data associated with @cmd
- *
- * Returns: if @cmd is not supported by the backend or there is no
- *          associated Chardev, -ENOTSUP, otherwise the return
- *          value depends on the semantics of @cmd
- */
-int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg);
-
-/**
- * @qemu_chr_fe_get_msgfd:
- *
- * For backends capable of fd passing, return the latest file descriptor passed
- * by a client.
- *
- * Returns: -1 if fd passing isn't supported or there is no pending file
- *          descriptor.  If a file descriptor is returned, subsequent calls to
- *          this function will return -1 until a client sends a new file
- *          descriptor.
- */
-int qemu_chr_fe_get_msgfd(CharBackend *be);
-
-/**
- * @qemu_chr_fe_get_msgfds:
- *
- * For backends capable of fd passing, return the number of file received
- * descriptors and fills the fds array up to num elements
- *
- * Returns: -1 if fd passing isn't supported or there are no pending file
- *          descriptors.  If file descriptors are returned, subsequent calls to
- *          this function will return -1 until a client sends a new set of file
- *          descriptors.
- */
-int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int num);
-
-/**
- * @qemu_chr_fe_set_msgfds:
- *
- * For backends capable of fd passing, set an array of fds to be passed with
- * the next send operation.
- * A subsequent call to this function before calling a write function will
- * result in overwriting the fd array with the new value without being send.
- * Upon writing the message the fd array is freed.
- *
- * Returns: -1 if fd passing isn't supported or no associated Chardev.
- */
-int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num);
-
-/**
  * @qemu_chr_be_can_write:
  *
  * Determine how much data the front end can currently accept.  This function
@@ -328,69 +156,6 @@ void qemu_chr_be_write_impl(Chardev *s, uint8_t *buf, int len);
  */
 void qemu_chr_be_event(Chardev *s, int event);
 
-/**
- * @qemu_chr_fe_init:
- *
- * Initializes a front end for the given CharBackend and
- * Chardev. Call qemu_chr_fe_deinit() to remove the association and
- * release the driver.
- *
- * Returns: false on error.
- */
-bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp);
-
-/**
- * @qemu_chr_fe_get_driver:
- *
- * Returns the driver associated with a CharBackend or NULL if no
- * associated Chardev.
- */
-Chardev *qemu_chr_fe_get_driver(CharBackend *be);
-
-/**
- * @qemu_chr_fe_deinit:
- *
- * Dissociate the CharBackend from the Chardev.
- *
- * Safe to call without associated Chardev.
- */
-void qemu_chr_fe_deinit(CharBackend *b);
-
-/**
- * @qemu_chr_fe_set_handlers:
- * @b: a CharBackend
- * @fd_can_read: callback to get the amount of data the frontend may
- *               receive
- * @fd_read: callback to receive data from char
- * @fd_event: event callback
- * @opaque: an opaque pointer for the callbacks
- * @context: a main loop context or NULL for the default
- * @set_open: whether to call qemu_chr_fe_set_open() implicitely when
- * any of the handler is non-NULL
- *
- * Set the front end char handlers. The front end takes the focus if
- * any of the handler is non-NULL.
- *
- * Without associated Chardev, nothing is changed.
- */
-void qemu_chr_fe_set_handlers(CharBackend *b,
-                              IOCanReadHandler *fd_can_read,
-                              IOReadHandler *fd_read,
-                              IOEventHandler *fd_event,
-                              void *opaque,
-                              GMainContext *context,
-                              bool set_open);
-
-/**
- * @qemu_chr_fe_take_focus:
- *
- * Take the focus (if the front end is muxed).
- *
- * Without associated Chardev, nothing is changed.
- */
-void qemu_chr_fe_take_focus(CharBackend *b);
-
-void qemu_chr_fe_accept_input(CharBackend *be);
 int qemu_chr_add_client(Chardev *s, int fd);
 Chardev *qemu_chr_find(const char *name);
 
@@ -399,7 +164,8 @@ bool qemu_chr_has_feature(Chardev *chr,
 void qemu_chr_set_feature(Chardev *chr,
                           ChardevFeature feature);
 QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename);
-int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len);
+int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all);
+#define qemu_chr_write_all(s, buf, len) qemu_chr_write(s, buf, len, true)
 int qemu_chr_wait_connected(Chardev *chr, Error **errp);
 
 #define TYPE_CHARDEV "chardev"
diff --git a/include/hw/char/bcm2835_aux.h b/include/hw/char/bcm2835_aux.h
index 2a051c5646..cdbf7e3e37 100644
--- a/include/hw/char/bcm2835_aux.h
+++ b/include/hw/char/bcm2835_aux.h
@@ -9,7 +9,7 @@
 #define BCM2835_AUX_H
 
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #define TYPE_BCM2835_AUX "bcm2835-aux"
 #define BCM2835_AUX(obj) OBJECT_CHECK(BCM2835AuxState, (obj), TYPE_BCM2835_AUX)
diff --git a/include/hw/char/cadence_uart.h b/include/hw/char/cadence_uart.h
index eed7d8d358..118e3f10de 100644
--- a/include/hw/char/cadence_uart.h
+++ b/include/hw/char/cadence_uart.h
@@ -19,7 +19,7 @@
 #ifndef CADENCE_UART_H
 
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/timer.h"
 
 #define CADENCE_UART_RX_FIFO_SIZE           16
diff --git a/include/hw/char/digic-uart.h b/include/hw/char/digic-uart.h
index 370b48a6c5..de9a3e3551 100644
--- a/include/hw/char/digic-uart.h
+++ b/include/hw/char/digic-uart.h
@@ -19,7 +19,7 @@
 #define HW_CHAR_DIGIC_UART_H
 
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #define TYPE_DIGIC_UART "digic-uart"
 #define DIGIC_UART(obj) \
diff --git a/include/hw/char/imx_serial.h b/include/hw/char/imx_serial.h
index 05500f5346..baeec3183f 100644
--- a/include/hw/char/imx_serial.h
+++ b/include/hw/char/imx_serial.h
@@ -19,7 +19,7 @@
 #define IMX_SERIAL_H
 
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #define TYPE_IMX_SERIAL "imx.serial"
 #define IMX_SERIAL(obj) OBJECT_CHECK(IMXSerialState, (obj), TYPE_IMX_SERIAL)
diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h
index 01dcd2a8d2..c4daf11a14 100644
--- a/include/hw/char/serial.h
+++ b/include/hw/char/serial.h
@@ -28,7 +28,7 @@
 
 #include "hw/hw.h"
 #include "sysemu/sysemu.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "exec/memory.h"
 #include "qemu/fifo8.h"
 #include "chardev/char.h"
diff --git a/include/hw/char/stm32f2xx_usart.h b/include/hw/char/stm32f2xx_usart.h
index 4259dbeb1e..9d03a7527c 100644
--- a/include/hw/char/stm32f2xx_usart.h
+++ b/include/hw/char/stm32f2xx_usart.h
@@ -26,7 +26,7 @@
 #define HW_STM32F2XX_USART_H
 
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "hw/hw.h"
 
 #define USART_SR   0x00
diff --git a/backends/rng-egd.c b/backends/rng-egd.c
index 5448f6e5f5..ad3e1e5edf 100644
--- a/backends/rng-egd.c
+++ b/backends/rng-egd.c
@@ -12,7 +12,7 @@
 
 #include "qemu/osdep.h"
 #include "sysemu/rng.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qapi/error.h"
 #include "qapi/qmp/qerror.h"
 
diff --git a/backends/wctablet.c b/backends/wctablet.c
index a4d3ae098a..6c13c2c58a 100644
--- a/backends/wctablet.c
+++ b/backends/wctablet.c
@@ -32,7 +32,7 @@
 
 #include "qemu/osdep.h"
 #include "qemu-common.h"
-#include "sysemu/char.h"
+#include "chardev/char-serial.h"
 #include "ui/console.h"
 #include "ui/input.h"
 #include "trace.h"
diff --git a/chardev/char-fe.c b/chardev/char-fe.c
new file mode 100644
index 0000000000..ba19e168ce
--- /dev/null
+++ b/chardev/char-fe.c
@@ -0,0 +1,358 @@
+/*
+ * QEMU System Emulator
+ *
+ * Copyright (c) 2003-2008 Fabrice Bellard
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+#include "qemu/osdep.h"
+#include "qemu/error-report.h"
+#include "qapi/error.h"
+#include "qapi-visit.h"
+#include "sysemu/replay.h"
+
+#include "chardev/char-fe.h"
+#include "chardev/char-io.h"
+#include "chardev/char-mux.h"
+
+int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
+{
+    Chardev *s = be->chr;
+
+    if (!s) {
+        return 0;
+    }
+
+    return qemu_chr_write(s, buf, len, false);
+}
+
+int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len)
+{
+    Chardev *s = be->chr;
+
+    if (!s) {
+        return 0;
+    }
+
+    return qemu_chr_write(s, buf, len, true);
+}
+
+int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len)
+{
+    Chardev *s = be->chr;
+    int offset = 0, counter = 10;
+    int res;
+
+    if (!s || !CHARDEV_GET_CLASS(s)->chr_sync_read) {
+        return 0;
+    }
+
+    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
+        return replay_char_read_all_load(buf);
+    }
+
+    while (offset < len) {
+    retry:
+        res = CHARDEV_GET_CLASS(s)->chr_sync_read(s, buf + offset,
+                                                  len - offset);
+        if (res == -1 && errno == EAGAIN) {
+            g_usleep(100);
+            goto retry;
+        }
+
+        if (res == 0) {
+            break;
+        }
+
+        if (res < 0) {
+            if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
+                replay_char_read_all_save_error(res);
+            }
+            return res;
+        }
+
+        offset += res;
+
+        if (!counter--) {
+            break;
+        }
+    }
+
+    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
+        replay_char_read_all_save_buf(buf, offset);
+    }
+    return offset;
+}
+
+int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg)
+{
+    Chardev *s = be->chr;
+    int res;
+
+    if (!s || !CHARDEV_GET_CLASS(s)->chr_ioctl || qemu_chr_replay(s)) {
+        res = -ENOTSUP;
+    } else {
+        res = CHARDEV_GET_CLASS(s)->chr_ioctl(s, cmd, arg);
+    }
+
+    return res;
+}
+
+int qemu_chr_fe_get_msgfd(CharBackend *be)
+{
+    Chardev *s = be->chr;
+    int fd;
+    int res = (qemu_chr_fe_get_msgfds(be, &fd, 1) == 1) ? fd : -1;
+    if (s && qemu_chr_replay(s)) {
+        error_report("Replay: get msgfd is not supported "
+                     "for serial devices yet");
+        exit(1);
+    }
+    return res;
+}
+
+int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int len)
+{
+    Chardev *s = be->chr;
+
+    if (!s) {
+        return -1;
+    }
+
+    return CHARDEV_GET_CLASS(s)->get_msgfds ?
+        CHARDEV_GET_CLASS(s)->get_msgfds(s, fds, len) : -1;
+}
+
+int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num)
+{
+    Chardev *s = be->chr;
+
+    if (!s) {
+        return -1;
+    }
+
+    return CHARDEV_GET_CLASS(s)->set_msgfds ?
+        CHARDEV_GET_CLASS(s)->set_msgfds(s, fds, num) : -1;
+}
+
+void qemu_chr_fe_accept_input(CharBackend *be)
+{
+    Chardev *s = be->chr;
+
+    if (!s) {
+        return;
+    }
+
+    if (CHARDEV_GET_CLASS(s)->chr_accept_input) {
+        CHARDEV_GET_CLASS(s)->chr_accept_input(s);
+    }
+    qemu_notify_event();
+}
+
+void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...)
+{
+    char buf[CHR_READ_BUF_LEN];
+    va_list ap;
+    va_start(ap, fmt);
+    vsnprintf(buf, sizeof(buf), fmt, ap);
+    /* XXX this blocks entire thread. Rewrite to use
+     * qemu_chr_fe_write and background I/O callbacks */
+    qemu_chr_fe_write_all(be, (uint8_t *)buf, strlen(buf));
+    va_end(ap);
+}
+
+Chardev *qemu_chr_fe_get_driver(CharBackend *be)
+{
+    return be->chr;
+}
+
+bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp)
+{
+    int tag = 0;
+
+    if (CHARDEV_IS_MUX(s)) {
+        MuxChardev *d = MUX_CHARDEV(s);
+
+        if (d->mux_cnt >= MAX_MUX) {
+            goto unavailable;
+        }
+
+        d->backends[d->mux_cnt] = b;
+        tag = d->mux_cnt++;
+    } else if (s->be) {
+        goto unavailable;
+    } else {
+        s->be = b;
+    }
+
+    b->fe_open = false;
+    b->tag = tag;
+    b->chr = s;
+    return true;
+
+unavailable:
+    error_setg(errp, QERR_DEVICE_IN_USE, s->label);
+    return false;
+}
+
+void qemu_chr_fe_deinit(CharBackend *b)
+{
+    assert(b);
+
+    if (b->chr) {
+        qemu_chr_fe_set_handlers(b, NULL, NULL, NULL, NULL, NULL, true);
+        if (b->chr->be == b) {
+            b->chr->be = NULL;
+        }
+        if (CHARDEV_IS_MUX(b->chr)) {
+            MuxChardev *d = MUX_CHARDEV(b->chr);
+            d->backends[b->tag] = NULL;
+        }
+        b->chr = NULL;
+    }
+}
+
+void qemu_chr_fe_set_handlers(CharBackend *b,
+                              IOCanReadHandler *fd_can_read,
+                              IOReadHandler *fd_read,
+                              IOEventHandler *fd_event,
+                              void *opaque,
+                              GMainContext *context,
+                              bool set_open)
+{
+    Chardev *s;
+    ChardevClass *cc;
+    int fe_open;
+
+    s = b->chr;
+    if (!s) {
+        return;
+    }
+
+    cc = CHARDEV_GET_CLASS(s);
+    if (!opaque && !fd_can_read && !fd_read && !fd_event) {
+        fe_open = 0;
+        remove_fd_in_watch(s, context);
+    } else {
+        fe_open = 1;
+    }
+    b->chr_can_read = fd_can_read;
+    b->chr_read = fd_read;
+    b->chr_event = fd_event;
+    b->opaque = opaque;
+    if (cc->chr_update_read_handler) {
+        cc->chr_update_read_handler(s, context);
+    }
+
+    if (set_open) {
+        qemu_chr_fe_set_open(b, fe_open);
+    }
+
+    if (fe_open) {
+        qemu_chr_fe_take_focus(b);
+        /* We're connecting to an already opened device, so let's make sure we
+           also get the open event */
+        if (s->be_open) {
+            qemu_chr_be_event(s, CHR_EVENT_OPENED);
+        }
+    }
+
+    if (CHARDEV_IS_MUX(s)) {
+        mux_chr_set_handlers(s, context);
+    }
+}
+
+void qemu_chr_fe_take_focus(CharBackend *b)
+{
+    if (!b->chr) {
+        return;
+    }
+
+    if (CHARDEV_IS_MUX(b->chr)) {
+        mux_set_focus(b->chr, b->tag);
+    }
+}
+
+int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp)
+{
+    if (!be->chr) {
+        error_setg(errp, "missing associated backend");
+        return -1;
+    }
+
+    return qemu_chr_wait_connected(be->chr, errp);
+}
+
+void qemu_chr_fe_set_echo(CharBackend *be, bool echo)
+{
+    Chardev *chr = be->chr;
+
+    if (chr && CHARDEV_GET_CLASS(chr)->chr_set_echo) {
+        CHARDEV_GET_CLASS(chr)->chr_set_echo(chr, echo);
+    }
+}
+
+void qemu_chr_fe_set_open(CharBackend *be, int fe_open)
+{
+    Chardev *chr = be->chr;
+
+    if (!chr) {
+        return;
+    }
+
+    if (be->fe_open == fe_open) {
+        return;
+    }
+    be->fe_open = fe_open;
+    if (CHARDEV_GET_CLASS(chr)->chr_set_fe_open) {
+        CHARDEV_GET_CLASS(chr)->chr_set_fe_open(chr, fe_open);
+    }
+}
+
+guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond,
+                            GIOFunc func, void *user_data)
+{
+    Chardev *s = be->chr;
+    GSource *src;
+    guint tag;
+
+    if (!s || CHARDEV_GET_CLASS(s)->chr_add_watch == NULL) {
+        return 0;
+    }
+
+    src = CHARDEV_GET_CLASS(s)->chr_add_watch(s, cond);
+    if (!src) {
+        return 0;
+    }
+
+    g_source_set_callback(src, (GSourceFunc)func, user_data, NULL);
+    tag = g_source_attach(src, NULL);
+    g_source_unref(src);
+
+    return tag;
+}
+
+void qemu_chr_fe_disconnect(CharBackend *be)
+{
+    Chardev *chr = be->chr;
+
+    if (chr && CHARDEV_GET_CLASS(chr)->chr_disconnect) {
+        CHARDEV_GET_CLASS(chr)->chr_disconnect(chr);
+    }
+}
diff --git a/chardev/char.c b/chardev/char.c
index 392dba6a86..b986ce1857 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -22,7 +22,6 @@
  * THE SOFTWARE.
  */
 #include "qemu/osdep.h"
-#include "qemu-common.h"
 #include "qemu/cutils.h"
 #include "monitor/monitor.h"
 #include "sysemu/sysemu.h"
@@ -35,9 +34,6 @@
 #include "qemu/help_option.h"
 
 #include "chardev/char-mux.h"
-#include "chardev/char-io.h"
-#include "chardev/char-parallel.h"
-#include "chardev/char-serial.h"
 
 /***********************************************************/
 /* character device */
@@ -129,12 +125,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
     return res;
 }
 
-static bool qemu_chr_replay(Chardev *chr)
-{
-    return qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_REPLAY);
-}
-
-static int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all)
+int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all)
 {
     int offset = 0;
     int res;
@@ -158,94 +149,6 @@ static int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all)
     return offset;
 }
 
-int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
-{
-    return qemu_chr_write(s, buf, len, true);
-}
-
-int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
-{
-    Chardev *s = be->chr;
-
-    if (!s) {
-        return 0;
-    }
-
-    return qemu_chr_write(s, buf, len, false);
-}
-
-int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len)
-{
-    Chardev *s = be->chr;
-
-    if (!s) {
-        return 0;
-    }
-
-    return qemu_chr_write(s, buf, len, true);
-}
-
-int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len)
-{
-    Chardev *s = be->chr;
-    int offset = 0, counter = 10;
-    int res;
-
-    if (!s || !CHARDEV_GET_CLASS(s)->chr_sync_read) {
-        return 0;
-    }
-
-    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
-        return replay_char_read_all_load(buf);
-    }
-
-    while (offset < len) {
-    retry:
-        res = CHARDEV_GET_CLASS(s)->chr_sync_read(s, buf + offset,
-                                                  len - offset);
-        if (res == -1 && errno == EAGAIN) {
-            g_usleep(100);
-            goto retry;
-        }
-
-        if (res == 0) {
-            break;
-        }
-
-        if (res < 0) {
-            if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
-                replay_char_read_all_save_error(res);
-            }
-            return res;
-        }
-
-        offset += res;
-
-        if (!counter--) {
-            break;
-        }
-    }
-
-    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
-        replay_char_read_all_save_buf(buf, offset);
-    }
-    return offset;
-}
-
-int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg)
-{
-    Chardev *s = be->chr;
-    int res;
-
-    if (!s || !CHARDEV_GET_CLASS(s)->chr_ioctl || qemu_chr_replay(s)) {
-        res = -ENOTSUP;
-    } else {
-        res = CHARDEV_GET_CLASS(s)->chr_ioctl(s, cmd, arg);
-    }
-
-    return res;
-}
-
 int qemu_chr_be_can_write(Chardev *s)
 {
     CharBackend *be = s->be;
@@ -278,75 +181,12 @@ void qemu_chr_be_write(Chardev *s, uint8_t *buf, int len)
     }
 }
 
-int qemu_chr_fe_get_msgfd(CharBackend *be)
-{
-    Chardev *s = be->chr;
-    int fd;
-    int res = (qemu_chr_fe_get_msgfds(be, &fd, 1) == 1) ? fd : -1;
-    if (s && qemu_chr_replay(s)) {
-        error_report("Replay: get msgfd is not supported "
-                     "for serial devices yet");
-        exit(1);
-    }
-    return res;
-}
-
-int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int len)
-{
-    Chardev *s = be->chr;
-
-    if (!s) {
-        return -1;
-    }
-
-    return CHARDEV_GET_CLASS(s)->get_msgfds ?
-        CHARDEV_GET_CLASS(s)->get_msgfds(s, fds, len) : -1;
-}
-
-int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num)
-{
-    Chardev *s = be->chr;
-
-    if (!s) {
-        return -1;
-    }
-
-    return CHARDEV_GET_CLASS(s)->set_msgfds ?
-        CHARDEV_GET_CLASS(s)->set_msgfds(s, fds, num) : -1;
-}
-
 int qemu_chr_add_client(Chardev *s, int fd)
 {
     return CHARDEV_GET_CLASS(s)->chr_add_client ?
         CHARDEV_GET_CLASS(s)->chr_add_client(s, fd) : -1;
 }
 
-void qemu_chr_fe_accept_input(CharBackend *be)
-{
-    Chardev *s = be->chr;
-
-    if (!s) {
-        return;
-    }
-
-    if (CHARDEV_GET_CLASS(s)->chr_accept_input) {
-        CHARDEV_GET_CLASS(s)->chr_accept_input(s);
-    }
-    qemu_notify_event();
-}
-
-void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...)
-{
-    char buf[CHR_READ_BUF_LEN];
-    va_list ap;
-    va_start(ap, fmt);
-    vsnprintf(buf, sizeof(buf), fmt, ap);
-    /* XXX this blocks entire thread. Rewrite to use
-     * qemu_chr_fe_write and background I/O callbacks */
-    qemu_chr_fe_write_all(be, (uint8_t *)buf, strlen(buf));
-    va_end(ap);
-}
-
 static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
                            bool *be_opened, Error **errp)
 {
@@ -458,40 +298,6 @@ static Notifier muxes_realize_notify = {
     .notify = muxes_realize_done,
 };
 
-Chardev *qemu_chr_fe_get_driver(CharBackend *be)
-{
-    return be->chr;
-}
-
-bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp)
-{
-    int tag = 0;
-
-    if (CHARDEV_IS_MUX(s)) {
-        MuxChardev *d = MUX_CHARDEV(s);
-
-        if (d->mux_cnt >= MAX_MUX) {
-            goto unavailable;
-        }
-
-        d->backends[d->mux_cnt] = b;
-        tag = d->mux_cnt++;
-    } else if (s->be) {
-        goto unavailable;
-    } else {
-        s->be = b;
-    }
-
-    b->fe_open = false;
-    b->tag = tag;
-    b->chr = s;
-    return true;
-
-unavailable:
-    error_setg(errp, QERR_DEVICE_IN_USE, s->label);
-    return false;
-}
-
 static bool qemu_chr_is_busy(Chardev *s)
 {
     if (CHARDEV_IS_MUX(s)) {
@@ -502,84 +308,6 @@ static bool qemu_chr_is_busy(Chardev *s)
     }
 }
 
-void qemu_chr_fe_deinit(CharBackend *b)
-{
-    assert(b);
-
-    if (b->chr) {
-        qemu_chr_fe_set_handlers(b, NULL, NULL, NULL, NULL, NULL, true);
-        if (b->chr->be == b) {
-            b->chr->be = NULL;
-        }
-        if (CHARDEV_IS_MUX(b->chr)) {
-            MuxChardev *d = MUX_CHARDEV(b->chr);
-            d->backends[b->tag] = NULL;
-        }
-        b->chr = NULL;
-    }
-}
-
-void qemu_chr_fe_set_handlers(CharBackend *b,
-                              IOCanReadHandler *fd_can_read,
-                              IOReadHandler *fd_read,
-                              IOEventHandler *fd_event,
-                              void *opaque,
-                              GMainContext *context,
-                              bool set_open)
-{
-    Chardev *s;
-    ChardevClass *cc;
-    int fe_open;
-
-    s = b->chr;
-    if (!s) {
-        return;
-    }
-
-    cc = CHARDEV_GET_CLASS(s);
-    if (!opaque && !fd_can_read && !fd_read && !fd_event) {
-        fe_open = 0;
-        remove_fd_in_watch(s, context);
-    } else {
-        fe_open = 1;
-    }
-    b->chr_can_read = fd_can_read;
-    b->chr_read = fd_read;
-    b->chr_event = fd_event;
-    b->opaque = opaque;
-    if (cc->chr_update_read_handler) {
-        cc->chr_update_read_handler(s, context);
-    }
-
-    if (set_open) {
-        qemu_chr_fe_set_open(b, fe_open);
-    }
-
-    if (fe_open) {
-        qemu_chr_fe_take_focus(b);
-        /* We're connecting to an already opened device, so let's make sure we
-           also get the open event */
-        if (s->be_open) {
-            qemu_chr_be_event(s, CHR_EVENT_OPENED);
-        }
-    }
-
-    if (CHARDEV_IS_MUX(s)) {
-        mux_chr_set_handlers(s, context);
-    }
-}
-
-void qemu_chr_fe_take_focus(CharBackend *b)
-{
-    if (!b->chr) {
-        return;
-    }
-
-    if (CHARDEV_IS_MUX(b->chr)) {
-        mux_set_focus(b->chr, b->tag);
-    }
-}
-
 int qemu_chr_wait_connected(Chardev *chr, Error **errp)
 {
     ChardevClass *cc = CHARDEV_GET_CLASS(chr);
@@ -591,16 +319,6 @@ int qemu_chr_wait_connected(Chardev *chr, Error **errp)
     return 0;
 }
 
-int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp)
-{
-    if (!be->chr) {
-        error_setg(errp, "missing associated backend");
-        return -1;
-    }
-
-    return qemu_chr_wait_connected(be->chr, errp);
-}
-
 QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
 {
     char host[65], port[33], width[8], height[8];
@@ -977,64 +695,6 @@ Chardev *qemu_chr_new(const char *label, const char *filename)
     return chr;
 }
 
-void qemu_chr_fe_set_echo(CharBackend *be, bool echo)
-{
-    Chardev *chr = be->chr;
-
-    if (chr && CHARDEV_GET_CLASS(chr)->chr_set_echo) {
-        CHARDEV_GET_CLASS(chr)->chr_set_echo(chr, echo);
-    }
-}
-
-void qemu_chr_fe_set_open(CharBackend *be, int fe_open)
-{
-    Chardev *chr = be->chr;
-
-    if (!chr) {
-        return;
-    }
-
-    if (be->fe_open == fe_open) {
-        return;
-    }
-    be->fe_open = fe_open;
-    if (CHARDEV_GET_CLASS(chr)->chr_set_fe_open) {
-        CHARDEV_GET_CLASS(chr)->chr_set_fe_open(chr, fe_open);
-    }
-}
-
-guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond,
-                            GIOFunc func, void *user_data)
-{
-    Chardev *s = be->chr;
-    GSource *src;
-    guint tag;
-
-    if (!s || CHARDEV_GET_CLASS(s)->chr_add_watch == NULL) {
-        return 0;
-    }
-
-    src = CHARDEV_GET_CLASS(s)->chr_add_watch(s, cond);
-    if (!src) {
-        return 0;
-    }
-
-    g_source_set_callback(src, (GSourceFunc)func, user_data, NULL);
-    tag = g_source_attach(src, NULL);
-    g_source_unref(src);
-
-    return tag;
-}
-
-void qemu_chr_fe_disconnect(CharBackend *be)
-{
-    Chardev *chr = be->chr;
-
-    if (chr && CHARDEV_GET_CLASS(chr)->chr_disconnect) {
-        CHARDEV_GET_CLASS(chr)->chr_disconnect(chr);
-    }
-}
-
 static int qmp_query_chardev_foreach(Object *obj, void *data)
 {
     Chardev *chr = CHARDEV(obj);
diff --git a/gdbstub.c b/gdbstub.c
index e53661ec41..98854c33e7 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -26,6 +26,7 @@
 #else
 #include "monitor/monitor.h"
 #include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/sysemu.h"
 #include "exec/gdbstub.h"
 #endif
diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c
index 566749a9eb..4b4c024693 100644
--- a/hw/arm/omap2.c
+++ b/hw/arm/omap2.c
@@ -30,7 +30,7 @@
 #include "hw/arm/omap.h"
 #include "sysemu/sysemu.h"
 #include "qemu/timer.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "hw/block/flash.h"
 #include "hw/arm/soc_dma.h"
 #include "hw/sysbus.h"
diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
index 0d43cc707c..629e6c64e6 100644
--- a/hw/arm/pxa2xx.c
+++ b/hw/arm/pxa2xx.c
@@ -17,7 +17,7 @@
 #include "hw/char/serial.h"
 #include "hw/i2c/i2c.h"
 #include "hw/ssi/ssi.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/block-backend.h"
 #include "sysemu/blockdev.h"
 #include "qemu/cutils.h"
diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
index 967caea749..7683edc9e5 100644
--- a/hw/arm/strongarm.c
+++ b/hw/arm/strongarm.c
@@ -34,6 +34,7 @@
 #include "strongarm.h"
 #include "qemu/error-report.h"
 #include "hw/arm/arm.h"
+#include "chardev/char-fe.h"
 #include "chardev/char-serial.h"
 #include "sysemu/sysemu.h"
 #include "hw/ssi/ssi.h"
diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c
index 4bfc185376..4a2c124104 100644
--- a/hw/char/cadence_uart.c
+++ b/hw/char/cadence_uart.c
@@ -23,6 +23,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "chardev/char-fe.h"
 #include "chardev/char-serial.h"
 #include "qemu/timer.h"
 #include "qemu/log.h"
diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c
index 77d91c8558..762e3d8ada 100644
--- a/hw/char/debugcon.c
+++ b/hw/char/debugcon.c
@@ -27,7 +27,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "hw/hw.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "hw/isa/isa.h"
 #include "hw/i386/pc.h"
 
diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c
index 4f1dec7f1d..34306e11ff 100644
--- a/hw/char/digic-uart.c
+++ b/hw/char/digic-uart.c
@@ -29,7 +29,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/log.h"
 
 #include "hw/char/digic-uart.h"
diff --git a/hw/char/escc.c b/hw/char/escc.c
index 81d792cb47..3f787632c7 100644
--- a/hw/char/escc.c
+++ b/hw/char/escc.c
@@ -26,6 +26,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/char/escc.h"
+#include "chardev/char-fe.h"
 #include "chardev/char-serial.h"
 #include "ui/console.h"
 #include "ui/input.h"
diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c
index 33e3e16397..c1fba9f50f 100644
--- a/hw/char/etraxfs_ser.c
+++ b/hw/char/etraxfs_ser.c
@@ -24,7 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/log.h"
 
 #define D(x)
diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c
index d93125645a..b51d44a321 100644
--- a/hw/char/exynos4210_uart.c
+++ b/hw/char/exynos4210_uart.c
@@ -23,6 +23,7 @@
 #include "hw/sysbus.h"
 #include "qemu/error-report.h"
 #include "sysemu/sysemu.h"
+#include "chardev/char-fe.h"
 #include "chardev/char-serial.h"
 
 #include "hw/arm/exynos4210.h"
diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c
index 39d1133c61..32d98edf49 100644
--- a/hw/char/grlib_apbuart.c
+++ b/hw/char/grlib_apbuart.c
@@ -24,7 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #include "trace.h"
 
diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c
index b8a3c92c9e..337a3e566a 100644
--- a/hw/char/ipoctal232.c
+++ b/hw/char/ipoctal232.c
@@ -11,7 +11,7 @@
 #include "qemu/osdep.h"
 #include "hw/ipack/ipack.h"
 #include "qemu/bitops.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 /* #define DEBUG_IPOCTAL */
 
diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c
index 6b0633e518..3948dcd332 100644
--- a/hw/char/lm32_juart.c
+++ b/hw/char/lm32_juart.c
@@ -21,7 +21,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #include "hw/char/lm32_juart.h"
 
diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c
index a7610c28ce..cff8c38f90 100644
--- a/hw/char/lm32_uart.c
+++ b/hw/char/lm32_uart.c
@@ -26,7 +26,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/error-report.h"
 
 enum {
diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c
index b639b53c83..fe12ad5ccb 100644
--- a/hw/char/mcf_uart.c
+++ b/hw/char/mcf_uart.c
@@ -9,7 +9,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/m68k/mcf.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "exec/address-spaces.h"
 #include "qapi/error.h"
 
diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c
index 5ef847c5eb..e19d0f6520 100644
--- a/hw/char/milkymist-uart.c
+++ b/hw/char/milkymist-uart.c
@@ -25,7 +25,7 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "trace.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/error-report.h"
 
 enum {
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index 1d6c6e9f33..75a1a2f55e 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -26,6 +26,7 @@
 #include "qapi/error.h"
 #include "hw/hw.h"
 #include "chardev/char-parallel.h"
+#include "chardev/char-fe.h"
 #include "hw/isa/isa.h"
 #include "hw/i386/pc.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/char/pl011.c b/hw/char/pl011.c
index 1757035bb3..33802f00c8 100644
--- a/hw/char/pl011.c
+++ b/hw/char/pl011.c
@@ -9,7 +9,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/log.h"
 #include "trace.h"
 
diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c
index 755d514188..1b15046690 100644
--- a/hw/char/sclpconsole-lm.c
+++ b/hw/char/sclpconsole-lm.c
@@ -17,7 +17,7 @@
 #include "hw/qdev.h"
 #include "qemu/thread.h"
 #include "qemu/error-report.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #include "hw/s390x/sclp.h"
 #include "hw/s390x/event-facility.h"
diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c
index 0fd3cb4887..4a107a268d 100644
--- a/hw/char/sclpconsole.c
+++ b/hw/char/sclpconsole.c
@@ -19,7 +19,7 @@
 
 #include "hw/s390x/sclp.h"
 #include "hw/s390x/event-facility.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 typedef struct ASCIIConsoleData {
     EventBufferHeader ebh;
diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
index 80c7696d8d..ca9816d045 100644
--- a/hw/char/sh_serial.c
+++ b/hw/char/sh_serial.c
@@ -27,7 +27,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/sh4/sh.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "exec/address-spaces.h"
 #include "qapi/error.h"
 
diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c
index 2317e45404..8f02f3a612 100644
--- a/hw/char/spapr_vty.c
+++ b/hw/char/spapr_vty.c
@@ -4,7 +4,7 @@
 #include "qemu-common.h"
 #include "cpu.h"
 #include "hw/qdev.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "hw/ppc/spapr.h"
 #include "hw/ppc/spapr_vio.h"
 
diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c
index 8418db6a07..0cb1668c8a 100644
--- a/hw/char/virtio-console.c
+++ b/hw/char/virtio-console.c
@@ -11,7 +11,7 @@
  */
 
 #include "qemu/osdep.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/error-report.h"
 #include "trace.h"
 #include "hw/virtio/virtio-serial.h"
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index 1cdbe59f8a..cb849c2e3e 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -25,7 +25,7 @@
 
 #include "qapi/error.h"
 #include "hw/hw.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "hw/xen/xen_backend.h"
 #include "qapi/error.h"
 
diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c
index bcebdae3da..71ed2fc1be 100644
--- a/hw/char/xilinx_uartlite.c
+++ b/hw/char/xilinx_uartlite.c
@@ -24,7 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #define DUART(x)
 
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 4da0c6a24e..a549d39030 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -20,7 +20,7 @@
 #include "hw/block/block.h"
 #include "net/hub.h"
 #include "qapi/visitor.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/iothread.h"
 
 static void get_pointer(Object *obj, Visitor *v, Property *prop,
diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c
index 35285383fd..329b03e17f 100644
--- a/hw/ipmi/ipmi_bmc_extern.c
+++ b/hw/ipmi/ipmi_bmc_extern.c
@@ -30,7 +30,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu/timer.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/sysemu.h"
 #include "hw/ipmi/ipmi.h"
 
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index a45bb7943d..e904e646ba 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -29,7 +29,7 @@
 #include "qemu/error-report.h"
 #include "qemu/event_notifier.h"
 #include "qom/object_interfaces.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/hostmem.h"
 #include "sysemu/qtest.h"
 #include "qapi/visitor.h"
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index c2096b25ab..fed3683a50 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -9,7 +9,7 @@
  */
 
 #include "qemu/osdep.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/error-report.h"
 #include "qemu/sockets.h"
 #include "ccid.h"
diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
index 4f592d0f82..fa123eea37 100644
--- a/hw/usb/dev-serial.c
+++ b/hw/usb/dev-serial.c
@@ -16,6 +16,7 @@
 #include "hw/usb.h"
 #include "hw/usb/desc.h"
 #include "chardev/char-serial.h"
+#include "chardev/char-fe.h"
 
 //#define DEBUG_Serial
 
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 48468fc61a..865aa9fbe0 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -33,7 +33,7 @@
 #include "qapi/qmp/qerror.h"
 #include "qemu/error-report.h"
 #include "qemu/iov.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 
 #include <usbredirparser.h>
 #include <usbredirfilter.h>
diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
index 07b97205fa..0b6025e9c7 100644
--- a/hw/virtio/vhost-user.c
+++ b/hw/virtio/vhost-user.c
@@ -13,7 +13,7 @@
 #include "hw/virtio/vhost.h"
 #include "hw/virtio/vhost-backend.h"
 #include "hw/virtio/virtio-net.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/kvm.h"
 #include "qemu/error-report.h"
 #include "qemu/sockets.h"
diff --git a/monitor.c b/monitor.c
index 1b041e0514..032e97485b 100644
--- a/monitor.c
+++ b/monitor.c
@@ -35,7 +35,7 @@
 #include "exec/gdbstub.h"
 #include "net/net.h"
 #include "net/slirp.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "ui/qemu-spice.h"
 #include "sysemu/numa.h"
 #include "monitor/monitor.h"
diff --git a/net/colo-compare.c b/net/colo-compare.c
index d2cdcdfd78..db18e8ec7e 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -25,7 +25,7 @@
 #include "qom/object.h"
 #include "qemu/typedefs.h"
 #include "net/queue.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/sockets.h"
 #include "qapi-visit.h"
 #include "net/colo.h"
diff --git a/net/filter-mirror.c b/net/filter-mirror.c
index 03a380b4db..33818955e2 100644
--- a/net/filter-mirror.c
+++ b/net/filter-mirror.c
@@ -20,7 +20,7 @@
 #include "qemu/main-loop.h"
 #include "qemu/error-report.h"
 #include "trace.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/iov.h"
 #include "qemu/sockets.h"
 
diff --git a/net/slirp.c b/net/slirp.c
index af3e8b22ac..6a6d727999 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -37,7 +37,7 @@
 #include "qemu/sockets.h"
 #include "slirp/libslirp.h"
 #include "slirp/ip6.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/sysemu.h"
 #include "qemu/cutils.h"
 #include "qapi/error.h"
diff --git a/net/vhost-user.c b/net/vhost-user.c
index 77d2ce22a6..526290d8c1 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -12,7 +12,7 @@
 #include "clients.h"
 #include "net/vhost_net.h"
 #include "net/vhost-user.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "qemu/config-file.h"
 #include "qemu/error-report.h"
 #include "qmp-commands.h"
diff --git a/qtest.c b/qtest.c
index dbf70a7018..9a5d1dc50d 100644
--- a/qtest.c
+++ b/qtest.c
@@ -17,7 +17,7 @@
 #include "cpu.h"
 #include "sysemu/qtest.h"
 #include "hw/qdev.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "exec/ioport.h"
 #include "exec/memory.h"
 #include "hw/irq.h"
diff --git a/slirp/slirp.c b/slirp/slirp.c
index 3b92cb54ce..e79345bdfc 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -25,7 +25,7 @@
 #include "qemu-common.h"
 #include "qemu/timer.h"
 #include "qemu/error-report.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "slirp.h"
 #include "hw/hw.h"
 #include "qemu/cutils.h"
diff --git a/tests/test-char.c b/tests/test-char.c
index a6ab17c100..42844993a3 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -4,7 +4,7 @@
 #include "qemu-common.h"
 #include "qemu/config-file.h"
 #include "qemu/sockets.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/sysemu.h"
 #include "qapi/error.h"
 #include "qom/qom-qobject.h"
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index acc392d046..4ca11ae28d 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -16,7 +16,7 @@
 #include "qemu/option.h"
 #include "qemu/range.h"
 #include "qemu/sockets.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "sysemu/sysemu.h"
 #include "libqos/libqos.h"
 #include "libqos/pci-pc.h"
diff --git a/ui/console.c b/ui/console.c
index 6cf795a23d..d914cced53 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -27,7 +27,7 @@
 #include "hw/qdev-core.h"
 #include "qemu/timer.h"
 #include "qmp-commands.h"
-#include "chardev/char.h"
+#include "chardev/char-fe.h"
 #include "trace.h"
 #include "exec/memory.h"
 
diff --git a/chardev/Makefile.objs b/chardev/Makefile.objs
index 1feda0f0ed..e0b37dbfd8 100644
--- a/chardev/Makefile.objs
+++ b/chardev/Makefile.objs
@@ -1,6 +1,7 @@
 chardev-obj-y += char.o
 chardev-obj-$(CONFIG_WIN32) += char-console.o
 chardev-obj-$(CONFIG_POSIX) += char-fd.o
+chardev-obj-y += char-fe.o
 chardev-obj-y += char-file.o
 chardev-obj-y += char-io.o
 chardev-obj-y += char-mux.o
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 11/13] Remove/replace chardev/char.h inclusion
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (9 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 10/13] char: move CharBackend handling in char-fe unit Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:45   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 12/13] char: rename functions that are not part of fe Marc-André Lureau
                   ` (3 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

Those are apparently unnecessary includes.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 hw/arm/bcm2835_peripherals.c | 1 -
 hw/char/imx_serial.c         | 1 -
 hw/display/xenfb.c           | 1 -
 hw/i386/xen/xen-hvm.c        | 1 -
 hw/mips/mips_fulong2e.c      | 1 -
 hw/mips/mips_malta.c         | 1 -
 hw/net/xgmac.c               | 1 -
 hw/ppc/spapr_events.c        | 1 -
 hw/ppc/spapr_rtas.c          | 1 -
 hw/sparc/leon3.c             | 1 -
 hw/usb/ccid-card-emulated.c  | 2 +-
 hw/xen/xen_backend.c         | 1 -
 util/event_notifier-posix.c  | 1 -
 13 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c
index 091e14dc60..502f04c02a 100644
--- a/hw/arm/bcm2835_peripherals.c
+++ b/hw/arm/bcm2835_peripherals.c
@@ -13,7 +13,6 @@
 #include "hw/arm/bcm2835_peripherals.h"
 #include "hw/misc/bcm2835_mbox_defs.h"
 #include "hw/arm/raspi_platform.h"
-#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 
 /* Peripheral base address on the VC (GPU) system bus */
diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
index 1d4f378a59..af250305be 100644
--- a/hw/char/imx_serial.c
+++ b/hw/char/imx_serial.c
@@ -21,7 +21,6 @@
 #include "qemu/osdep.h"
 #include "hw/char/imx_serial.h"
 #include "sysemu/sysemu.h"
-#include "chardev/char.h"
 #include "qemu/log.h"
 
 #ifndef DEBUG_IMX_UART
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 4a1a2a4d6e..e76c0d805c 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -28,7 +28,6 @@
 
 #include "hw/hw.h"
 #include "ui/console.h"
-#include "chardev/char.h"
 #include "hw/xen/xen_backend.h"
 
 #include <xen/event_channel.h>
diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index 8dc57a31cf..321cf36b67 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -18,7 +18,6 @@
 #include "hw/xen/xen_backend.h"
 #include "qmp-commands.h"
 
-#include "chardev/char.h"
 #include "qemu/error-report.h"
 #include "qemu/range.h"
 #include "sysemu/xen-mapcache.h"
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 55eeb9227d..dbe2805acb 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -32,7 +32,6 @@
 #include "hw/mips/mips.h"
 #include "hw/mips/cpudevs.h"
 #include "hw/pci/pci.h"
-#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "audio/audio.h"
 #include "qemu/log.h"
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 610e1e9085..6fcdd9c6c1 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -37,7 +37,6 @@
 #include "hw/mips/mips.h"
 #include "hw/mips/cpudevs.h"
 #include "hw/pci/pci.h"
-#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/arch_init.h"
 #include "qemu/log.h"
diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
index 3d00e2868c..0843bf185c 100644
--- a/hw/net/xgmac.c
+++ b/hw/net/xgmac.c
@@ -26,7 +26,6 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "chardev/char.h"
 #include "qemu/log.h"
 #include "net/net.h"
 #include "net/checksum.h"
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index b309f2f4b0..8a5f1d321a 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -28,7 +28,6 @@
 #include "qapi/error.h"
 #include "cpu.h"
 #include "sysemu/sysemu.h"
-#include "chardev/char.h"
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 9995b1a9f5..dd1633a104 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -29,7 +29,6 @@
 #include "qemu/log.h"
 #include "qemu/error-report.h"
 #include "sysemu/sysemu.h"
-#include "chardev/char.h"
 #include "hw/qdev.h"
 #include "sysemu/device_tree.h"
 #include "sysemu/cpus.h"
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index f3e62f5bd7..f415997649 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -28,7 +28,6 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "hw/ptimer.h"
-#include "chardev/char.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/qtest.h"
 #include "hw/boards.h"
diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index 690b6c3ab4..e646eb243b 100644
--- a/hw/usb/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
@@ -33,7 +33,7 @@
 #include <vcard_emul.h>
 
 #include "qemu/thread.h"
-#include "chardev/char.h"
+#include "qemu/main-loop.h"
 #include "ccid.h"
 
 #define DPRINTF(card, lvl, fmt, ...) \
diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c
index a252a7fd96..b6e1b8cf59 100644
--- a/hw/xen/xen_backend.c
+++ b/hw/xen/xen_backend.c
@@ -28,7 +28,6 @@
 #include "hw/hw.h"
 #include "hw/sysbus.h"
 #include "hw/boards.h"
-#include "chardev/char.h"
 #include "qemu/log.h"
 #include "qapi/error.h"
 #include "hw/xen/xen_backend.h"
diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
index 8ab06f9b41..73c4046b58 100644
--- a/util/event_notifier-posix.c
+++ b/util/event_notifier-posix.c
@@ -14,7 +14,6 @@
 #include "qemu-common.h"
 #include "qemu/cutils.h"
 #include "qemu/event_notifier.h"
-#include "chardev/char.h"
 #include "qemu/main-loop.h"
 
 #ifdef CONFIG_EVENTFD
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 12/13] char: rename functions that are not part of fe
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (10 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 11/13] Remove/replace chardev/char.h inclusion Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:51   ` Philippe Mathieu-Daudé
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 13/13] char: make chr_fe_deinit() optionaly delete backend Marc-André Lureau
                   ` (2 subsequent siblings)
  14 siblings, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

There is no clear reason to have those functions associated with
frontend.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index b986ce1857..77e7b347f4 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -66,8 +66,7 @@ void qemu_chr_be_event(Chardev *s, int event)
 
 /* Not reporting errors from writing to logfile, as logs are
  * defined to be "best effort" only */
-static void qemu_chr_fe_write_log(Chardev *s,
-                                  const uint8_t *buf, size_t len)
+static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
 {
     size_t done = 0;
     ssize_t ret;
@@ -91,9 +90,9 @@ static void qemu_chr_fe_write_log(Chardev *s,
     }
 }
 
-static int qemu_chr_fe_write_buffer(Chardev *s,
-                                    const uint8_t *buf, int len,
-                                    int *offset, bool all)
+static int qemu_chr_write_buffer(Chardev *s,
+                                 const uint8_t *buf, int len,
+                                 int *offset, bool all)
 {
     ChardevClass *cc = CHARDEV_GET_CLASS(s);
     int res = 0;
@@ -118,7 +117,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
         }
     }
     if (*offset > 0) {
-        qemu_chr_fe_write_log(s, buf, *offset);
+        qemu_chr_write_log(s, buf, *offset);
     }
     qemu_mutex_unlock(&s->chr_write_lock);
 
@@ -133,11 +132,11 @@ int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all)
     if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
         replay_char_write_event_load(&res, &offset);
         assert(offset <= len);
-        qemu_chr_fe_write_buffer(s, buf, offset, &offset, true);
+        qemu_chr_write_buffer(s, buf, offset, &offset, true);
         return res;
     }
 
-    res = qemu_chr_fe_write_buffer(s, buf, len, &offset, all);
+    res = qemu_chr_write_buffer(s, buf, len, &offset, all);
 
     if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
         replay_char_write_event_save(res, offset);
-- 
2.13.0.rc1.16.gd80b50c3f

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

* [Qemu-devel] [PATCH 13/13] char: make chr_fe_deinit() optionaly delete backend
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (11 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 12/13] char: rename functions that are not part of fe Marc-André Lureau
@ 2017-05-09 11:33 ` Marc-André Lureau
  2017-05-09 12:21 ` [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups no-reply
  2017-05-09 12:32 ` no-reply
  14 siblings, 0 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-09 11:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, Marc-André Lureau

This simplifies removing a backend for a frontend user (no need to
retrive the associated driver and seperate delete call etc).

NB: many frontends have questionable handling of ending a chardev. They
should probably delete the backend to prevent broken reusage.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 include/chardev/char-fe.h        |  6 ++++--
 backends/rng-egd.c               |  2 +-
 chardev/char-fe.c                |  5 ++++-
 chardev/char-mux.c               |  2 +-
 gdbstub.c                        | 15 ++-------------
 hw/char/serial.c                 |  2 +-
 hw/char/xen_console.c            |  2 +-
 hw/core/qdev-properties-system.c |  2 +-
 hw/usb/ccid-card-passthru.c      |  5 +----
 hw/usb/redirect.c                |  4 +---
 monitor.c                        |  2 +-
 net/colo-compare.c               |  8 +++-----
 net/filter-mirror.c              |  6 +++---
 net/vhost-user.c                 |  5 +----
 tests/test-char.c                | 22 ++++++++--------------
 tests/vhost-user-test.c          |  4 +---
 16 files changed, 34 insertions(+), 58 deletions(-)

diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h
index bd82093218..2cbb262f66 100644
--- a/include/chardev/char-fe.h
+++ b/include/chardev/char-fe.h
@@ -30,12 +30,14 @@ bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp);
 
 /**
  * @qemu_chr_fe_deinit:
- *
+ * @b: a CharBackend
+ * @del: if true, delete the chardev backend
+*
  * Dissociate the CharBackend from the Chardev.
  *
  * Safe to call without associated Chardev.
  */
-void qemu_chr_fe_deinit(CharBackend *b);
+void qemu_chr_fe_deinit(CharBackend *b, bool del);
 
 /**
  * @qemu_chr_fe_get_driver:
diff --git a/backends/rng-egd.c b/backends/rng-egd.c
index ad3e1e5edf..e7ce2cac80 100644
--- a/backends/rng-egd.c
+++ b/backends/rng-egd.c
@@ -145,7 +145,7 @@ static void rng_egd_finalize(Object *obj)
 {
     RngEgd *s = RNG_EGD(obj);
 
-    qemu_chr_fe_deinit(&s->chr);
+    qemu_chr_fe_deinit(&s->chr, false);
     g_free(s->chr_name);
 }
 
diff --git a/chardev/char-fe.c b/chardev/char-fe.c
index ba19e168ce..dcdce93154 100644
--- a/chardev/char-fe.c
+++ b/chardev/char-fe.c
@@ -211,7 +211,7 @@ unavailable:
     return false;
 }
 
-void qemu_chr_fe_deinit(CharBackend *b)
+void qemu_chr_fe_deinit(CharBackend *b, bool del)
 {
     assert(b);
 
@@ -224,6 +224,9 @@ void qemu_chr_fe_deinit(CharBackend *b)
             MuxChardev *d = MUX_CHARDEV(b->chr);
             d->backends[b->tag] = NULL;
         }
+        if (del) {
+            object_unparent(OBJECT(b->chr));
+        }
         b->chr = NULL;
     }
 }
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 106c682e7f..08570b915e 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -266,7 +266,7 @@ static void char_mux_finalize(Object *obj)
             be->chr = NULL;
         }
     }
-    qemu_chr_fe_deinit(&d->chr);
+    qemu_chr_fe_deinit(&d->chr, false);
 }
 
 void mux_chr_set_handlers(Chardev *chr, GMainContext *context)
diff --git a/gdbstub.c b/gdbstub.c
index 98854c33e7..521b952964 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -1588,9 +1588,6 @@ void gdb_exit(CPUArchState *env, int code)
 {
   GDBState *s;
   char buf[4];
-#ifndef CONFIG_USER_ONLY
-  Chardev *chr;
-#endif
 
   s = gdbserver_state;
   if (!s) {
@@ -1600,19 +1597,13 @@ void gdb_exit(CPUArchState *env, int code)
   if (gdbserver_fd < 0 || s->fd < 0) {
       return;
   }
-#else
-  chr = qemu_chr_fe_get_driver(&s->chr);
-  if (!chr) {
-      return;
-  }
 #endif
 
   snprintf(buf, sizeof(buf), "W%02x", (uint8_t)code);
   put_packet(s, buf);
 
 #ifndef CONFIG_USER_ONLY
-  qemu_chr_fe_deinit(&s->chr);
-  object_unparent(OBJECT(chr));
+  qemu_chr_fe_deinit(&s->chr, true);
 #endif
 }
 
@@ -1912,9 +1903,7 @@ int gdbserver_start(const char *device)
                                    NULL, &error_abort);
         monitor_init(mon_chr, 0);
     } else {
-        if (qemu_chr_fe_get_driver(&s->chr)) {
-            object_unparent(OBJECT(qemu_chr_fe_get_driver(&s->chr)));
-        }
+        qemu_chr_fe_deinit(&s->chr, true);
         mon_chr = s->mon_chr;
         memset(s, 0, sizeof(GDBState));
         s->mon_chr = mon_chr;
diff --git a/hw/char/serial.c b/hw/char/serial.c
index 23e5fe9d18..e1f12507bf 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -905,7 +905,7 @@ void serial_realize_core(SerialState *s, Error **errp)
 
 void serial_exit_core(SerialState *s)
 {
-    qemu_chr_fe_deinit(&s->chr);
+    qemu_chr_fe_deinit(&s->chr, false);
 
     timer_del(s->modem_status_poll);
     timer_free(s->modem_status_poll);
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index cb849c2e3e..f9af8cadf4 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -261,7 +261,7 @@ static void con_disconnect(struct XenDevice *xendev)
 {
     struct XenConsole *con = container_of(xendev, struct XenConsole, xendev);
 
-    qemu_chr_fe_deinit(&con->chr);
+    qemu_chr_fe_deinit(&con->chr, false);
     xen_pv_unbind_evtchn(&con->xendev);
 
     if (con->sring) {
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index a549d39030..3bef41914d 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -225,7 +225,7 @@ static void release_chr(Object *obj, const char *name, void *opaque)
     Property *prop = opaque;
     CharBackend *be = qdev_get_prop_ptr(dev, prop);
 
-    qemu_chr_fe_deinit(be);
+    qemu_chr_fe_deinit(be, false);
 }
 
 PropertyInfo qdev_prop_chr = {
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index fed3683a50..ac1725eeae 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -264,10 +264,7 @@ static void ccid_card_vscard_handle_message(PassthruState *card,
 
 static void ccid_card_vscard_drop_connection(PassthruState *card)
 {
-    Chardev *chr = qemu_chr_fe_get_driver(&card->cs);
-
-    qemu_chr_fe_deinit(&card->cs);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&card->cs, true);
     card->vscard_in_pos = card->vscard_in_hdr = 0;
 }
 
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 865aa9fbe0..b6f6a4edcb 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -1430,10 +1430,8 @@ static void usbredir_cleanup_device_queues(USBRedirDevice *dev)
 static void usbredir_unrealize(USBDevice *udev, Error **errp)
 {
     USBRedirDevice *dev = USB_REDIRECT(udev);
-    Chardev *chr = qemu_chr_fe_get_driver(&dev->cs);
 
-    qemu_chr_fe_deinit(&dev->cs);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&dev->cs, true);
 
     /* Note must be done after qemu_chr_close, as that causes a close event */
     qemu_bh_delete(dev->chardev_close_bh);
diff --git a/monitor.c b/monitor.c
index 032e97485b..1456f0b213 100644
--- a/monitor.c
+++ b/monitor.c
@@ -579,7 +579,7 @@ static void monitor_data_init(Monitor *mon)
 
 static void monitor_data_destroy(Monitor *mon)
 {
-    qemu_chr_fe_deinit(&mon->chr);
+    qemu_chr_fe_deinit(&mon->chr, false);
     if (monitor_is_qmp(mon)) {
         json_message_parser_destroy(&mon->qmp.parser);
     }
diff --git a/net/colo-compare.c b/net/colo-compare.c
index db18e8ec7e..16b29c4765 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -790,11 +790,9 @@ static void colo_compare_finalize(Object *obj)
 {
     CompareState *s = COLO_COMPARE(obj);
 
-    qemu_chr_fe_set_handlers(&s->chr_pri_in, NULL, NULL, NULL, NULL,
-                             s->worker_context, true);
-    qemu_chr_fe_set_handlers(&s->chr_sec_in, NULL, NULL, NULL, NULL,
-                             s->worker_context, true);
-    qemu_chr_fe_deinit(&s->chr_out);
+    qemu_chr_fe_deinit(&s->chr_pri_in, false);
+    qemu_chr_fe_deinit(&s->chr_sec_in, false);
+    qemu_chr_fe_deinit(&s->chr_out, false);
 
     g_main_loop_quit(s->compare_loop);
     qemu_thread_join(&s->thread);
diff --git a/net/filter-mirror.c b/net/filter-mirror.c
index 33818955e2..908c7490c5 100644
--- a/net/filter-mirror.c
+++ b/net/filter-mirror.c
@@ -178,15 +178,15 @@ static void filter_mirror_cleanup(NetFilterState *nf)
 {
     MirrorState *s = FILTER_MIRROR(nf);
 
-    qemu_chr_fe_deinit(&s->chr_out);
+    qemu_chr_fe_deinit(&s->chr_out, false);
 }
 
 static void filter_redirector_cleanup(NetFilterState *nf)
 {
     MirrorState *s = FILTER_REDIRECTOR(nf);
 
-    qemu_chr_fe_deinit(&s->chr_in);
-    qemu_chr_fe_deinit(&s->chr_out);
+    qemu_chr_fe_deinit(&s->chr_in, false);
+    qemu_chr_fe_deinit(&s->chr_out, false);
 }
 
 static void filter_mirror_setup(NetFilterState *nf, Error **errp)
diff --git a/net/vhost-user.c b/net/vhost-user.c
index 526290d8c1..a042ec6a34 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -151,10 +151,7 @@ static void vhost_user_cleanup(NetClientState *nc)
         s->vhost_net = NULL;
     }
     if (nc->queue_index == 0) {
-        Chardev *chr = qemu_chr_fe_get_driver(&s->chr);
-
-        qemu_chr_fe_deinit(&s->chr);
-        object_unparent(OBJECT(chr));
+        qemu_chr_fe_deinit(&s->chr, true);
     }
 
     qemu_purge_queued_packets(nc);
diff --git a/tests/test-char.c b/tests/test-char.c
index 42844993a3..ee01659422 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -97,8 +97,7 @@ static void char_stdio_test_subprocess(void)
     ret = qemu_chr_fe_write(&be, (void *)"buf", 4);
     g_assert_cmpint(ret, ==, 4);
 
-    qemu_chr_fe_deinit(&be);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&be, true);
 }
 
 static void char_stdio_test(void)
@@ -146,8 +145,7 @@ static void char_ringbuf_test(void)
     g_assert_cmpstr(data, ==, "");
     g_free(data);
 
-    qemu_chr_fe_deinit(&be);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&be, true);
 
     /* check alias */
     opts = qemu_opts_create(qemu_find_opts("chardev"), "memory-label",
@@ -231,9 +229,8 @@ static void char_mux_test(void)
     g_assert_cmpint(strlen(data), !=, 0);
     g_free(data);
 
-    qemu_chr_fe_deinit(&chr_be1);
-    qemu_chr_fe_deinit(&chr_be2);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&chr_be1, false);
+    qemu_chr_fe_deinit(&chr_be2, true);
 }
 
 typedef struct SocketIdleData {
@@ -397,8 +394,7 @@ static void char_pipe_test(void)
     g_assert_cmpint(fe.read_count, ==, 8);
     g_assert_cmpstr(fe.read_buf, ==, "pipe-in");
 
-    qemu_chr_fe_deinit(&be);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&be, true);
 
     g_assert(g_unlink(in) == 0);
     g_assert(g_unlink(out) == 0);
@@ -512,8 +508,7 @@ static void char_file_test(void)
 
         g_assert_cmpint(fe.read_count, ==, 8);
         g_assert_cmpstr(fe.read_buf, ==, "fifo-in");
-        qemu_chr_fe_deinit(&be);
-        object_unref(OBJECT(chr));
+        qemu_chr_fe_deinit(&be, true);
         g_unlink(fifo);
         g_free(fifo);
     }
@@ -550,7 +545,7 @@ static void char_null_test(void)
     error_free_or_abort(&err);
 
     /* deinit & reinit */
-    qemu_chr_fe_deinit(&be);
+    qemu_chr_fe_deinit(&be, false);
     qemu_chr_fe_init(&be, chr, &error_abort);
 
     qemu_chr_fe_set_open(&be, true);
@@ -564,8 +559,7 @@ static void char_null_test(void)
     ret = qemu_chr_fe_write(&be, (void *)"buf", 4);
     g_assert_cmpint(ret, ==, 4);
 
-    qemu_chr_fe_deinit(&be);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&be, true);
 }
 
 static void char_invalid_test(void)
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 4ca11ae28d..b3cc045765 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -488,10 +488,8 @@ static inline void test_server_connect(TestServer *server)
 static gboolean _test_server_free(TestServer *server)
 {
     int i;
-    Chardev *chr = qemu_chr_fe_get_driver(&server->chr);
 
-    qemu_chr_fe_deinit(&server->chr);
-    object_unparent(OBJECT(chr));
+    qemu_chr_fe_deinit(&server->chr, true);
 
     for (i = 0; i < server->fds_num; i++) {
         close(server->fds[i]);
-- 
2.13.0.rc1.16.gd80b50c3f

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

* Re: [Qemu-devel] [PATCH 06/13] chardev: move headers to include/chardev
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 06/13] chardev: move headers to include/chardev Marc-André Lureau
@ 2017-05-09 11:39   ` Paolo Bonzini
  0 siblings, 0 replies; 33+ messages in thread
From: Paolo Bonzini @ 2017-05-09 11:39 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel



On 09/05/2017 13:33, Marc-André Lureau wrote:
> So they are all in one place.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  {chardev => include/chardev}/char-fd.h        |  2 +-
>  {chardev => include/chardev}/char-io.h        |  2 +-
>  {chardev => include/chardev}/char-mux.h       |  2 +-
>  {chardev => include/chardev}/char-parallel.h  |  0
>  {chardev => include/chardev}/char-serial.h    |  0
>  {chardev => include/chardev}/char-win-stdio.h |  0
>  {chardev => include/chardev}/char-win.h       |  2 +-

"Local" headers should not be in include/.

>  include/{sysemu => chardev}/char.h            |  0

This one is okay (and welcome).

>  backends/baum.c                               |  2 +-
>  backends/msmouse.c                            |  2 +-
>  backends/testdev.c                            |  2 +-

I think these three should now be moved to chardev/.

Thanks,

Paolo

>  chardev/char-console.c                        |  2 +-
>  chardev/char-fd.c                             |  6 +++---
>  chardev/char-file.c                           |  6 +++---
>  chardev/char-io.c                             |  2 +-
>  chardev/char-mux.c                            |  4 ++--
>  chardev/char-null.c                           |  2 +-
>  chardev/char-parallel.c                       |  6 +++---
>  chardev/char-pipe.c                           |  6 +++---
>  chardev/char-pty.c                            |  4 ++--
>  chardev/char-ringbuf.c                        |  2 +-
>  chardev/char-serial.c                         |  6 +++---
>  chardev/char-socket.c                         |  4 ++--
>  chardev/char-stdio.c                          |  8 ++++----
>  chardev/char-udp.c                            |  4 ++--
>  chardev/char-win-stdio.c                      |  4 ++--
>  chardev/char-win.c                            |  2 +-
>  chardev/char.c                                | 10 +++++-----
>  gdbstub.c                                     |  2 +-
>  hmp.c                                         |  2 +-
>  hw/arm/bcm2835_peripherals.c                  |  2 +-
>  hw/arm/fsl-imx25.c                            |  2 +-
>  hw/arm/fsl-imx31.c                            |  2 +-
>  hw/arm/fsl-imx6.c                             |  2 +-
>  hw/arm/omap2.c                                |  2 +-
>  hw/arm/pxa2xx.c                               |  2 +-
>  hw/arm/strongarm.c                            |  2 +-
>  hw/bt/hci-csr.c                               |  2 +-
>  hw/char/cadence_uart.c                        |  2 +-
>  hw/char/debugcon.c                            |  2 +-
>  hw/char/digic-uart.c                          |  2 +-
>  hw/char/escc.c                                |  2 +-
>  hw/char/etraxfs_ser.c                         |  2 +-
>  hw/char/exynos4210_uart.c                     |  2 +-
>  hw/char/grlib_apbuart.c                       |  2 +-
>  hw/char/imx_serial.c                          |  2 +-
>  hw/char/ipoctal232.c                          |  2 +-
>  hw/char/lm32_juart.c                          |  2 +-
>  hw/char/lm32_uart.c                           |  2 +-
>  hw/char/mcf_uart.c                            |  2 +-
>  hw/char/milkymist-uart.c                      |  2 +-
>  hw/char/omap_uart.c                           |  2 +-
>  hw/char/parallel.c                            |  2 +-
>  hw/char/pl011.c                               |  2 +-
>  hw/char/sclpconsole-lm.c                      |  2 +-
>  hw/char/sclpconsole.c                         |  2 +-
>  hw/char/serial.c                              |  2 +-
>  hw/char/sh_serial.c                           |  2 +-
>  hw/char/spapr_vty.c                           |  2 +-
>  hw/char/virtio-console.c                      |  2 +-
>  hw/char/xen_console.c                         |  2 +-
>  hw/char/xilinx_uartlite.c                     |  2 +-
>  hw/core/qdev-properties-system.c              |  2 +-
>  hw/core/qdev-properties.c                     |  2 +-
>  hw/display/xenfb.c                            |  2 +-
>  hw/i386/xen/xen-hvm.c                         |  2 +-
>  hw/ipmi/ipmi_bmc_extern.c                     |  2 +-
>  hw/isa/pc87312.c                              |  2 +-
>  hw/mips/boston.c                              |  2 +-
>  hw/mips/mips_fulong2e.c                       |  2 +-
>  hw/mips/mips_malta.c                          |  2 +-
>  hw/misc/ivshmem.c                             |  2 +-
>  hw/net/xgmac.c                                |  2 +-
>  hw/ppc/spapr_events.c                         |  2 +-
>  hw/ppc/spapr_rtas.c                           |  2 +-
>  hw/sparc/leon3.c                              |  2 +-
>  hw/usb/ccid-card-emulated.c                   |  2 +-
>  hw/usb/ccid-card-passthru.c                   |  2 +-
>  hw/usb/dev-serial.c                           |  2 +-
>  hw/usb/redirect.c                             |  2 +-
>  hw/virtio/vhost-user.c                        |  2 +-
>  hw/xen/xen-common.c                           |  2 +-
>  hw/xen/xen_backend.c                          |  2 +-
>  hw/xtensa/xtfpga.c                            |  2 +-
>  monitor.c                                     |  2 +-
>  net/colo-compare.c                            |  2 +-
>  net/filter-mirror.c                           |  2 +-
>  net/slirp.c                                   |  2 +-
>  net/vhost-user.c                              |  2 +-
>  qmp.c                                         |  2 +-
>  qtest.c                                       |  2 +-
>  replay/replay-char.c                          |  2 +-
>  slirp/slirp.c                                 |  2 +-
>  spice-qemu-char.c                             |  2 +-
>  tests/postcopy-test.c                         |  2 +-
>  tests/test-char.c                             |  2 +-
>  tests/vhost-user-test.c                       |  2 +-
>  ui/console.c                                  |  2 +-
>  ui/gtk.c                                      |  2 +-
>  util/event_notifier-posix.c                   |  2 +-
>  vl.c                                          |  2 +-
>  MAINTAINERS                                   |  1 +
>  109 files changed, 128 insertions(+), 127 deletions(-)
>  rename {chardev => include/chardev}/char-fd.h (98%)
>  rename {chardev => include/chardev}/char-io.h (98%)
>  rename {chardev => include/chardev}/char-mux.h (98%)
>  rename {chardev => include/chardev}/char-parallel.h (100%)
>  rename {chardev => include/chardev}/char-serial.h (100%)
>  rename {chardev => include/chardev}/char-win-stdio.h (100%)
>  rename {chardev => include/chardev}/char-win.h (98%)
>  rename include/{sysemu => chardev}/char.h (100%)
> 
> diff --git a/chardev/char-fd.h b/include/chardev/char-fd.h
> similarity index 98%
> rename from chardev/char-fd.h
> rename to include/chardev/char-fd.h
> index d8327982fb..55ae5b47b0 100644
> --- a/chardev/char-fd.h
> +++ b/include/chardev/char-fd.h
> @@ -25,7 +25,7 @@
>  #define CHAR_FD_H
>  
>  #include "io/channel.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  typedef struct FDChardev {
>      Chardev parent;
> diff --git a/chardev/char-io.h b/include/chardev/char-io.h
> similarity index 98%
> rename from chardev/char-io.h
> rename to include/chardev/char-io.h
> index 842be56bda..62753f660a 100644
> --- a/chardev/char-io.h
> +++ b/include/chardev/char-io.h
> @@ -26,7 +26,7 @@
>  
>  #include "qemu-common.h"
>  #include "io/channel.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  /* Can only be used for read */
>  guint io_add_watch_poll(Chardev *chr,
> diff --git a/chardev/char-mux.h b/include/chardev/char-mux.h
> similarity index 98%
> rename from chardev/char-mux.h
> rename to include/chardev/char-mux.h
> index 3f41dfcfd2..45cdfc7e67 100644
> --- a/chardev/char-mux.h
> +++ b/include/chardev/char-mux.h
> @@ -24,7 +24,7 @@
>  #ifndef CHAR_MUX_H
>  #define CHAR_MUX_H
>  
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  extern bool muxes_realized;
>  
> diff --git a/chardev/char-parallel.h b/include/chardev/char-parallel.h
> similarity index 100%
> rename from chardev/char-parallel.h
> rename to include/chardev/char-parallel.h
> diff --git a/chardev/char-serial.h b/include/chardev/char-serial.h
> similarity index 100%
> rename from chardev/char-serial.h
> rename to include/chardev/char-serial.h
> diff --git a/chardev/char-win-stdio.h b/include/chardev/char-win-stdio.h
> similarity index 100%
> rename from chardev/char-win-stdio.h
> rename to include/chardev/char-win-stdio.h
> diff --git a/chardev/char-win.h b/include/chardev/char-win.h
> similarity index 98%
> rename from chardev/char-win.h
> rename to include/chardev/char-win.h
> index 9ed2ba998a..a440a68343 100644
> --- a/chardev/char-win.h
> +++ b/include/chardev/char-win.h
> @@ -24,7 +24,7 @@
>  #ifndef CHAR_WIN_H
>  #define CHAR_WIN_H
>  
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  typedef struct {
>      Chardev parent;
> diff --git a/include/sysemu/char.h b/include/chardev/char.h
> similarity index 100%
> rename from include/sysemu/char.h
> rename to include/chardev/char.h
> diff --git a/include/hw/char/bcm2835_aux.h b/include/hw/char/bcm2835_aux.h
> index 6865f154bc..2a051c5646 100644
> --- a/include/hw/char/bcm2835_aux.h
> +++ b/include/hw/char/bcm2835_aux.h
> @@ -9,7 +9,7 @@
>  #define BCM2835_AUX_H
>  
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #define TYPE_BCM2835_AUX "bcm2835-aux"
>  #define BCM2835_AUX(obj) OBJECT_CHECK(BCM2835AuxState, (obj), TYPE_BCM2835_AUX)
> diff --git a/include/hw/char/cadence_uart.h b/include/hw/char/cadence_uart.h
> index c836db4b74..eed7d8d358 100644
> --- a/include/hw/char/cadence_uart.h
> +++ b/include/hw/char/cadence_uart.h
> @@ -19,7 +19,7 @@
>  #ifndef CADENCE_UART_H
>  
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/timer.h"
>  
>  #define CADENCE_UART_RX_FIFO_SIZE           16
> diff --git a/include/hw/char/digic-uart.h b/include/hw/char/digic-uart.h
> index 340c8e1111..370b48a6c5 100644
> --- a/include/hw/char/digic-uart.h
> +++ b/include/hw/char/digic-uart.h
> @@ -19,7 +19,7 @@
>  #define HW_CHAR_DIGIC_UART_H
>  
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #define TYPE_DIGIC_UART "digic-uart"
>  #define DIGIC_UART(obj) \
> diff --git a/include/hw/char/imx_serial.h b/include/hw/char/imx_serial.h
> index 4cc3fbc395..05500f5346 100644
> --- a/include/hw/char/imx_serial.h
> +++ b/include/hw/char/imx_serial.h
> @@ -19,7 +19,7 @@
>  #define IMX_SERIAL_H
>  
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #define TYPE_IMX_SERIAL "imx.serial"
>  #define IMX_SERIAL(obj) OBJECT_CHECK(IMXSerialState, (obj), TYPE_IMX_SERIAL)
> diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h
> index daebb076c2..01dcd2a8d2 100644
> --- a/include/hw/char/serial.h
> +++ b/include/hw/char/serial.h
> @@ -28,10 +28,10 @@
>  
>  #include "hw/hw.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "exec/memory.h"
>  #include "qemu/fifo8.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #define UART_FIFO_LENGTH    16      /* 16550A Fifo Length */
>  
> diff --git a/include/hw/char/stm32f2xx_usart.h b/include/hw/char/stm32f2xx_usart.h
> index 3267523270..4259dbeb1e 100644
> --- a/include/hw/char/stm32f2xx_usart.h
> +++ b/include/hw/char/stm32f2xx_usart.h
> @@ -26,7 +26,7 @@
>  #define HW_STM32F2XX_USART_H
>  
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/hw.h"
>  
>  #define USART_SR   0x00
> diff --git a/backends/baum.c b/backends/baum.c
> index 2eddcae119..302dd9666c 100644
> --- a/backends/baum.c
> +++ b/backends/baum.c
> @@ -24,7 +24,7 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/timer.h"
>  #include "hw/usb.h"
>  #include "ui/console.h"
> diff --git a/backends/msmouse.c b/backends/msmouse.c
> index d2c3162f1e..0ffd137ce8 100644
> --- a/backends/msmouse.c
> +++ b/backends/msmouse.c
> @@ -23,7 +23,7 @@
>   */
>  #include "qemu/osdep.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "ui/console.h"
>  #include "ui/input.h"
>  
> diff --git a/backends/rng-egd.c b/backends/rng-egd.c
> index 380b19a0a1..5448f6e5f5 100644
> --- a/backends/rng-egd.c
> +++ b/backends/rng-egd.c
> @@ -12,7 +12,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "sysemu/rng.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qapi/error.h"
>  #include "qapi/qmp/qerror.h"
>  
> diff --git a/backends/testdev.c b/backends/testdev.c
> index 7df9248a13..031e9a23e8 100644
> --- a/backends/testdev.c
> +++ b/backends/testdev.c
> @@ -25,7 +25,7 @@
>   */
>  #include "qemu/osdep.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #define BUF_SIZE 32
>  
> diff --git a/chardev/char-console.c b/chardev/char-console.c
> index 8d972c1506..535ed65136 100644
> --- a/chardev/char-console.c
> +++ b/chardev/char-console.c
> @@ -22,7 +22,7 @@
>   * THE SOFTWARE.
>   */
>  #include "qemu/osdep.h"
> -#include "char-win.h"
> +#include "chardev/char-win.h"
>  
>  static void qemu_chr_open_win_con(Chardev *chr,
>                                    ChardevBackend *backend,
> diff --git a/chardev/char-fd.c b/chardev/char-fd.c
> index 548dd4cdd9..c55e7892d0 100644
> --- a/chardev/char-fd.c
> +++ b/chardev/char-fd.c
> @@ -25,11 +25,11 @@
>  #include "qemu/sockets.h"
>  #include "qapi/error.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "io/channel-file.h"
>  
> -#include "char-fd.h"
> -#include "char-io.h"
> +#include "chardev/char-fd.h"
> +#include "chardev/char-io.h"
>  
>  /* Called with chr_write_lock held.  */
>  static int fd_chr_write(Chardev *chr, const uint8_t *buf, int len)
> diff --git a/chardev/char-file.c b/chardev/char-file.c
> index aed4ae1569..a57b88aaf2 100644
> --- a/chardev/char-file.c
> +++ b/chardev/char-file.c
> @@ -24,12 +24,12 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #ifdef _WIN32
> -#include "char-win.h"
> +#include "chardev/char-win.h"
>  #else
> -#include "char-fd.h"
> +#include "chardev/char-fd.h"
>  #endif
>  
>  static void qmp_chardev_open_file(Chardev *chr,
> diff --git a/chardev/char-io.c b/chardev/char-io.c
> index b4bb094ea3..f7849ddc1e 100644
> --- a/chardev/char-io.c
> +++ b/chardev/char-io.c
> @@ -22,7 +22,7 @@
>   * THE SOFTWARE.
>   */
>  #include "qemu/osdep.h"
> -#include "char-io.h"
> +#include "chardev/char-io.h"
>  
>  typedef struct IOWatchPoll {
>      GSource parent;
> diff --git a/chardev/char-mux.c b/chardev/char-mux.c
> index 37d42c65c6..106c682e7f 100644
> --- a/chardev/char-mux.c
> +++ b/chardev/char-mux.c
> @@ -24,9 +24,9 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/block-backend.h"
> -#include "char-mux.h"
> +#include "chardev/char-mux.h"
>  
>  /* MUX driver for serial I/O splitting */
>  
> diff --git a/chardev/char-null.c b/chardev/char-null.c
> index dc0d68ab2d..90bafe76f4 100644
> --- a/chardev/char-null.c
> +++ b/chardev/char-null.c
> @@ -22,7 +22,7 @@
>   * THE SOFTWARE.
>   */
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  static void null_chr_open(Chardev *chr,
>                            ChardevBackend *backend,
> diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
> index 3fa22ce29d..bce89f8c36 100644
> --- a/chardev/char-parallel.c
> +++ b/chardev/char-parallel.c
> @@ -22,7 +22,7 @@
>   * THE SOFTWARE.
>   */
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qapi/error.h"
>  #include <sys/ioctl.h>
>  
> @@ -41,8 +41,8 @@
>  #endif
>  #endif
>  
> -#include "char-fd.h"
> -#include "char-parallel.h"
> +#include "chardev/char-fd.h"
> +#include "chardev/char-parallel.h"
>  
>  #if defined(__linux__)
>  
> diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
> index aae950a22b..3a95e4c1b2 100644
> --- a/chardev/char-pipe.c
> +++ b/chardev/char-pipe.c
> @@ -23,12 +23,12 @@
>   */
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #ifdef _WIN32
> -#include "char-win.h"
> +#include "chardev/char-win.h"
>  #else
> -#include "char-fd.h"
> +#include "chardev/char-fd.h"
>  #endif
>  
>  #ifdef _WIN32
> diff --git a/chardev/char-pty.c b/chardev/char-pty.c
> index aa9d0cb2c3..b1d6ce104c 100644
> --- a/chardev/char-pty.c
> +++ b/chardev/char-pty.c
> @@ -24,12 +24,12 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "io/channel-file.h"
>  #include "qemu/sockets.h"
>  #include "qemu/error-report.h"
>  
> -#include "char-io.h"
> +#include "chardev/char-io.h"
>  
>  #if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
>      || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) \
> diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
> index d130069e88..df52b04d22 100644
> --- a/chardev/char-ringbuf.c
> +++ b/chardev/char-ringbuf.c
> @@ -22,7 +22,7 @@
>   * THE SOFTWARE.
>   */
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qmp-commands.h"
>  #include "qemu/base64.h"
>  
> diff --git a/chardev/char-serial.c b/chardev/char-serial.c
> index fef3a91c77..2f8f83821d 100644
> --- a/chardev/char-serial.c
> +++ b/chardev/char-serial.c
> @@ -27,14 +27,14 @@
>  #include "qapi/error.h"
>  
>  #ifdef _WIN32
> -#include "char-win.h"
> +#include "chardev/char-win.h"
>  #else
>  #include <sys/ioctl.h>
>  #include <termios.h>
> -#include "char-fd.h"
> +#include "chardev/char-fd.h"
>  #endif
>  
> -#include "char-serial.h"
> +#include "chardev/char-serial.h"
>  
>  #ifdef _WIN32
>  
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 9d5f062c62..8fea5d3ccd 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -22,14 +22,14 @@
>   * THE SOFTWARE.
>   */
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "io/channel-socket.h"
>  #include "io/channel-tls.h"
>  #include "qemu/error-report.h"
>  #include "qapi/error.h"
>  #include "qapi/clone-visitor.h"
>  
> -#include "char-io.h"
> +#include "chardev/char-io.h"
>  
>  /***********************************************************/
>  /* TCP Net console */
> diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
> index be4a65962c..6f5d798d7b 100644
> --- a/chardev/char-stdio.c
> +++ b/chardev/char-stdio.c
> @@ -25,14 +25,14 @@
>  #include "qemu/sockets.h"
>  #include "qapi/error.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #ifdef _WIN32
> -#include "char-win.h"
> -#include "char-win-stdio.h"
> +#include "chardev/char-win.h"
> +#include "chardev/char-win-stdio.h"
>  #else
>  #include <termios.h>
> -#include "char-fd.h"
> +#include "chardev/char-fd.h"
>  #endif
>  
>  #ifndef _WIN32
> diff --git a/chardev/char-udp.c b/chardev/char-udp.c
> index 1958c36de4..40c012d9b0 100644
> --- a/chardev/char-udp.c
> +++ b/chardev/char-udp.c
> @@ -22,11 +22,11 @@
>   * THE SOFTWARE.
>   */
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "io/channel-socket.h"
>  #include "qapi/error.h"
>  
> -#include "char-io.h"
> +#include "chardev/char-io.h"
>  
>  /***********************************************************/
>  /* UDP Net console */
> diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
> index eb44afc17a..efcf7827eb 100644
> --- a/chardev/char-win-stdio.c
> +++ b/chardev/char-win-stdio.c
> @@ -23,8 +23,8 @@
>   */
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
> -#include "char-win.h"
> -#include "char-win-stdio.h"
> +#include "chardev/char-win.h"
> +#include "chardev/char-win-stdio.h"
>  
>  typedef struct {
>      Chardev parent;
> diff --git a/chardev/char-win.c b/chardev/char-win.c
> index 24cf364947..ca236ba368 100644
> --- a/chardev/char-win.c
> +++ b/chardev/char-win.c
> @@ -24,7 +24,7 @@
>  #include "qemu/osdep.h"
>  #include "qemu-common.h"
>  #include "qapi/error.h"
> -#include "char-win.h"
> +#include "chardev/char-win.h"
>  
>  static void win_chr_read(Chardev *chr, DWORD len)
>  {
> diff --git a/chardev/char.c b/chardev/char.c
> index fadfedb836..af7d871ed5 100644
> --- a/chardev/char.c
> +++ b/chardev/char.c
> @@ -28,16 +28,16 @@
>  #include "sysemu/sysemu.h"
>  #include "qemu/config-file.h"
>  #include "qemu/error-report.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qmp-commands.h"
>  #include "qapi-visit.h"
>  #include "sysemu/replay.h"
>  #include "qemu/help_option.h"
>  
> -#include "char-mux.h"
> -#include "char-io.h"
> -#include "char-parallel.h"
> -#include "char-serial.h"
> +#include "chardev/char-mux.h"
> +#include "chardev/char-io.h"
> +#include "chardev/char-parallel.h"
> +#include "chardev/char-serial.h"
>  
>  /***********************************************************/
>  /* character device */
> diff --git a/gdbstub.c b/gdbstub.c
> index 07ebfe9626..e53661ec41 100644
> --- a/gdbstub.c
> +++ b/gdbstub.c
> @@ -25,7 +25,7 @@
>  #include "qemu.h"
>  #else
>  #include "monitor/monitor.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "exec/gdbstub.h"
>  #endif
> diff --git a/hmp.c b/hmp.c
> index bd7b1caf2b..d1c94de440 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -17,7 +17,7 @@
>  #include "hmp.h"
>  #include "net/net.h"
>  #include "net/eth.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/block-backend.h"
>  #include "sysemu/sysemu.h"
>  #include "qemu/config-file.h"
> diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c
> index 369ef1e3bd..091e14dc60 100644
> --- a/hw/arm/bcm2835_peripherals.c
> +++ b/hw/arm/bcm2835_peripherals.c
> @@ -13,7 +13,7 @@
>  #include "hw/arm/bcm2835_peripherals.h"
>  #include "hw/misc/bcm2835_mbox_defs.h"
>  #include "hw/arm/raspi_platform.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  
>  /* Peripheral base address on the VC (GPU) system bus */
> diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c
> index 9056f27bf8..40666b68a3 100644
> --- a/hw/arm/fsl-imx25.c
> +++ b/hw/arm/fsl-imx25.c
> @@ -30,7 +30,7 @@
>  #include "sysemu/sysemu.h"
>  #include "exec/address-spaces.h"
>  #include "hw/boards.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  static void fsl_imx25_init(Object *obj)
>  {
> diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c
> index d7e2d832b2..c30130667e 100644
> --- a/hw/arm/fsl-imx31.c
> +++ b/hw/arm/fsl-imx31.c
> @@ -27,7 +27,7 @@
>  #include "sysemu/sysemu.h"
>  #include "exec/address-spaces.h"
>  #include "hw/boards.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  static void fsl_imx31_init(Object *obj)
>  {
> diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c
> index 6969e734ad..27773c9c47 100644
> --- a/hw/arm/fsl-imx6.c
> +++ b/hw/arm/fsl-imx6.c
> @@ -24,7 +24,7 @@
>  #include "qemu-common.h"
>  #include "hw/arm/fsl-imx6.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  
>  #define NAME_SIZE 20
> diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c
> index cf1b4ba58f..566749a9eb 100644
> --- a/hw/arm/omap2.c
> +++ b/hw/arm/omap2.c
> @@ -30,7 +30,7 @@
>  #include "hw/arm/omap.h"
>  #include "sysemu/sysemu.h"
>  #include "qemu/timer.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/block/flash.h"
>  #include "hw/arm/soc_dma.h"
>  #include "hw/sysbus.h"
> diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
> index eea551dc16..0d43cc707c 100644
> --- a/hw/arm/pxa2xx.c
> +++ b/hw/arm/pxa2xx.c
> @@ -17,7 +17,7 @@
>  #include "hw/char/serial.h"
>  #include "hw/i2c/i2c.h"
>  #include "hw/ssi/ssi.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/block-backend.h"
>  #include "sysemu/blockdev.h"
>  #include "qemu/cutils.h"
> diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
> index 3311cc38a4..66cad198d4 100644
> --- a/hw/arm/strongarm.c
> +++ b/hw/arm/strongarm.c
> @@ -34,7 +34,7 @@
>  #include "strongarm.h"
>  #include "qemu/error-report.h"
>  #include "hw/arm/arm.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "hw/ssi/ssi.h"
>  #include "qemu/cutils.h"
> diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
> index 3c193848fc..cc2087392e 100644
> --- a/hw/bt/hci-csr.c
> +++ b/hw/bt/hci-csr.c
> @@ -20,7 +20,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "qemu-common.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/timer.h"
>  #include "qemu/bswap.h"
>  #include "hw/irq.h"
> diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c
> index 4dcee571c0..cf4c1d56ff 100644
> --- a/hw/char/cadence_uart.c
> +++ b/hw/char/cadence_uart.c
> @@ -23,7 +23,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/timer.h"
>  #include "qemu/log.h"
>  #include "hw/char/cadence_uart.h"
> diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c
> index 80dce07e7f..77d91c8558 100644
> --- a/hw/char/debugcon.c
> +++ b/hw/char/debugcon.c
> @@ -27,7 +27,7 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "hw/hw.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/isa/isa.h"
>  #include "hw/i386/pc.h"
>  
> diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c
> index 029f5bbf5e..4f1dec7f1d 100644
> --- a/hw/char/digic-uart.c
> +++ b/hw/char/digic-uart.c
> @@ -29,7 +29,7 @@
>  #include "qemu/osdep.h"
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/log.h"
>  
>  #include "hw/char/digic-uart.h"
> diff --git a/hw/char/escc.c b/hw/char/escc.c
> index 9228091cec..df89d58eed 100644
> --- a/hw/char/escc.c
> +++ b/hw/char/escc.c
> @@ -26,7 +26,7 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "hw/char/escc.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "ui/console.h"
>  #include "ui/input.h"
>  #include "trace.h"
> diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c
> index 54383878e0..33e3e16397 100644
> --- a/hw/char/etraxfs_ser.c
> +++ b/hw/char/etraxfs_ser.c
> @@ -24,7 +24,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/log.h"
>  
>  #define D(x)
> diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c
> index bff706ab3a..94952fb90f 100644
> --- a/hw/char/exynos4210_uart.c
> +++ b/hw/char/exynos4210_uart.c
> @@ -23,7 +23,7 @@
>  #include "hw/sysbus.h"
>  #include "qemu/error-report.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #include "hw/arm/exynos4210.h"
>  
> diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c
> index db686e6a6f..39d1133c61 100644
> --- a/hw/char/grlib_apbuart.c
> +++ b/hw/char/grlib_apbuart.c
> @@ -24,7 +24,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #include "trace.h"
>  
> diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
> index 52e67f8dc9..1d4f378a59 100644
> --- a/hw/char/imx_serial.c
> +++ b/hw/char/imx_serial.c
> @@ -21,7 +21,7 @@
>  #include "qemu/osdep.h"
>  #include "hw/char/imx_serial.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/log.h"
>  
>  #ifndef DEBUG_IMX_UART
> diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c
> index 93929c2880..b8a3c92c9e 100644
> --- a/hw/char/ipoctal232.c
> +++ b/hw/char/ipoctal232.c
> @@ -11,7 +11,7 @@
>  #include "qemu/osdep.h"
>  #include "hw/ipack/ipack.h"
>  #include "qemu/bitops.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  /* #define DEBUG_IPOCTAL */
>  
> diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c
> index f8c1e0d076..6b0633e518 100644
> --- a/hw/char/lm32_juart.c
> +++ b/hw/char/lm32_juart.c
> @@ -21,7 +21,7 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "trace.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #include "hw/char/lm32_juart.h"
>  
> diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c
> index 7f3597c4b0..a7610c28ce 100644
> --- a/hw/char/lm32_uart.c
> +++ b/hw/char/lm32_uart.c
> @@ -26,7 +26,7 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "trace.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  
>  enum {
> diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c
> index e69672f4e9..b639b53c83 100644
> --- a/hw/char/mcf_uart.c
> +++ b/hw/char/mcf_uart.c
> @@ -9,7 +9,7 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "hw/m68k/mcf.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "exec/address-spaces.h"
>  #include "qapi/error.h"
>  
> diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c
> index ae8e2f3554..5ef847c5eb 100644
> --- a/hw/char/milkymist-uart.c
> +++ b/hw/char/milkymist-uart.c
> @@ -25,7 +25,7 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "trace.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  
>  enum {
> diff --git a/hw/char/omap_uart.c b/hw/char/omap_uart.c
> index 31ebb1592c..6fd1b9cf6b 100644
> --- a/hw/char/omap_uart.c
> +++ b/hw/char/omap_uart.c
> @@ -18,7 +18,7 @@
>   * with this program; if not, see <http://www.gnu.org/licenses/>.
>   */
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/hw.h"
>  #include "hw/arm/omap.h"
>  #include "hw/char/serial.h"
> diff --git a/hw/char/parallel.c b/hw/char/parallel.c
> index c71a4a0f4f..c926df0bee 100644
> --- a/hw/char/parallel.c
> +++ b/hw/char/parallel.c
> @@ -25,7 +25,7 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "hw/hw.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/isa/isa.h"
>  #include "hw/i386/pc.h"
>  #include "sysemu/sysemu.h"
> diff --git a/hw/char/pl011.c b/hw/char/pl011.c
> index 24ea9738b6..1757035bb3 100644
> --- a/hw/char/pl011.c
> +++ b/hw/char/pl011.c
> @@ -9,7 +9,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/log.h"
>  #include "trace.h"
>  
> diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c
> index 07d6ebd112..755d514188 100644
> --- a/hw/char/sclpconsole-lm.c
> +++ b/hw/char/sclpconsole-lm.c
> @@ -17,7 +17,7 @@
>  #include "hw/qdev.h"
>  #include "qemu/thread.h"
>  #include "qemu/error-report.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #include "hw/s390x/sclp.h"
>  #include "hw/s390x/event-facility.h"
> diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c
> index b78f240a73..0fd3cb4887 100644
> --- a/hw/char/sclpconsole.c
> +++ b/hw/char/sclpconsole.c
> @@ -19,7 +19,7 @@
>  
>  #include "hw/s390x/sclp.h"
>  #include "hw/s390x/event-facility.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  typedef struct ASCIIConsoleData {
>      EventBufferHeader ebh;
> diff --git a/hw/char/serial.c b/hw/char/serial.c
> index 03d890ca24..aa336333be 100644
> --- a/hw/char/serial.c
> +++ b/hw/char/serial.c
> @@ -25,7 +25,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/char/serial.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qapi/error.h"
>  #include "qemu/timer.h"
>  #include "exec/address-spaces.h"
> diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
> index 303eb0a678..80c7696d8d 100644
> --- a/hw/char/sh_serial.c
> +++ b/hw/char/sh_serial.c
> @@ -27,7 +27,7 @@
>  #include "qemu/osdep.h"
>  #include "hw/hw.h"
>  #include "hw/sh4/sh.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "exec/address-spaces.h"
>  #include "qapi/error.h"
>  
> diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c
> index e30c8da57c..2317e45404 100644
> --- a/hw/char/spapr_vty.c
> +++ b/hw/char/spapr_vty.c
> @@ -4,7 +4,7 @@
>  #include "qemu-common.h"
>  #include "cpu.h"
>  #include "hw/qdev.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/ppc/spapr.h"
>  #include "hw/ppc/spapr_vio.h"
>  
> diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c
> index 798d9b69fd..8418db6a07 100644
> --- a/hw/char/virtio-console.c
> +++ b/hw/char/virtio-console.c
> @@ -11,7 +11,7 @@
>   */
>  
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  #include "trace.h"
>  #include "hw/virtio/virtio-serial.h"
> diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
> index c01f41090e..1cdbe59f8a 100644
> --- a/hw/char/xen_console.c
> +++ b/hw/char/xen_console.c
> @@ -25,7 +25,7 @@
>  
>  #include "qapi/error.h"
>  #include "hw/hw.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/xen/xen_backend.h"
>  #include "qapi/error.h"
>  
> diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c
> index 37d313b429..bcebdae3da 100644
> --- a/hw/char/xilinx_uartlite.c
> +++ b/hw/char/xilinx_uartlite.c
> @@ -24,7 +24,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #define DUART(x)
>  
> diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
> index 79c2014135..4da0c6a24e 100644
> --- a/hw/core/qdev-properties-system.c
> +++ b/hw/core/qdev-properties-system.c
> @@ -20,7 +20,7 @@
>  #include "hw/block/block.h"
>  #include "net/hub.h"
>  #include "qapi/visitor.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/iothread.h"
>  
>  static void get_pointer(Object *obj, Visitor *v, Property *prop,
> diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
> index fa3617db2d..9f1a497322 100644
> --- a/hw/core/qdev-properties.c
> +++ b/hw/core/qdev-properties.c
> @@ -9,7 +9,7 @@
>  #include "hw/block/block.h"
>  #include "net/hub.h"
>  #include "qapi/visitor.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  void qdev_prop_set_after_realize(DeviceState *dev, const char *name,
>                                    Error **errp)
> diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
> index 7a8727aa21..4a1a2a4d6e 100644
> --- a/hw/display/xenfb.c
> +++ b/hw/display/xenfb.c
> @@ -28,7 +28,7 @@
>  
>  #include "hw/hw.h"
>  #include "ui/console.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/xen/xen_backend.h"
>  
>  #include <xen/event_channel.h>
> diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
> index b1c05ffb86..8dc57a31cf 100644
> --- a/hw/i386/xen/xen-hvm.c
> +++ b/hw/i386/xen/xen-hvm.c
> @@ -18,7 +18,7 @@
>  #include "hw/xen/xen_backend.h"
>  #include "qmp-commands.h"
>  
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  #include "qemu/range.h"
>  #include "sysemu/xen-mapcache.h"
> diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c
> index e8e3d250b6..35285383fd 100644
> --- a/hw/ipmi/ipmi_bmc_extern.c
> +++ b/hw/ipmi/ipmi_bmc_extern.c
> @@ -30,7 +30,7 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "qemu/timer.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "hw/ipmi/ipmi.h"
>  
> diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
> index c707d24db4..5ce9f0a062 100644
> --- a/hw/isa/pc87312.c
> +++ b/hw/isa/pc87312.c
> @@ -30,7 +30,7 @@
>  #include "sysemu/block-backend.h"
>  #include "sysemu/blockdev.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "trace.h"
>  
>  
> diff --git a/hw/mips/boston.c b/hw/mips/boston.c
> index 83f7b82386..56d22fe49b 100644
> --- a/hw/mips/boston.c
> +++ b/hw/mips/boston.c
> @@ -35,7 +35,7 @@
>  #include "qemu/cutils.h"
>  #include "qemu/error-report.h"
>  #include "qemu/log.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/device_tree.h"
>  #include "sysemu/sysemu.h"
>  #include "sysemu/qtest.h"
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index e636c3abaa..55eeb9227d 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -32,7 +32,7 @@
>  #include "hw/mips/mips.h"
>  #include "hw/mips/cpudevs.h"
>  #include "hw/pci/pci.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "audio/audio.h"
>  #include "qemu/log.h"
> diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> index 5dd177e961..610e1e9085 100644
> --- a/hw/mips/mips_malta.c
> +++ b/hw/mips/mips_malta.c
> @@ -37,7 +37,7 @@
>  #include "hw/mips/mips.h"
>  #include "hw/mips/cpudevs.h"
>  #include "hw/pci/pci.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "sysemu/arch_init.h"
>  #include "qemu/log.h"
> diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
> index 82ce8378bf..a45bb7943d 100644
> --- a/hw/misc/ivshmem.c
> +++ b/hw/misc/ivshmem.c
> @@ -29,7 +29,7 @@
>  #include "qemu/error-report.h"
>  #include "qemu/event_notifier.h"
>  #include "qom/object_interfaces.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/hostmem.h"
>  #include "sysemu/qtest.h"
>  #include "qapi/visitor.h"
> diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
> index 46b1aa17fa..3d00e2868c 100644
> --- a/hw/net/xgmac.c
> +++ b/hw/net/xgmac.c
> @@ -26,7 +26,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/log.h"
>  #include "net/net.h"
>  #include "net/checksum.h"
> diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
> index f0b28d8112..b309f2f4b0 100644
> --- a/hw/ppc/spapr_events.c
> +++ b/hw/ppc/spapr_events.c
> @@ -28,7 +28,7 @@
>  #include "qapi/error.h"
>  #include "cpu.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>  
> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> index 619f32c054..9995b1a9f5 100644
> --- a/hw/ppc/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -29,7 +29,7 @@
>  #include "qemu/log.h"
>  #include "qemu/error-report.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>  #include "sysemu/cpus.h"
> diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
> index 6e16478413..f3e62f5bd7 100644
> --- a/hw/sparc/leon3.c
> +++ b/hw/sparc/leon3.c
> @@ -28,7 +28,7 @@
>  #include "hw/hw.h"
>  #include "qemu/timer.h"
>  #include "hw/ptimer.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "sysemu/qtest.h"
>  #include "hw/boards.h"
> diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
> index 99627860a3..690b6c3ab4 100644
> --- a/hw/usb/ccid-card-emulated.c
> +++ b/hw/usb/ccid-card-emulated.c
> @@ -33,7 +33,7 @@
>  #include <vcard_emul.h>
>  
>  #include "qemu/thread.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "ccid.h"
>  
>  #define DPRINTF(card, lvl, fmt, ...) \
> diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
> index a41b0d6ec5..c2096b25ab 100644
> --- a/hw/usb/ccid-card-passthru.c
> +++ b/hw/usb/ccid-card-passthru.c
> @@ -9,7 +9,7 @@
>   */
>  
>  #include "qemu/osdep.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  #include "qemu/sockets.h"
>  #include "ccid.h"
> diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
> index 6d5137383b..c19cd310c2 100644
> --- a/hw/usb/dev-serial.c
> +++ b/hw/usb/dev-serial.c
> @@ -15,7 +15,7 @@
>  #include "qemu/error-report.h"
>  #include "hw/usb.h"
>  #include "hw/usb/desc.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  //#define DEBUG_Serial
>  
> diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
> index b001a27f05..48468fc61a 100644
> --- a/hw/usb/redirect.c
> +++ b/hw/usb/redirect.c
> @@ -33,7 +33,7 @@
>  #include "qapi/qmp/qerror.h"
>  #include "qemu/error-report.h"
>  #include "qemu/iov.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  #include <usbredirparser.h>
>  #include <usbredirfilter.h>
> diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
> index 9334a8ae22..07b97205fa 100644
> --- a/hw/virtio/vhost-user.c
> +++ b/hw/virtio/vhost-user.c
> @@ -13,7 +13,7 @@
>  #include "hw/virtio/vhost.h"
>  #include "hw/virtio/vhost-backend.h"
>  #include "hw/virtio/virtio-net.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/kvm.h"
>  #include "qemu/error-report.h"
>  #include "qemu/sockets.h"
> diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c
> index a9055e9eba..0bed5770c9 100644
> --- a/hw/xen/xen-common.c
> +++ b/hw/xen/xen-common.c
> @@ -11,7 +11,7 @@
>  #include "qemu/osdep.h"
>  #include "hw/xen/xen_backend.h"
>  #include "qmp-commands.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/accel.h"
>  #include "migration/migration.h"
>  
> diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c
> index c85f1637e4..a252a7fd96 100644
> --- a/hw/xen/xen_backend.c
> +++ b/hw/xen/xen_backend.c
> @@ -28,7 +28,7 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "hw/boards.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/log.h"
>  #include "qapi/error.h"
>  #include "hw/xen/xen_backend.h"
> diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
> index 11176e26bd..5b31cdc566 100644
> --- a/hw/xtensa/xtfpga.c
> +++ b/hw/xtensa/xtfpga.c
> @@ -40,7 +40,7 @@
>  #include "hw/sysbus.h"
>  #include "hw/block/flash.h"
>  #include "sysemu/block-backend.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/device_tree.h"
>  #include "qemu/error-report.h"
>  #include "bootparam.h"
> diff --git a/monitor.c b/monitor.c
> index ce1102944b..1b041e0514 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -35,7 +35,7 @@
>  #include "exec/gdbstub.h"
>  #include "net/net.h"
>  #include "net/slirp.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "ui/qemu-spice.h"
>  #include "sysemu/numa.h"
>  #include "monitor/monitor.h"
> diff --git a/net/colo-compare.c b/net/colo-compare.c
> index 4ab80b1cbb..d2cdcdfd78 100644
> --- a/net/colo-compare.c
> +++ b/net/colo-compare.c
> @@ -25,7 +25,7 @@
>  #include "qom/object.h"
>  #include "qemu/typedefs.h"
>  #include "net/queue.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/sockets.h"
>  #include "qapi-visit.h"
>  #include "net/colo.h"
> diff --git a/net/filter-mirror.c b/net/filter-mirror.c
> index 72fa7c2b6c..03a380b4db 100644
> --- a/net/filter-mirror.c
> +++ b/net/filter-mirror.c
> @@ -20,7 +20,7 @@
>  #include "qemu/main-loop.h"
>  #include "qemu/error-report.h"
>  #include "trace.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/iov.h"
>  #include "qemu/sockets.h"
>  
> diff --git a/net/slirp.c b/net/slirp.c
> index c705a60b62..af3e8b22ac 100644
> --- a/net/slirp.c
> +++ b/net/slirp.c
> @@ -37,7 +37,7 @@
>  #include "qemu/sockets.h"
>  #include "slirp/libslirp.h"
>  #include "slirp/ip6.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "qemu/cutils.h"
>  #include "qapi/error.h"
> diff --git a/net/vhost-user.c b/net/vhost-user.c
> index 00a0c1cbc5..77d2ce22a6 100644
> --- a/net/vhost-user.c
> +++ b/net/vhost-user.c
> @@ -12,7 +12,7 @@
>  #include "clients.h"
>  #include "net/vhost_net.h"
>  #include "net/vhost-user.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/config-file.h"
>  #include "qemu/error-report.h"
>  #include "qmp-commands.h"
> diff --git a/qmp.c b/qmp.c
> index ab74cd729d..5cebc543c6 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -21,7 +21,7 @@
>  #include "qemu/config-file.h"
>  #include "qemu/uuid.h"
>  #include "qmp-commands.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "ui/qemu-spice.h"
>  #include "ui/vnc.h"
>  #include "sysemu/kvm.h"
> diff --git a/qtest.c b/qtest.c
> index 5aa6636ca8..dbf70a7018 100644
> --- a/qtest.c
> +++ b/qtest.c
> @@ -17,7 +17,7 @@
>  #include "cpu.h"
>  #include "sysemu/qtest.h"
>  #include "hw/qdev.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "exec/ioport.h"
>  #include "exec/memory.h"
>  #include "hw/irq.h"
> diff --git a/replay/replay-char.c b/replay/replay-char.c
> index aa65955942..cbf7c04a9f 100755
> --- a/replay/replay-char.c
> +++ b/replay/replay-char.c
> @@ -14,7 +14,7 @@
>  #include "sysemu/replay.h"
>  #include "replay-internal.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  
>  /* Char drivers that generate qemu_chr_be_write events
>     that should be saved into the log. */
> diff --git a/slirp/slirp.c b/slirp/slirp.c
> index 2f2ec2c1b3..3b92cb54ce 100644
> --- a/slirp/slirp.c
> +++ b/slirp/slirp.c
> @@ -25,7 +25,7 @@
>  #include "qemu-common.h"
>  #include "qemu/timer.h"
>  #include "qemu/error-report.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "slirp.h"
>  #include "hw/hw.h"
>  #include "qemu/cutils.h"
> diff --git a/spice-qemu-char.c b/spice-qemu-char.c
> index 4d1c76e8a4..1c6c2e3969 100644
> --- a/spice-qemu-char.c
> +++ b/spice-qemu-char.c
> @@ -1,7 +1,7 @@
>  #include "qemu/osdep.h"
>  #include "trace-root.h"
>  #include "ui/qemu-spice.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  #include <spice.h>
>  #include <spice/protocol.h>
> diff --git a/tests/postcopy-test.c b/tests/postcopy-test.c
> index de35a18903..85e7666e84 100644
> --- a/tests/postcopy-test.c
> +++ b/tests/postcopy-test.c
> @@ -16,7 +16,7 @@
>  #include "qemu/option.h"
>  #include "qemu/range.h"
>  #include "qemu/sockets.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "hw/nvram/chrp_nvram.h"
>  
> diff --git a/tests/test-char.c b/tests/test-char.c
> index 773a1c36ba..a6ab17c100 100644
> --- a/tests/test-char.c
> +++ b/tests/test-char.c
> @@ -4,7 +4,7 @@
>  #include "qemu-common.h"
>  #include "qemu/config-file.h"
>  #include "qemu/sockets.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "qapi/error.h"
>  #include "qom/qom-qobject.h"
> diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
> index 9095af267e..acc392d046 100644
> --- a/tests/vhost-user-test.c
> +++ b/tests/vhost-user-test.c
> @@ -16,7 +16,7 @@
>  #include "qemu/option.h"
>  #include "qemu/range.h"
>  #include "qemu/sockets.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "libqos/libqos.h"
>  #include "libqos/pci-pc.h"
> diff --git a/ui/console.c b/ui/console.c
> index ac66b3c910..6cf795a23d 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -27,7 +27,7 @@
>  #include "hw/qdev-core.h"
>  #include "qemu/timer.h"
>  #include "qmp-commands.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "trace.h"
>  #include "exec/memory.h"
>  
> diff --git a/ui/gtk.c b/ui/gtk.c
> index 7479ceef35..8bb836a09d 100644
> --- a/ui/gtk.c
> +++ b/ui/gtk.c
> @@ -54,7 +54,7 @@
>  #include "qmp-commands.h"
>  #include "x_keymap.h"
>  #include "keymaps.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qom/object.h"
>  
>  #define MAX_VCS 10
> diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
> index acdbe3b483..8ab06f9b41 100644
> --- a/util/event_notifier-posix.c
> +++ b/util/event_notifier-posix.c
> @@ -14,7 +14,7 @@
>  #include "qemu-common.h"
>  #include "qemu/cutils.h"
>  #include "qemu/event_notifier.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/main-loop.h"
>  
>  #ifdef CONFIG_EVENTFD
> diff --git a/vl.c b/vl.c
> index 560288fe0c..c028faa149 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -81,7 +81,7 @@ int main(int argc, char **argv)
>  #include "sysemu/numa.h"
>  #include "exec/gdbstub.h"
>  #include "qemu/timer.h"
> -#include "sysemu/char.h"
> +#include "chardev/char.h"
>  #include "qemu/bitmap.h"
>  #include "qemu/log.h"
>  #include "sysemu/blockdev.h"
> diff --git a/MAINTAINERS b/MAINTAINERS
> index efdec47319..8f8efa3f7b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1221,6 +1221,7 @@ M: Paolo Bonzini <pbonzini@redhat.com>
>  M: Marc-André Lureau <marcandre.lureau@redhat.com>
>  S: Maintained
>  F: chardev/
> +F: include/chardev/
>  F: backends/msmouse.c
>  F: backends/testdev.c
>  
> 

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

* Re: [Qemu-devel] [PATCH 07/13] chardev: serial & parallel declaration to own headers
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 07/13] chardev: serial & parallel declaration to own headers Marc-André Lureau
@ 2017-05-09 11:41   ` Paolo Bonzini
  2017-05-26 11:41     ` Marc-André Lureau
  0 siblings, 1 reply; 33+ messages in thread
From: Paolo Bonzini @ 2017-05-09 11:41 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel



On 09/05/2017 13:33, Marc-André Lureau wrote:
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  include/chardev/char-parallel.h | 20 +++++++++++++++++++-
>  include/chardev/char-serial.h   | 22 ++++++++++++++++++++++
>  include/chardev/char.h          | 36 ------------------------------------
>  hw/arm/strongarm.c              |  2 +-
>  hw/bt/hci-csr.c                 |  2 +-
>  hw/char/cadence_uart.c          |  2 +-
>  hw/char/escc.c                  |  2 +-
>  hw/char/exynos4210_uart.c       |  2 +-
>  hw/char/parallel.c              |  2 +-
>  hw/char/serial.c                |  2 +-
>  hw/usb/dev-serial.c             |  2 +-
>  11 files changed, 49 insertions(+), 45 deletions(-)
> 
> diff --git a/include/chardev/char-parallel.h b/include/chardev/char-parallel.h
> index 26742f9d5c..3284a1b96b 100644
> --- a/include/chardev/char-parallel.h
> +++ b/include/chardev/char-parallel.h
> @@ -24,9 +24,27 @@
>  #ifndef CHAR_PARALLEL_H
>  #define CHAR_PARALLEL_H
>  
> -#if defined(__linux__) || defined(__FreeBSD__) || \
> +#include "chardev/char.h"
> +
> +#if defined(__linux__) || defined(__FreeBSD__) ||               \
>      defined(__FreeBSD_kernel__) || defined(__DragonFly__)
>  #define HAVE_CHARDEV_PARPORT 1
>  #endif
>  
> +#define CHR_IOCTL_PP_READ_DATA        3
> +#define CHR_IOCTL_PP_WRITE_DATA       4
> +#define CHR_IOCTL_PP_READ_CONTROL     5
> +#define CHR_IOCTL_PP_WRITE_CONTROL    6
> +#define CHR_IOCTL_PP_READ_STATUS      7
> +#define CHR_IOCTL_PP_EPP_READ_ADDR    8
> +#define CHR_IOCTL_PP_EPP_READ         9
> +#define CHR_IOCTL_PP_EPP_WRITE_ADDR  10
> +#define CHR_IOCTL_PP_EPP_WRITE       11
> +#define CHR_IOCTL_PP_DATA_DIR        12
> +
> +struct ParallelIOArg {
> +    void *buffer;
> +    int count;
> +};
> +
>  #endif /* CHAR_PARALLEL_H */
> diff --git a/include/chardev/char-serial.h b/include/chardev/char-serial.h
> index 64a27f63b1..cb2e59e82a 100644
> --- a/include/chardev/char-serial.h
> +++ b/include/chardev/char-serial.h
> @@ -24,6 +24,8 @@
>  #ifndef CHAR_SERIAL_H
>  #define CHAR_SERIAL_H
>  
> +#include "chardev/char.h"
> +
>  #ifdef _WIN32
>  #define HAVE_CHARDEV_SERIAL 1
>  #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)    \
> @@ -32,4 +34,24 @@
>  #define HAVE_CHARDEV_SERIAL 1
>  #endif
>  
> +#define CHR_IOCTL_SERIAL_SET_PARAMS   1
> +typedef struct {
> +    int speed;
> +    int parity;
> +    int data_bits;
> +    int stop_bits;
> +} QEMUSerialSetParams;
> +
> +#define CHR_IOCTL_SERIAL_SET_BREAK    2
> +
> +#define CHR_IOCTL_SERIAL_SET_TIOCM   13
> +#define CHR_IOCTL_SERIAL_GET_TIOCM   14
> +
> +#define CHR_TIOCM_CTS   0x020
> +#define CHR_TIOCM_CAR   0x040
> +#define CHR_TIOCM_DSR   0x100
> +#define CHR_TIOCM_RI    0x080
> +#define CHR_TIOCM_DTR   0x002
> +#define CHR_TIOCM_RTS   0x004
> +
>  #endif
> diff --git a/include/chardev/char.h b/include/chardev/char.h
> index ea9f2cb7d6..0e1ef1ea4f 100644
> --- a/include/chardev/char.h
> +++ b/include/chardev/char.h
> @@ -27,42 +27,6 @@ typedef enum {
>  
>  #define CHR_READ_BUF_LEN 4096
>  
> -#define CHR_IOCTL_SERIAL_SET_PARAMS   1
> -typedef struct {
> -    int speed;
> -    int parity;
> -    int data_bits;
> -    int stop_bits;
> -} QEMUSerialSetParams;
> -
> -#define CHR_IOCTL_SERIAL_SET_BREAK    2
> -
> -#define CHR_IOCTL_PP_READ_DATA        3
> -#define CHR_IOCTL_PP_WRITE_DATA       4
> -#define CHR_IOCTL_PP_READ_CONTROL     5
> -#define CHR_IOCTL_PP_WRITE_CONTROL    6
> -#define CHR_IOCTL_PP_READ_STATUS      7
> -#define CHR_IOCTL_PP_EPP_READ_ADDR    8
> -#define CHR_IOCTL_PP_EPP_READ         9
> -#define CHR_IOCTL_PP_EPP_WRITE_ADDR  10
> -#define CHR_IOCTL_PP_EPP_WRITE       11
> -#define CHR_IOCTL_PP_DATA_DIR        12
> -
> -struct ParallelIOArg {
> -    void *buffer;
> -    int count;
> -};
> -
> -#define CHR_IOCTL_SERIAL_SET_TIOCM   13
> -#define CHR_IOCTL_SERIAL_GET_TIOCM   14
> -
> -#define CHR_TIOCM_CTS	0x020
> -#define CHR_TIOCM_CAR	0x040
> -#define CHR_TIOCM_DSR	0x100
> -#define CHR_TIOCM_RI	0x080
> -#define CHR_TIOCM_DTR	0x002
> -#define CHR_TIOCM_RTS	0x004
> -
>  typedef void IOEventHandler(void *opaque, int event);
>  
>  typedef enum {

Hmm, this makes the previous patch more desirable.

> diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
> index 66cad198d4..967caea749 100644
> --- a/hw/arm/strongarm.c
> +++ b/hw/arm/strongarm.c
> @@ -34,7 +34,7 @@
>  #include "strongarm.h"
>  #include "qemu/error-report.h"
>  #include "hw/arm/arm.h"
> -#include "chardev/char.h"
> +#include "chardev/char-serial.h"

Should this include both?  Likewise for all those below.

Thanks,

Paolo

>  #include "sysemu/sysemu.h"
>  #include "hw/ssi/ssi.h"
>  #include "qemu/cutils.h"
> diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
> index cc2087392e..0f2021086d 100644
> --- a/hw/bt/hci-csr.c
> +++ b/hw/bt/hci-csr.c
> @@ -20,7 +20,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "qemu-common.h"
> -#include "chardev/char.h"
> +#include "chardev/char-serial.h"
>  #include "qemu/timer.h"
>  #include "qemu/bswap.h"
>  #include "hw/irq.h"
> diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c
> index cf4c1d56ff..4bfc185376 100644
> --- a/hw/char/cadence_uart.c
> +++ b/hw/char/cadence_uart.c
> @@ -23,7 +23,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "chardev/char.h"
> +#include "chardev/char-serial.h"
>  #include "qemu/timer.h"
>  #include "qemu/log.h"
>  #include "hw/char/cadence_uart.h"
> diff --git a/hw/char/escc.c b/hw/char/escc.c
> index df89d58eed..81d792cb47 100644
> --- a/hw/char/escc.c
> +++ b/hw/char/escc.c
> @@ -26,7 +26,7 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "hw/char/escc.h"
> -#include "chardev/char.h"
> +#include "chardev/char-serial.h"
>  #include "ui/console.h"
>  #include "ui/input.h"
>  #include "trace.h"
> diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c
> index 94952fb90f..d93125645a 100644
> --- a/hw/char/exynos4210_uart.c
> +++ b/hw/char/exynos4210_uart.c
> @@ -23,7 +23,7 @@
>  #include "hw/sysbus.h"
>  #include "qemu/error-report.h"
>  #include "sysemu/sysemu.h"
> -#include "chardev/char.h"
> +#include "chardev/char-serial.h"
>  
>  #include "hw/arm/exynos4210.h"
>  
> diff --git a/hw/char/parallel.c b/hw/char/parallel.c
> index c926df0bee..1d6c6e9f33 100644
> --- a/hw/char/parallel.c
> +++ b/hw/char/parallel.c
> @@ -25,7 +25,7 @@
>  #include "qemu/osdep.h"
>  #include "qapi/error.h"
>  #include "hw/hw.h"
> -#include "chardev/char.h"
> +#include "chardev/char-parallel.h"
>  #include "hw/isa/isa.h"
>  #include "hw/i386/pc.h"
>  #include "sysemu/sysemu.h"
> diff --git a/hw/char/serial.c b/hw/char/serial.c
> index aa336333be..23e5fe9d18 100644
> --- a/hw/char/serial.c
> +++ b/hw/char/serial.c
> @@ -25,7 +25,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/char/serial.h"
> -#include "chardev/char.h"
> +#include "chardev/char-serial.h"
>  #include "qapi/error.h"
>  #include "qemu/timer.h"
>  #include "exec/address-spaces.h"
> diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
> index c19cd310c2..4f592d0f82 100644
> --- a/hw/usb/dev-serial.c
> +++ b/hw/usb/dev-serial.c
> @@ -15,7 +15,7 @@
>  #include "qemu/error-report.h"
>  #include "hw/usb.h"
>  #include "hw/usb/desc.h"
> -#include "chardev/char.h"
> +#include "chardev/char-serial.h"
>  
>  //#define DEBUG_Serial
>  
> 

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

* Re: [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (12 preceding siblings ...)
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 13/13] char: make chr_fe_deinit() optionaly delete backend Marc-André Lureau
@ 2017-05-09 12:21 ` no-reply
  2017-05-09 12:32 ` no-reply
  14 siblings, 0 replies; 33+ messages in thread
From: no-reply @ 2017-05-09 12:21 UTC (permalink / raw)
  To: marcandre.lureau; +Cc: famz, qemu-devel, pbonzini

Hi,

This series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.

Subject: [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups
Type: series
Message-id: 20170509113332.4987-1-marcandre.lureau@redhat.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-quick@centos6
time make docker-test-mingw@fedora
time make docker-test-build@min-glib
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 - [tag update]      patchew/20170509112034.23351-1-berrange@redhat.com -> patchew/20170509112034.23351-1-berrange@redhat.com
 * [new tag]         patchew/20170509113332.4987-1-marcandre.lureau@redhat.com -> patchew/20170509113332.4987-1-marcandre.lureau@redhat.com
Switched to a new branch 'test'
8bbbd92 char: make chr_fe_deinit() optionaly delete backend
ed07d77 char: rename functions that are not part of fe
b8c569d Remove/replace chardev/char.h inclusion
3b66c5b char: move CharBackend handling in char-fe unit
9dd62ad char: generalize qemu_chr_write_all()
f5d7e07 be-hci: use backend functions
4705c1e chardev: serial & parallel declaration to own headers
b53b45d chardev: move headers to include/chardev
aed7c0f char-win: close file handle except with console
9e47315 char-win: rename hcom->file
68dd8ad char-win: rename win_chr_init/poll win_chr_serial_init/poll
af0bb4e char-win: remove WinChardev.len
cb6abe0 char-win: simplify win_chr_read()

=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-hqv8w1rj/src/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
  BUILD   centos6
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-hqv8w1rj/src'
  ARCHIVE qemu.tgz
  ARCHIVE dtc.tgz
  COPY    RUNNER
    RUN test-quick in qemu:centos6 
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
ccache-3.1.6-2.el6.x86_64
epel-release-6-8.noarch
gcc-4.4.7-17.el6.x86_64
git-1.7.1-4.el6_7.1.x86_64
glib2-devel-2.28.8-5.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
make-3.81-23.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
tar-1.23-15.el6_8.x86_64
zlib-devel-1.2.3-29.el6.x86_64

Environment variables:
PACKAGES=libfdt-devel ccache     tar git make gcc g++     zlib-devel glib2-devel SDL-devel pixman-devel     epel-release
HOSTNAME=133fad067432
TERM=xterm
MAKEFLAGS= -j8
HISTSIZE=1000
J=8
USER=root
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
MAIL=/var/spool/mail/root
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
LANG=en_US.UTF-8
TARGET_LIST=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
FEATURES= dtc
DEBUG=
G_BROKEN_FILENAMES=1
CCACHE_HASHDIR=
_=/usr/bin/env

Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install
No C++ compiler available; disabling C++ specific optional code
Install prefix    /var/tmp/qemu-build/install
BIOS directory    /var/tmp/qemu-build/install/share/qemu
binary directory  /var/tmp/qemu-build/install/bin
library directory /var/tmp/qemu-build/install/lib
module directory  /var/tmp/qemu-build/install/lib/qemu
libexec directory /var/tmp/qemu-build/install/libexec
include directory /var/tmp/qemu-build/install/include
config directory  /var/tmp/qemu-build/install/etc
local state directory   /var/tmp/qemu-build/install/var
Manual directory  /var/tmp/qemu-build/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /tmp/qemu-test/src
C compiler        cc
Host C compiler   cc
C++ compiler      
Objective-C compiler cc
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g 
QEMU_CFLAGS       -I/usr/include/pixman-1   -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       x86_64-softmmu aarch64-softmmu
tcg debug enabled no
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
pixman            system
SDL support       yes (1.2.14)
GTK support       no 
GTK GL support    no
VTE support       no 
TLS priority      NORMAL
GNUTLS support    no
GNUTLS rnd        no
libgcrypt         no
libgcrypt kdf     no
nettle            no 
nettle kdf        no
libtasn1          no
curses support    no
virgl support     no
curl support      no
mingw32 support   no
Audio drivers     oss
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC SASL support  no
VNC JPEG support  no
VNC PNG support   no
xen support       no
brlapi support    no
bluez  support    no
Documentation     no
PIE               yes
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support yes
Install blobs     yes
KVM support       yes
HAX support       no
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    yes
fdatasync         yes
madvise           yes
posix_madvise     yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
Trace backends    log
spice support     no 
rbd support       no
xfsctl support    no
smartcard support no
libusb            no
usb net redir     no
OpenGL support    no
OpenGL dmabufs    no
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
QGA w32 disk info no
QGA MSI support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
debug stack usage no
GlusterFS support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   no
TPM passthrough   yes
QOM debugging     yes
lzo support       no
snappy support    no
bzip2 support     no
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization no
replication support yes
VxHS block device no
mkdir -p dtc/libfdt
mkdir -p dtc/tests
  GEN     x86_64-softmmu/config-devices.mak.tmp
  GEN     aarch64-softmmu/config-devices.mak.tmp
  GEN     config-host.h
  GEN     qemu-options.def
  GEN     qmp-commands.h
  GEN     qapi-types.h
  GEN     qapi-visit.h
  GEN     qapi-event.h
  GEN     x86_64-softmmu/config-devices.mak
  GEN     qmp-marshal.c
  GEN     qapi-types.c
  GEN     aarch64-softmmu/config-devices.mak
  GEN     qapi-visit.c
  GEN     qapi-event.c
  GEN     qmp-introspect.h
  GEN     qmp-introspect.c
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-helpers.h
  GEN     trace/generated-helpers.c
  GEN     module_block.h
  GEN     tests/test-qapi-types.h
  GEN     tests/test-qapi-visit.h
  GEN     tests/test-qmp-commands.h
  GEN     tests/test-qapi-event.h
  GEN     tests/test-qmp-introspect.h
  GEN     trace-root.h
  GEN     util/trace.h
  GEN     crypto/trace.h
  GEN     io/trace.h
  GEN     migration/trace.h
  GEN     block/trace.h
  GEN     backends/trace.h
  GEN     hw/block/trace.h
  GEN     hw/block/dataplane/trace.h
  GEN     hw/char/trace.h
  GEN     hw/intc/trace.h
  GEN     hw/net/trace.h
  GEN     hw/virtio/trace.h
  GEN     hw/audio/trace.h
  GEN     hw/misc/trace.h
  GEN     hw/usb/trace.h
  GEN     hw/scsi/trace.h
  GEN     hw/nvram/trace.h
  GEN     hw/display/trace.h
  GEN     hw/input/trace.h
  GEN     hw/timer/trace.h
  GEN     hw/dma/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/xen/trace.h
  GEN     ui/trace.h
  GEN     audio/trace.h
  GEN     net/trace.h
  GEN     target/arm/trace.h
  GEN     target/i386/trace.h
  GEN     target/mips/trace.h
  GEN     target/sparc/trace.h
  GEN     target/s390x/trace.h
  GEN     target/ppc/trace.h
  GEN     qom/trace.h
  GEN     linux-user/trace.h
  GEN     qapi/trace.h
  GEN     trace-root.c
  GEN     util/trace.c
  GEN     crypto/trace.c
  GEN     io/trace.c
  GEN     migration/trace.c
  GEN     block/trace.c
  GEN     backends/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/net/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/display/trace.c
  GEN     hw/input/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/ppc/trace.c
  GEN     hw/pci/trace.c
  GEN     hw/s390x/trace.c
  GEN     hw/vfio/trace.c
  GEN     hw/acpi/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/xen/trace.c
  GEN     ui/trace.c
  GEN     audio/trace.c
  GEN     net/trace.c
  GEN     target/arm/trace.c
  GEN     target/i386/trace.c
  GEN     target/mips/trace.c
  GEN     target/sparc/trace.c
  GEN     target/s390x/trace.c
  GEN     target/ppc/trace.c
  GEN     qom/trace.c
  GEN     linux-user/trace.c
  GEN     qapi/trace.c
  GEN     config-all-devices.mak
	 DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
	 DEP /tmp/qemu-test/src/dtc/tests/trees.S
	 DEP /tmp/qemu-test/src/dtc/tests/testutils.c
	 DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
	 DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
	 DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/check_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
	 DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
	 DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
	 DEP /tmp/qemu-test/src/dtc/tests/incbin.c
	 DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
	 DEP /tmp/qemu-test/src/dtc/tests/path-references.c
	 DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
	 DEP /tmp/qemu-test/src/dtc/tests/references.c
	 DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
	 DEP /tmp/qemu-test/src/dtc/tests/del_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/del_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop.c
	 DEP /tmp/qemu-test/src/dtc/tests/set_name.c
	 DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
	 DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
	 DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
	 DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
	 DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
	 DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
	 DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
	 DEP /tmp/qemu-test/src/dtc/tests/notfound.c
	 DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
	 DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
	 DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
	 DEP /tmp/qemu-test/src/dtc/tests/getprop.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_name.c
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/find_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/root_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
	 DEP /tmp/qemu-test/src/dtc/util.c
	 DEP /tmp/qemu-test/src/dtc/fdtput.c
	 DEP /tmp/qemu-test/src/dtc/fdtget.c
	 DEP /tmp/qemu-test/src/dtc/fdtdump.c
	 LEX convert-dtsv0-lexer.lex.c
	 DEP /tmp/qemu-test/src/dtc/srcpos.c
make[1]: flex: Command not found
	 BISON dtc-parser.tab.c
	 LEX dtc-lexer.lex.c
make[1]: bison: Command not found
make[1]: flex: Command not found
	 DEP /tmp/qemu-test/src/dtc/treesource.c
	 DEP /tmp/qemu-test/src/dtc/livetree.c
	 DEP /tmp/qemu-test/src/dtc/fstree.c
	 DEP /tmp/qemu-test/src/dtc/flattree.c
	 DEP /tmp/qemu-test/src/dtc/dtc.c
	 DEP /tmp/qemu-test/src/dtc/data.c
	 DEP /tmp/qemu-test/src/dtc/checks.c
	CHK version_gen.h
	 BISON dtc-parser.tab.c
	 LEX dtc-lexer.lex.c
make[1]: bison: Command not found
make[1]: flex: Command not found
	 LEX convert-dtsv0-lexer.lex.c
	UPD version_gen.h
make[1]: flex: Command not found
	 DEP /tmp/qemu-test/src/dtc/util.c
	 LEX convert-dtsv0-lexer.lex.c
	 BISON dtc-parser.tab.c
make[1]: bison: Command not found
	 LEX dtc-lexer.lex.c
make[1]: flex: Command not found
make[1]: flex: Command not found
	 CC libfdt/fdt_ro.o
	 CC libfdt/fdt.o
	 CC libfdt/fdt_wip.o
	 CC libfdt/fdt_sw.o
	 CC libfdt/fdt_rw.o
	 CC libfdt/fdt_strerror.o
	 CC libfdt/fdt_empty_tree.o
	 CC libfdt/fdt_addresses.o
	 CC libfdt/fdt_overlay.o
	 AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
	 LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
	 BISON dtc-parser.tab.c
	 LEX dtc-lexer.lex.c
make[1]: bison: Command not found
make[1]: flex: Command not found
  CC      tests/qemu-iotests/socket_scm_helper.o
  GEN     qga/qapi-generated/qga-qapi-types.h
  GEN     qga/qapi-generated/qga-qapi-types.c
  GEN     qga/qapi-generated/qga-qapi-visit.h
  GEN     qga/qapi-generated/qga-qmp-marshal.c
  GEN     qga/qapi-generated/qga-qmp-commands.h
  CC      qmp-introspect.o
  GEN     qga/qapi-generated/qga-qapi-visit.c
  CC      qapi-types.o
  CC      qapi-visit.o
  CC      qapi-event.o
  CC      qapi/qapi-visit-core.o
  CC      qapi/qapi-dealloc-visitor.o
  CC      qapi/qobject-input-visitor.o
  CC      qapi/qobject-output-visitor.o
  CC      qapi/qmp-registry.o
  CC      qapi/qmp-dispatch.o
  CC      qapi/string-input-visitor.o
  CC      qapi/string-output-visitor.o
  CC      qapi/opts-visitor.o
  CC      qapi/qapi-clone-visitor.o
  CC      qapi/qmp-event.o
  CC      qapi/qapi-util.o
  CC      qobject/qnull.o
  CC      qobject/qint.o
  CC      qobject/qstring.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qfloat.o
  CC      qobject/qjson.o
  CC      qobject/qbool.o
  CC      qobject/qobject.o
  CC      qobject/json-lexer.o
  CC      qobject/json-streamer.o
  CC      qobject/json-parser.o
  CC      trace/control.o
  CC      trace/qmp.o
  CC      util/osdep.o
  CC      util/cutils.o
  CC      util/unicode.o
  CC      util/qemu-timer-common.o
  CC      util/bufferiszero.o
  CC      util/lockcnt.o
  CC      util/aiocb.o
  CC      util/async.o
  CC      util/thread-pool.o
  CC      util/qemu-timer.o
  CC      util/main-loop.o
  CC      util/iohandler.o
  CC      util/aio-posix.o
  CC      util/compatfd.o
  CC      util/event_notifier-posix.o
  CC      util/mmap-alloc.o
  CC      util/oslib-posix.o
  CC      util/qemu-openpty.o
  CC      util/qemu-thread-posix.o
  CC      util/memfd.o
  CC      util/envlist.o
  CC      util/path.o
  CC      util/host-utils.o
  CC      util/module.o
  CC      util/bitops.o
  CC      util/bitmap.o
  CC      util/fifo8.o
  CC      util/hbitmap.o
  CC      util/acl.o
  CC      util/error.o
  CC      util/qemu-error.o
  CC      util/id.o
  CC      util/iov.o
  CC      util/qemu-config.o
  CC      util/qemu-sockets.o
  CC      util/uri.o
  CC      util/notify.o
  CC      util/qemu-option.o
  CC      util/qemu-progress.o
  CC      util/keyval.o
  CC      util/hexdump.o
  CC      util/crc32c.o
  CC      util/throttle.o
  CC      util/uuid.o
  CC      util/getauxval.o
  CC      util/readline.o
  CC      util/rcu.o
  CC      util/qemu-coroutine.o
  CC      util/qemu-coroutine-lock.o
  CC      util/qemu-coroutine-io.o
  CC      util/qemu-coroutine-sleep.o
  CC      util/buffer.o
  CC      util/coroutine-ucontext.o
  CC      util/base64.o
  CC      util/timed-average.o
  CC      util/log.o
  CC      util/qdist.o
  CC      util/qht.o
  CC      util/range.o
  CC      util/systemd.o
  CC      trace-root.o
  CC      util/trace.o
  CC      crypto/trace.o
  CC      io/trace.o
  CC      migration/trace.o
  CC      block/trace.o
  CC      backends/trace.o
  CC      hw/block/trace.o
  CC      hw/block/dataplane/trace.o
  CC      hw/char/trace.o
  CC      hw/intc/trace.o
  CC      hw/net/trace.o
  CC      hw/virtio/trace.o
  CC      hw/audio/trace.o
  CC      hw/misc/trace.o
  CC      hw/usb/trace.o
  CC      hw/scsi/trace.o
  CC      hw/nvram/trace.o
  CC      hw/display/trace.o
  CC      hw/input/trace.o
  CC      hw/timer/trace.o
  CC      hw/dma/trace.o
  CC      hw/sparc/trace.o
  CC      hw/sd/trace.o
  CC      hw/isa/trace.o
  CC      hw/mem/trace.o
  CC      hw/i386/trace.o
  CC      hw/i386/xen/trace.o
  CC      hw/9pfs/trace.o
  CC      hw/ppc/trace.o
  CC      hw/pci/trace.o
  CC      hw/s390x/trace.o
  CC      hw/vfio/trace.o
  CC      hw/acpi/trace.o
  CC      hw/arm/trace.o
  CC      hw/alpha/trace.o
  CC      hw/xen/trace.o
  CC      ui/trace.o
  CC      audio/trace.o
  CC      target/arm/trace.o
  CC      net/trace.o
  CC      target/i386/trace.o
  CC      target/mips/trace.o
  CC      target/sparc/trace.o
  CC      target/s390x/trace.o
  CC      target/ppc/trace.o
  CC      qom/trace.o
  CC      linux-user/trace.o
  CC      qapi/trace.o
  CC      crypto/pbkdf-stub.o
  CC      stubs/arch-query-cpu-def.o
  CC      stubs/arch-query-cpu-model-expansion.o
  CC      stubs/arch-query-cpu-model-comparison.o
  CC      stubs/arch-query-cpu-model-baseline.o
  CC      stubs/bdrv-next-monitor-owned.o
  CC      stubs/blk-commit-all.o
  CC      stubs/blockdev-close-all-bdrv-states.o
  CC      stubs/clock-warp.o
  CC      stubs/cpu-get-clock.o
  CC      stubs/cpu-get-icount.o
  CC      stubs/dump.o
  CC      stubs/error-printf.o
  CC      stubs/fdset.o
  CC      stubs/gdbstub.o
  CC      stubs/get-vm-name.o
  CC      stubs/iothread.o
  CC      stubs/iothread-lock.o
  CC      stubs/is-daemonized.o
  CC      stubs/machine-init-done.o
  CC      stubs/migr-blocker.o
  CC      stubs/monitor.o
  CC      stubs/notify-event.o
  CC      stubs/qtest.o
  CC      stubs/replay.o
  CC      stubs/runstate-check.o
  CC      stubs/set-fd-handler.o
  CC      stubs/slirp.o
  CC      stubs/sysbus.o
  CC      stubs/trace-control.o
  CC      stubs/uuid.o
  CC      stubs/vm-stop.o
  CC      stubs/vmstate.o
  CC      stubs/qmp_pc_dimm_device_list.o
  CC      stubs/target-monitor-defs.o
  CC      stubs/target-get-monitor-def.o
  CC      stubs/pc_madt_cpu_entry.o
  CC      stubs/vmgenid.o
  CC      stubs/xen-common.o
  CC      stubs/xen-hvm.o
  CC      contrib/ivshmem-client/ivshmem-client.o
  CC      contrib/ivshmem-client/main.o
  CC      contrib/ivshmem-server/ivshmem-server.o
  CC      contrib/ivshmem-server/main.o
  CC      qemu-nbd.o
  CC      block.o
  CC      blockjob.o
  CC      qemu-io-cmds.o
  CC      replication.o
  CC      block/raw-format.o
  CC      block/qcow.o
  CC      block/vdi.o
  CC      block/vmdk.o
  CC      block/bochs.o
  CC      block/cloop.o
  CC      block/vpc.o
  CC      block/vvfat.o
  CC      block/dmg.o
  CC      block/qcow2.o
  CC      block/qcow2-refcount.o
  CC      block/qcow2-cluster.o
  CC      block/qcow2-snapshot.o
  CC      block/qcow2-cache.o
  CC      block/qed.o
  CC      block/qed-gencb.o
  CC      block/qed-l2-cache.o
  CC      block/qed-table.o
  CC      block/qed-cluster.o
  CC      block/qed-check.o
  CC      block/vhdx-endian.o
  CC      block/vhdx.o
  CC      block/vhdx-log.o
  CC      block/quorum.o
  CC      block/blkdebug.o
  CC      block/parallels.o
  CC      block/blkverify.o
  CC      block/blkreplay.o
  CC      block/block-backend.o
  CC      block/snapshot.o
  CC      block/qapi.o
  CC      block/file-posix.o
  CC      block/null.o
  CC      block/mirror.o
  CC      block/commit.o
  CC      block/io.o
  CC      block/throttle-groups.o
  CC      block/nbd.o
  CC      block/nbd-client.o
  CC      block/sheepdog.o
  CC      block/accounting.o
  CC      block/dirty-bitmap.o
  CC      block/write-threshold.o
  CC      block/backup.o
  CC      block/replication.o
  CC      block/crypto.o
  CC      nbd/server.o
  CC      nbd/client.o
  CC      nbd/common.o
  CC      crypto/init.o
  CC      crypto/hash.o
  CC      crypto/hash-glib.o
  CC      crypto/hmac.o
  CC      crypto/hmac-glib.o
  CC      crypto/aes.o
  CC      crypto/desrfb.o
  CC      crypto/cipher.o
  CC      crypto/tlscreds.o
  CC      crypto/tlscredsanon.o
  CC      crypto/tlscredsx509.o
  CC      crypto/tlssession.o
  CC      crypto/secret.o
  CC      crypto/random-platform.o
  CC      crypto/pbkdf.o
  CC      crypto/ivgen.o
  CC      crypto/ivgen-essiv.o
  CC      crypto/ivgen-plain.o
  CC      crypto/ivgen-plain64.o
  CC      crypto/afsplit.o
  CC      crypto/xts.o
  CC      crypto/block.o
  CC      crypto/block-qcow.o
  CC      crypto/block-luks.o
  CC      io/channel.o
  CC      io/channel-buffer.o
  CC      io/channel-command.o
  CC      io/channel-tls.o
  CC      io/channel-socket.o
  CC      io/channel-file.o
  CC      io/channel-watch.o
  CC      io/channel-websock.o
  CC      io/channel-util.o
  CC      io/dns-resolver.o
  CC      io/task.o
  CC      qom/object.o
  CC      qom/container.o
  CC      qom/qom-qobject.o
  CC      qom/object_interfaces.o
  GEN     qemu-img-cmds.h
  CC      qemu-io.o
  CC      qemu-bridge-helper.o
  CC      blockdev.o
  CC      blockdev-nbd.o
  CC      iothread.o
  CC      qdev-monitor.o
  CC      device-hotplug.o
  CC      os-posix.o
  CC      page_cache.o
  CC      accel.o
  CC      bt-host.o
  CC      bt-vhci.o
  CC      dma-helpers.o
  CC      vl.o
  CC      tpm.o
  CC      qmp-marshal.o
  CC      qmp.o
  CC      device_tree.o
  CC      cpus-common.o
  CC      hmp.o
  CC      audio/audio.o
  CC      audio/noaudio.o
  CC      audio/wavaudio.o
  CC      audio/mixeng.o
  CC      audio/sdlaudio.o
  CC      audio/ossaudio.o
  CC      audio/wavcapture.o
  CC      backends/rng.o
  CC      backends/rng-egd.o
  CC      backends/rng-random.o
  CC      backends/msmouse.o
  CC      backends/wctablet.o
  CC      backends/testdev.o
  CC      backends/tpm.o
  CC      backends/hostmem.o
  CC      backends/hostmem-ram.o
  CC      backends/hostmem-file.o
  CC      backends/cryptodev.o
  CC      backends/cryptodev-builtin.o
  CC      block/stream.o
  CC      disas/arm.o
  CC      disas/i386.o
  CC      fsdev/qemu-fsdev-dummy.o
  CC      fsdev/qemu-fsdev-opts.o
  CC      fsdev/qemu-fsdev-throttle.o
  CC      hw/acpi/core.o
  CC      hw/acpi/piix4.o
  CC      hw/acpi/pcihp.o
  CC      hw/acpi/ich9.o
  CC      hw/acpi/tco.o
  CC      hw/acpi/cpu_hotplug.o
  CC      hw/acpi/memory_hotplug.o
  CC      hw/acpi/cpu.o
  CC      hw/acpi/nvdimm.o
  CC      hw/acpi/vmgenid.o
  CC      hw/acpi/acpi_interface.o
  CC      hw/acpi/bios-linker-loader.o
  CC      hw/acpi/aml-build.o
  CC      hw/acpi/ipmi.o
  CC      hw/acpi/acpi-stub.o
  CC      hw/acpi/ipmi-stub.o
  CC      hw/audio/sb16.o
  CC      hw/audio/es1370.o
  CC      hw/audio/ac97.o
  CC      hw/audio/fmopl.o
  CC      hw/audio/adlib.o
  CC      hw/audio/gus.o
  CC      hw/audio/gusemu_hal.o
  CC      hw/audio/gusemu_mixer.o
  CC      hw/audio/cs4231a.o
  CC      hw/audio/intel-hda.o
  CC      hw/audio/pcspk.o
  CC      hw/audio/hda-codec.o
  CC      hw/audio/pl041.o
  CC      hw/audio/wm8750.o
  CC      hw/audio/lm4549.o
  CC      hw/block/block.o
  CC      hw/audio/marvell_88w8618.o
  CC      hw/block/cdrom.o
  CC      hw/block/hd-geometry.o
  CC      hw/block/fdc.o
  CC      hw/block/m25p80.o
  CC      hw/block/nand.o
  CC      hw/block/pflash_cfi01.o
  CC      hw/block/pflash_cfi02.o
  CC      hw/block/ecc.o
  CC      hw/block/onenand.o
  CC      hw/block/nvme.o
  CC      hw/bt/core.o
  CC      hw/bt/sdp.o
  CC      hw/bt/l2cap.o
  CC      hw/bt/hci.o
  CC      hw/bt/hid.o
  CC      hw/bt/hci-csr.o
  CC      hw/char/ipoctal232.o
  CC      hw/char/parallel.o
  CC      hw/char/pl011.o
  CC      hw/char/serial.o
  CC      hw/char/serial-isa.o
  CC      hw/char/serial-pci.o
  CC      hw/char/virtio-console.o
  CC      hw/char/cadence_uart.o
  CC      hw/char/debugcon.o
  CC      hw/char/imx_serial.o
  CC      hw/core/qdev.o
  CC      hw/core/qdev-properties.o
  CC      hw/core/bus.o
  CC      hw/core/reset.o
  CC      hw/core/fw-path-provider.o
  CC      hw/core/irq.o
  CC      hw/core/hotplug.o
  CC      hw/core/ptimer.o
  CC      hw/core/sysbus.o
  CC      hw/core/machine.o
  CC      hw/core/loader.o
  CC      hw/core/qdev-properties-system.o
  CC      hw/core/register.o
  CC      hw/core/or-irq.o
  CC      hw/core/platform-bus.o
  CC      hw/display/ads7846.o
  CC      hw/display/pl110.o
  CC      hw/display/cirrus_vga.o
  CC      hw/display/ssd0303.o
  CC      hw/display/ssd0323.o
  CC      hw/display/vga-pci.o
  CC      hw/display/vga-isa.o
  CC      hw/display/vmware_vga.o
  CC      hw/display/blizzard.o
  CC      hw/display/exynos4210_fimd.o
  CC      hw/display/framebuffer.o
  CC      hw/display/tc6393xb.o
  CC      hw/dma/pl080.o
  CC      hw/dma/pl330.o
  CC      hw/dma/xlnx-zynq-devcfg.o
  CC      hw/dma/i8257.o
  CC      hw/gpio/max7310.o
  CC      hw/gpio/pl061.o
  CC      hw/gpio/zaurus.o
  CC      hw/gpio/gpio_key.o
  CC      hw/i2c/core.o
  CC      hw/i2c/smbus.o
  CC      hw/i2c/smbus_eeprom.o
  CC      hw/i2c/i2c-ddc.o
  CC      hw/i2c/smbus_ich9.o
  CC      hw/i2c/versatile_i2c.o
  CC      hw/i2c/pm_smbus.o
  CC      hw/i2c/bitbang_i2c.o
  CC      hw/i2c/exynos4210_i2c.o
  CC      hw/i2c/imx_i2c.o
  CC      hw/i2c/aspeed_i2c.o
  CC      hw/ide/core.o
  CC      hw/ide/atapi.o
  CC      hw/ide/qdev.o
  CC      hw/ide/pci.o
  CC      hw/ide/isa.o
  CC      hw/ide/piix.o
  CC      hw/ide/microdrive.o
  CC      hw/ide/ahci.o
  CC      hw/ide/ich.o
  CC      hw/input/hid.o
  CC      hw/input/lm832x.o
  CC      hw/input/pckbd.o
  CC      hw/input/pl050.o
  CC      hw/input/ps2.o
  CC      hw/input/stellaris_input.o
  CC      hw/input/tsc2005.o
  CC      hw/input/virtio-input.o
  CC      hw/input/vmmouse.o
  CC      hw/input/virtio-input-hid.o
  CC      hw/input/virtio-input-host.o
  CC      hw/intc/i8259_common.o
  CC      hw/intc/i8259.o
  CC      hw/intc/pl190.o
  CC      hw/intc/imx_avic.o
  CC      hw/intc/realview_gic.o
  CC      hw/intc/ioapic_common.o
  CC      hw/intc/arm_gic_common.o
  CC      hw/intc/arm_gic.o
  CC      hw/intc/arm_gicv2m.o
  CC      hw/intc/arm_gicv3_common.o
  CC      hw/intc/arm_gicv3.o
  CC      hw/intc/arm_gicv3_dist.o
  CC      hw/intc/arm_gicv3_its_common.o
  CC      hw/intc/intc.o
  CC      hw/intc/arm_gicv3_redist.o
  CC      hw/ipack/tpci200.o
  CC      hw/ipack/ipack.o
  CC      hw/ipmi/ipmi.o
  CC      hw/ipmi/ipmi_bmc_sim.o
  CC      hw/ipmi/ipmi_bmc_extern.o
  CC      hw/ipmi/isa_ipmi_kcs.o
  CC      hw/ipmi/isa_ipmi_bt.o
  CC      hw/isa/isa-bus.o
  CC      hw/isa/apm.o
  CC      hw/mem/pc-dimm.o
  CC      hw/mem/nvdimm.o
  CC      hw/misc/applesmc.o
  CC      hw/misc/max111x.o
  CC      hw/misc/tmp105.o
  CC      hw/misc/sga.o
  CC      hw/misc/pc-testdev.o
  CC      hw/misc/debugexit.o
  CC      hw/misc/pci-testdev.o
  CC      hw/misc/unimp.o
  CC      hw/misc/arm_integrator_debug.o
  CC      hw/net/ne2000.o
  CC      hw/misc/arm_l2x0.o
  CC      hw/misc/a9scu.o
  CC      hw/misc/arm11scu.o
  CC      hw/net/eepro100.o
  CC      hw/net/pcnet-pci.o
  CC      hw/net/pcnet.o
  CC      hw/net/e1000.o
  CC      hw/net/net_tx_pkt.o
  CC      hw/net/e1000x_common.o
  CC      hw/net/net_rx_pkt.o
  CC      hw/net/e1000e.o
  CC      hw/net/e1000e_core.o
  CC      hw/net/rtl8139.o
  CC      hw/net/vmxnet3.o
  CC      hw/net/smc91c111.o
  CC      hw/net/lan9118.o
  CC      hw/net/ne2000-isa.o
  CC      hw/net/xgmac.o
  CC      hw/net/allwinner_emac.o
  CC      hw/net/imx_fec.o
  CC      hw/net/cadence_gem.o
  CC      hw/net/stellaris_enet.o
  CC      hw/net/ftgmac100.o
  CC      hw/net/rocker/rocker_fp.o
  CC      hw/net/rocker/rocker.o
  CC      hw/net/rocker/rocker_desc.o
  CC      hw/net/rocker/rocker_of_dpa.o
  CC      hw/net/rocker/rocker_world.o
  CC      hw/nvram/eeprom93xx.o
  CC      hw/nvram/fw_cfg.o
  CC      hw/nvram/chrp_nvram.o
  CC      hw/pci-bridge/pci_bridge_dev.o
  CC      hw/pci-bridge/pcie_root_port.o
  CC      hw/pci-bridge/gen_pcie_root_port.o
  CC      hw/pci-bridge/pci_expander_bridge.o
  CC      hw/pci-bridge/xio3130_upstream.o
  CC      hw/pci-bridge/xio3130_downstream.o
  CC      hw/pci-bridge/ioh3420.o
  CC      hw/pci-bridge/i82801b11.o
  CC      hw/pci-host/pam.o
  CC      hw/pci-host/versatile.o
  CC      hw/pci-host/piix.o
  CC      hw/pci-host/q35.o
  CC      hw/pci-host/gpex.o
  CC      hw/pci/pci.o
  CC      hw/pci/pci_bridge.o
  CC      hw/pci/msix.o
  CC      hw/pci/msi.o
  CC      hw/pci/shpc.o
  CC      hw/pci/slotid_cap.o
  CC      hw/pci/pci_host.o
  CC      hw/pci/pcie_host.o
  CC      hw/pci/pcie.o
  CC      hw/pci/pcie_aer.o
  CC      hw/pci/pcie_port.o
  CC      hw/pci/pci-stub.o
  CC      hw/pcmcia/pcmcia.o
  CC      hw/scsi/scsi-disk.o
  CC      hw/scsi/scsi-generic.o
  CC      hw/scsi/lsi53c895a.o
  CC      hw/scsi/scsi-bus.o
  CC      hw/scsi/mptsas.o
  CC      hw/scsi/mptconfig.o
  CC      hw/scsi/mptendian.o
  CC      hw/scsi/megasas.o
  CC      hw/scsi/vmw_pvscsi.o
  CC      hw/scsi/esp.o
  CC      hw/scsi/esp-pci.o
  CC      hw/sd/pl181.o
  CC      hw/sd/ssi-sd.o
  CC      hw/sd/sd.o
  CC      hw/sd/core.o
  CC      hw/sd/sdhci.o
  CC      hw/smbios/smbios.o
  CC      hw/smbios/smbios_type_38.o
  CC      hw/smbios/smbios-stub.o
  CC      hw/smbios/smbios_type_38-stub.o
  CC      hw/ssi/pl022.o
  CC      hw/ssi/ssi.o
  CC      hw/ssi/xilinx_spips.o
  CC      hw/ssi/aspeed_smc.o
  CC      hw/ssi/stm32f2xx_spi.o
  CC      hw/timer/arm_timer.o
  CC      hw/timer/arm_mptimer.o
  CC      hw/timer/armv7m_systick.o
  CC      hw/timer/a9gtimer.o
  CC      hw/timer/cadence_ttc.o
  CC      hw/timer/ds1338.o
  CC      hw/timer/hpet.o
  CC      hw/timer/i8254_common.o
  CC      hw/timer/i8254.o
  CC      hw/timer/pl031.o
  CC      hw/timer/twl92230.o
  CC      hw/timer/imx_gpt.o
  CC      hw/timer/imx_epit.o
  CC      hw/timer/stm32f2xx_timer.o
  CC      hw/timer/aspeed_timer.o
  CC      hw/tpm/tpm_tis.o
  CC      hw/tpm/tpm_passthrough.o
  CC      hw/tpm/tpm_util.o
  CC      hw/usb/core.o
  CC      hw/usb/combined-packet.o
  CC      hw/usb/bus.o
  CC      hw/usb/libhw.o
  CC      hw/usb/desc.o
  CC      hw/usb/desc-msos.o
  CC      hw/usb/hcd-uhci.o
  CC      hw/usb/hcd-ohci.o
  CC      hw/usb/hcd-ehci.o
  CC      hw/usb/hcd-ehci-pci.o
  CC      hw/usb/hcd-ehci-sysbus.o
  CC      hw/usb/hcd-xhci.o
  CC      hw/usb/hcd-musb.o
  CC      hw/usb/dev-hub.o
  CC      hw/usb/dev-hid.o
  CC      hw/usb/dev-wacom.o
  CC      hw/usb/dev-storage.o
  CC      hw/usb/dev-uas.o
  CC      hw/usb/dev-serial.o
  CC      hw/usb/dev-audio.o
  CC      hw/usb/dev-network.o
  CC      hw/usb/dev-bluetooth.o
  CC      hw/usb/dev-smartcard-reader.o
  CC      hw/usb/dev-mtp.o
  CC      hw/usb/host-stub.o
  CC      hw/virtio/virtio-rng.o
  CC      hw/virtio/virtio-pci.o
  CC      hw/virtio/virtio-bus.o
  CC      hw/virtio/virtio-mmio.o
  CC      hw/virtio/vhost-stub.o
  CC      hw/watchdog/watchdog.o
  CC      hw/watchdog/wdt_i6300esb.o
  CC      hw/watchdog/wdt_ib700.o
  CC      hw/watchdog/wdt_aspeed.o
  CC      migration/migration.o
  CC      migration/socket.o
  CC      migration/fd.o
  CC      migration/exec.o
  CC      migration/tls.o
  CC      migration/colo-comm.o
  CC      migration/colo.o
  CC      migration/colo-failover.o
  CC      migration/vmstate.o
  CC      migration/qemu-file.o
  CC      migration/qemu-file-channel.o
  CC      migration/xbzrle.o
  CC      migration/postcopy-ram.o
  CC      migration/qjson.o
  CC      migration/block.o
  CC      net/net.o
  CC      net/queue.o
  CC      net/checksum.o
  CC      net/util.o
  CC      net/hub.o
  CC      net/socket.o
  CC      net/dump.o
  CC      net/eth.o
  CC      net/tap.o
  CC      net/vhost-user.o
  CC      net/l2tpv3.o
  CC      net/tap-linux.o
  CC      net/slirp.o
  CC      net/filter.o
  CC      net/filter-buffer.o
  CC      net/filter-mirror.o
  CC      net/colo-compare.o
  CC      net/colo.o
  CC      net/filter-rewriter.o
  CC      net/filter-replay.o
  CC      qom/cpu.o
  CC      replay/replay.o
  CC      replay/replay-internal.o
  CC      replay/replay-events.o
  CC      replay/replay-time.o
/tmp/qemu-test/src/replay/replay-internal.c: In function ‘replay_put_array’:
/tmp/qemu-test/src/replay/replay-internal.c:65: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
  CC      replay/replay-input.o
  CC      replay/replay-char.o
  CC      replay/replay-snapshot.o
  CC      replay/replay-net.o
  CC      replay/replay-audio.o
  CC      slirp/cksum.o
  CC      slirp/if.o
  CC      slirp/ip_icmp.o
  CC      slirp/ip6_icmp.o
  CC      slirp/ip6_input.o
  CC      slirp/ip6_output.o
  CC      slirp/ip_input.o
  CC      slirp/ip_output.o
  CC      slirp/dnssearch.o
  CC      slirp/dhcpv6.o
  CC      slirp/slirp.o
  CC      slirp/mbuf.o
  CC      slirp/misc.o
  CC      slirp/sbuf.o
  CC      slirp/socket.o
  CC      slirp/tcp_input.o
  CC      slirp/tcp_output.o
/tmp/qemu-test/src/slirp/tcp_input.c: In function ‘tcp_input’:
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_p’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_len’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_tos’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_id’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_off’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_ttl’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_sum’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_src.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_dst.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:220: warning: ‘save_ip6.ip_nh’ may be used uninitialized in this function
  CC      slirp/tcp_subr.o
  CC      slirp/tcp_timer.o
  CC      slirp/udp.o
  CC      slirp/udp6.o
  CC      slirp/bootp.o
  CC      slirp/tftp.o
  CC      slirp/arp_table.o
  CC      slirp/ndp_table.o
  CC      slirp/ncsi.o
  CC      ui/keymaps.o
  CC      ui/console.o
  CC      ui/cursor.o
  CC      ui/qemu-pixman.o
  CC      ui/input.o
  CC      ui/input-keymap.o
  CC      ui/input-legacy.o
  CC      ui/input-linux.o
  CC      ui/sdl.o
  CC      ui/sdl_zoom.o
  CC      ui/x_keymap.o
  CC      ui/vnc.o
  CC      ui/vnc-enc-zlib.o
  CC      ui/vnc-enc-hextile.o
  CC      ui/vnc-palette.o
  CC      ui/vnc-enc-tight.o
  CC      ui/vnc-enc-zrle.o
  CC      ui/vnc-auth-vencrypt.o
  CC      ui/vnc-ws.o
  CC      ui/vnc-jobs.o
  CC      chardev/char.o
  CC      chardev/char-fd.o
  CC      chardev/char-fe.o
  CC      chardev/char-file.o
  CC      chardev/char-io.o
  CC      chardev/char-mux.o
  CC      chardev/char-null.o
  CC      chardev/char-parallel.o
  CC      chardev/char-pty.o
  CC      chardev/char-pipe.o
  CC      chardev/char-ringbuf.o
  CC      chardev/char-serial.o
  CC      chardev/char-socket.o
  CC      chardev/char-stdio.o
  CC      chardev/char-udp.o
  LINK    tests/qemu-iotests/socket_scm_helper
  CC      qga/commands.o
  AS      optionrom/multiboot.o
  AS      optionrom/linuxboot.o
  CC      optionrom/linuxboot_dma.o
cc: unrecognized option '-no-integrated-as'
cc: unrecognized option '-no-integrated-as'
  CC      qga/guest-agent-command-state.o
  AS      optionrom/kvmvapic.o
  BUILD   optionrom/multiboot.img
  BUILD   optionrom/linuxboot.img
  CC      qga/main.o
  BUILD   optionrom/linuxboot_dma.img
  BUILD   optionrom/kvmvapic.img
  BUILD   optionrom/multiboot.raw
  BUILD   optionrom/linuxboot.raw
  CC      qga/commands-posix.o
  CC      qga/channel-posix.o
  CC      qga/qapi-generated/qga-qapi-types.o
  BUILD   optionrom/linuxboot_dma.raw
  CC      qga/qapi-generated/qga-qapi-visit.o
  CC      qga/qapi-generated/qga-qmp-marshal.o
  BUILD   optionrom/kvmvapic.raw
  AR      libqemuutil.a
  AR      libqemustub.a
  CC      qemu-img.o
  SIGN    optionrom/linuxboot_dma.bin
  SIGN    optionrom/kvmvapic.bin
  SIGN    optionrom/multiboot.bin
  SIGN    optionrom/linuxboot.bin
  LINK    ivshmem-client
  LINK    ivshmem-server
  LINK    qemu-nbd
  LINK    qemu-img
  LINK    qemu-io
  LINK    qemu-bridge-helper
  LINK    qemu-ga
  GEN     x86_64-softmmu/hmp-commands.h
  GEN     x86_64-softmmu/hmp-commands-info.h
  GEN     x86_64-softmmu/config-target.h
  CC      x86_64-softmmu/translate-all.o
  CC      x86_64-softmmu/translate-common.o
  CC      x86_64-softmmu/cpu-exec.o
  CC      x86_64-softmmu/cpu-exec-common.o
  CC      x86_64-softmmu/exec.o
  CC      x86_64-softmmu/tcg/tcg.o
  CC      x86_64-softmmu/tcg/tcg-op.o
  CC      x86_64-softmmu/tcg/tcg-common.o
  CC      x86_64-softmmu/disas.o
  CC      x86_64-softmmu/tcg/optimize.o
  GEN     aarch64-softmmu/hmp-commands.h
  CC      x86_64-softmmu/fpu/softfloat.o
  CC      x86_64-softmmu/tcg-runtime.o
  GEN     aarch64-softmmu/hmp-commands-info.h
  CC      x86_64-softmmu/hax-stub.o
  CC      x86_64-softmmu/arch_init.o
  GEN     aarch64-softmmu/config-target.h
  CC      x86_64-softmmu/cpus.o
  CC      x86_64-softmmu/monitor.o
  CC      x86_64-softmmu/gdbstub.o
  CC      aarch64-softmmu/exec.o
  CC      x86_64-softmmu/balloon.o
  CC      aarch64-softmmu/translate-all.o
  CC      x86_64-softmmu/ioport.o
  CC      aarch64-softmmu/cpu-exec.o
  CC      x86_64-softmmu/numa.o
  CC      x86_64-softmmu/qtest.o
  CC      aarch64-softmmu/translate-common.o
  CC      x86_64-softmmu/bootdevice.o
  CC      aarch64-softmmu/cpu-exec-common.o
  CC      x86_64-softmmu/kvm-all.o
  CC      x86_64-softmmu/memory.o
  CC      aarch64-softmmu/tcg/tcg.o
  CC      x86_64-softmmu/cputlb.o
  CC      aarch64-softmmu/tcg/tcg-op.o
  CC      x86_64-softmmu/memory_mapping.o
  CC      x86_64-softmmu/dump.o
  CC      x86_64-softmmu/migration/ram.o
  CC      x86_64-softmmu/migration/savevm.o
  CC      x86_64-softmmu/hw/block/virtio-blk.o
  CC      x86_64-softmmu/hw/block/dataplane/virtio-blk.o
  CC      x86_64-softmmu/hw/char/virtio-serial-bus.o
  CC      x86_64-softmmu/hw/core/nmi.o
  CC      x86_64-softmmu/hw/core/generic-loader.o
  CC      x86_64-softmmu/hw/core/null-machine.o
  CC      aarch64-softmmu/tcg/optimize.o
  CC      x86_64-softmmu/hw/cpu/core.o
  CC      x86_64-softmmu/hw/display/vga.o
  CC      x86_64-softmmu/hw/display/virtio-gpu.o
  CC      x86_64-softmmu/hw/display/virtio-gpu-3d.o
  CC      aarch64-softmmu/tcg/tcg-common.o
  CC      aarch64-softmmu/disas.o
  CC      x86_64-softmmu/hw/display/virtio-gpu-pci.o
  CC      aarch64-softmmu/fpu/softfloat.o
  CC      aarch64-softmmu/tcg-runtime.o
  GEN     aarch64-softmmu/gdbstub-xml.c
  CC      aarch64-softmmu/hax-stub.o
  CC      x86_64-softmmu/hw/display/virtio-vga.o
  CC      aarch64-softmmu/kvm-stub.o
  CC      aarch64-softmmu/arch_init.o
  CC      aarch64-softmmu/cpus.o
  CC      aarch64-softmmu/monitor.o
  CC      aarch64-softmmu/gdbstub.o
  CC      aarch64-softmmu/balloon.o
  CC      aarch64-softmmu/ioport.o
  CC      aarch64-softmmu/numa.o
  CC      aarch64-softmmu/qtest.o
  CC      aarch64-softmmu/bootdevice.o
  CC      aarch64-softmmu/memory.o
  CC      aarch64-softmmu/cputlb.o
  CC      aarch64-softmmu/memory_mapping.o
  CC      aarch64-softmmu/dump.o
  CC      aarch64-softmmu/migration/ram.o
  CC      x86_64-softmmu/hw/intc/apic.o
  CC      aarch64-softmmu/migration/savevm.o
  CC      x86_64-softmmu/hw/intc/apic_common.o
  CC      x86_64-softmmu/hw/intc/ioapic.o
  CC      x86_64-softmmu/hw/isa/lpc_ich9.o
  CC      x86_64-softmmu/hw/misc/vmport.o
  CC      x86_64-softmmu/hw/misc/ivshmem.o
  CC      x86_64-softmmu/hw/misc/pvpanic.o
  CC      aarch64-softmmu/hw/adc/stm32f2xx_adc.o
  CC      x86_64-softmmu/hw/misc/edu.o
  CC      x86_64-softmmu/hw/misc/hyperv_testdev.o
  CC      x86_64-softmmu/hw/net/virtio-net.o
  CC      x86_64-softmmu/hw/net/vhost_net.o
  CC      x86_64-softmmu/hw/scsi/virtio-scsi.o
  CC      x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      x86_64-softmmu/hw/scsi/vhost-scsi.o
  CC      aarch64-softmmu/hw/block/virtio-blk.o
  CC      x86_64-softmmu/hw/timer/mc146818rtc.o
  CC      x86_64-softmmu/hw/vfio/common.o
  CC      x86_64-softmmu/hw/vfio/pci.o
  CC      x86_64-softmmu/hw/vfio/pci-quirks.o
  CC      x86_64-softmmu/hw/vfio/platform.o
  CC      x86_64-softmmu/hw/vfio/spapr.o
  CC      x86_64-softmmu/hw/virtio/virtio.o
  CC      x86_64-softmmu/hw/virtio/virtio-balloon.o
  CC      aarch64-softmmu/hw/block/dataplane/virtio-blk.o
  CC      x86_64-softmmu/hw/virtio/vhost.o
  CC      x86_64-softmmu/hw/virtio/vhost-backend.o
  CC      aarch64-softmmu/hw/char/exynos4210_uart.o
  CC      aarch64-softmmu/hw/char/omap_uart.o
  CC      aarch64-softmmu/hw/char/digic-uart.o
  CC      aarch64-softmmu/hw/char/stm32f2xx_usart.o
  CC      aarch64-softmmu/hw/char/bcm2835_aux.o
  CC      aarch64-softmmu/hw/char/virtio-serial-bus.o
  CC      aarch64-softmmu/hw/core/nmi.o
  CC      aarch64-softmmu/hw/core/generic-loader.o
  CC      aarch64-softmmu/hw/core/null-machine.o
  CC      x86_64-softmmu/hw/virtio/vhost-user.o
  CC      aarch64-softmmu/hw/cpu/arm11mpcore.o
  CC      x86_64-softmmu/hw/virtio/vhost-vsock.o
  CC      x86_64-softmmu/hw/virtio/virtio-crypto.o
  CC      x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      x86_64-softmmu/hw/i386/multiboot.o
  CC      aarch64-softmmu/hw/cpu/realview_mpcore.o
  CC      aarch64-softmmu/hw/cpu/a9mpcore.o
  CC      x86_64-softmmu/hw/i386/pc.o
  CC      x86_64-softmmu/hw/i386/pc_piix.o
  CC      aarch64-softmmu/hw/cpu/a15mpcore.o
  CC      x86_64-softmmu/hw/i386/pc_q35.o
  CC      aarch64-softmmu/hw/cpu/core.o
  CC      x86_64-softmmu/hw/i386/pc_sysfw.o
  CC      x86_64-softmmu/hw/i386/x86-iommu.o
  CC      aarch64-softmmu/hw/display/omap_dss.o
  CC      x86_64-softmmu/hw/i386/intel_iommu.o
/tmp/qemu-test/src/hw/i386/pc_piix.c: In function ‘igd_passthrough_isa_bridge_create’:
/tmp/qemu-test/src/hw/i386/pc_piix.c:1055: warning: ‘pch_rev_id’ may be used uninitialized in this function
  CC      x86_64-softmmu/hw/i386/amd_iommu.o
  CC      aarch64-softmmu/hw/display/omap_lcdc.o
  CC      x86_64-softmmu/hw/i386/kvmvapic.o
  CC      aarch64-softmmu/hw/display/pxa2xx_lcd.o
  CC      x86_64-softmmu/hw/i386/acpi-build.o
  CC      x86_64-softmmu/hw/i386/pci-assign-load-rom.o
  CC      aarch64-softmmu/hw/display/bcm2835_fb.o
  CC      aarch64-softmmu/hw/display/vga.o
/tmp/qemu-test/src/hw/i386/acpi-build.c: In function ‘build_append_pci_bus_devices’:
/tmp/qemu-test/src/hw/i386/acpi-build.c:496: warning: ‘notify_method’ may be used uninitialized in this function
  CC      x86_64-softmmu/hw/i386/kvm/clock.o
  CC      aarch64-softmmu/hw/display/virtio-gpu.o
  CC      x86_64-softmmu/hw/i386/kvm/apic.o
  CC      x86_64-softmmu/hw/i386/kvm/i8259.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-3d.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-pci.o
  CC      x86_64-softmmu/hw/i386/kvm/ioapic.o
  CC      aarch64-softmmu/hw/display/dpcd.o
  CC      aarch64-softmmu/hw/display/xlnx_dp.o
  CC      x86_64-softmmu/hw/i386/kvm/i8254.o
  CC      aarch64-softmmu/hw/dma/xlnx_dpdma.o
  CC      aarch64-softmmu/hw/dma/omap_dma.o
  CC      x86_64-softmmu/hw/i386/kvm/pci-assign.o
  CC      x86_64-softmmu/target/i386/translate.o
  CC      x86_64-softmmu/target/i386/helper.o
  CC      aarch64-softmmu/hw/dma/soc_dma.o
  CC      aarch64-softmmu/hw/dma/pxa2xx_dma.o
  CC      aarch64-softmmu/hw/dma/bcm2835_dma.o
  CC      aarch64-softmmu/hw/gpio/omap_gpio.o
  CC      aarch64-softmmu/hw/gpio/imx_gpio.o
  CC      aarch64-softmmu/hw/i2c/omap_i2c.o
  CC      aarch64-softmmu/hw/gpio/bcm2835_gpio.o
  CC      x86_64-softmmu/target/i386/cpu.o
  CC      aarch64-softmmu/hw/input/pxa2xx_keypad.o
  CC      aarch64-softmmu/hw/input/tsc210x.o
  CC      aarch64-softmmu/hw/intc/armv7m_nvic.o
  CC      aarch64-softmmu/hw/intc/exynos4210_gic.o
  CC      x86_64-softmmu/target/i386/bpt_helper.o
  CC      x86_64-softmmu/target/i386/excp_helper.o
  CC      x86_64-softmmu/target/i386/fpu_helper.o
  CC      x86_64-softmmu/target/i386/cc_helper.o
  CC      x86_64-softmmu/target/i386/int_helper.o
  CC      aarch64-softmmu/hw/intc/exynos4210_combiner.o
  CC      aarch64-softmmu/hw/intc/omap_intc.o
  CC      x86_64-softmmu/target/i386/svm_helper.o
  CC      aarch64-softmmu/hw/intc/bcm2835_ic.o
  CC      aarch64-softmmu/hw/intc/bcm2836_control.o
  CC      aarch64-softmmu/hw/intc/allwinner-a10-pic.o
  CC      x86_64-softmmu/target/i386/smm_helper.o
  CC      x86_64-softmmu/target/i386/misc_helper.o
  CC      x86_64-softmmu/target/i386/mem_helper.o
  CC      x86_64-softmmu/target/i386/seg_helper.o
  CC      x86_64-softmmu/target/i386/mpx_helper.o
  CC      aarch64-softmmu/hw/intc/aspeed_vic.o
  CC      x86_64-softmmu/target/i386/gdbstub.o
  CC      aarch64-softmmu/hw/misc/ivshmem.o
  CC      aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
  CC      x86_64-softmmu/target/i386/machine.o
  CC      aarch64-softmmu/hw/misc/arm_sysctl.o
  CC      aarch64-softmmu/hw/misc/cbus.o
  CC      aarch64-softmmu/hw/misc/exynos4210_pmu.o
  CC      aarch64-softmmu/hw/misc/exynos4210_clk.o
  CC      aarch64-softmmu/hw/misc/imx_ccm.o
  CC      x86_64-softmmu/target/i386/arch_memory_mapping.o
  CC      aarch64-softmmu/hw/misc/imx31_ccm.o
  CC      x86_64-softmmu/target/i386/arch_dump.o
  CC      x86_64-softmmu/target/i386/monitor.o
  CC      aarch64-softmmu/hw/misc/imx25_ccm.o
  CC      x86_64-softmmu/target/i386/kvm.o
  CC      x86_64-softmmu/target/i386/hyperv.o
  GEN     trace/generated-helpers.c
  CC      aarch64-softmmu/hw/misc/imx6_ccm.o
  CC      aarch64-softmmu/hw/misc/mst_fpga.o
  CC      aarch64-softmmu/hw/misc/imx6_src.o
  CC      x86_64-softmmu/trace/control-target.o
  CC      aarch64-softmmu/hw/misc/omap_clk.o
  CC      aarch64-softmmu/hw/misc/omap_gpmc.o
  CC      aarch64-softmmu/hw/misc/omap_l4.o
  CC      aarch64-softmmu/hw/misc/omap_sdrc.o
  CC      aarch64-softmmu/hw/misc/bcm2835_mbox.o
  CC      aarch64-softmmu/hw/misc/omap_tap.o
  CC      x86_64-softmmu/trace/generated-helpers.o
  CC      aarch64-softmmu/hw/misc/bcm2835_property.o
  CC      aarch64-softmmu/hw/misc/bcm2835_rng.o
  CC      aarch64-softmmu/hw/misc/zynq_slcr.o
  CC      aarch64-softmmu/hw/misc/zynq-xadc.o
  CC      aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
  CC      aarch64-softmmu/hw/misc/edu.o
  CC      aarch64-softmmu/hw/misc/auxbus.o
  CC      aarch64-softmmu/hw/misc/aspeed_scu.o
  CC      aarch64-softmmu/hw/misc/aspeed_sdmc.o
  CC      aarch64-softmmu/hw/net/virtio-net.o
  CC      aarch64-softmmu/hw/net/vhost_net.o
  LINK    x86_64-softmmu/qemu-system-x86_64
  CC      aarch64-softmmu/hw/pcmcia/pxa2xx.o
  CC      aarch64-softmmu/hw/scsi/virtio-scsi.o
  CC      aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      aarch64-softmmu/hw/scsi/vhost-scsi.o
  CC      aarch64-softmmu/hw/sd/omap_mmc.o
  CC      aarch64-softmmu/hw/sd/pxa2xx_mmci.o
  CC      aarch64-softmmu/hw/ssi/imx_spi.o
  CC      aarch64-softmmu/hw/sd/bcm2835_sdhost.o
  CC      aarch64-softmmu/hw/ssi/omap_spi.o
  CC      aarch64-softmmu/hw/timer/exynos4210_mct.o
  CC      aarch64-softmmu/hw/timer/exynos4210_pwm.o
  CC      aarch64-softmmu/hw/timer/exynos4210_rtc.o
  CC      aarch64-softmmu/hw/timer/omap_gptimer.o
  CC      aarch64-softmmu/hw/timer/omap_synctimer.o
  CC      aarch64-softmmu/hw/timer/pxa2xx_timer.o
  CC      aarch64-softmmu/hw/timer/digic-timer.o
  CC      aarch64-softmmu/hw/timer/allwinner-a10-pit.o
  CC      aarch64-softmmu/hw/usb/tusb6010.o
  CC      aarch64-softmmu/hw/vfio/common.o
  CC      aarch64-softmmu/hw/vfio/pci.o
  CC      aarch64-softmmu/hw/vfio/platform.o
  CC      aarch64-softmmu/hw/vfio/pci-quirks.o
  CC      aarch64-softmmu/hw/vfio/calxeda-xgmac.o
  CC      aarch64-softmmu/hw/vfio/amd-xgbe.o
  CC      aarch64-softmmu/hw/vfio/spapr.o
  CC      aarch64-softmmu/hw/virtio/vhost.o
  CC      aarch64-softmmu/hw/virtio/virtio-balloon.o
  CC      aarch64-softmmu/hw/virtio/virtio.o
  CC      aarch64-softmmu/hw/virtio/vhost-backend.o
  CC      aarch64-softmmu/hw/virtio/vhost-user.o
  CC      aarch64-softmmu/hw/virtio/vhost-vsock.o
  CC      aarch64-softmmu/hw/virtio/virtio-crypto.o
  CC      aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      aarch64-softmmu/hw/arm/boot.o
  CC      aarch64-softmmu/hw/arm/collie.o
  CC      aarch64-softmmu/hw/arm/exynos4_boards.o
  CC      aarch64-softmmu/hw/arm/gumstix.o
  CC      aarch64-softmmu/hw/arm/highbank.o
  CC      aarch64-softmmu/hw/arm/digic_boards.o
  CC      aarch64-softmmu/hw/arm/integratorcp.o
  CC      aarch64-softmmu/hw/arm/mainstone.o
  CC      aarch64-softmmu/hw/arm/musicpal.o
  CC      aarch64-softmmu/hw/arm/nseries.o
  CC      aarch64-softmmu/hw/arm/omap_sx1.o
  CC      aarch64-softmmu/hw/arm/palm.o
  CC      aarch64-softmmu/hw/arm/realview.o
  CC      aarch64-softmmu/hw/arm/spitz.o
  CC      aarch64-softmmu/hw/arm/stellaris.o
  CC      aarch64-softmmu/hw/arm/tosa.o
  CC      aarch64-softmmu/hw/arm/versatilepb.o
  CC      aarch64-softmmu/hw/arm/vexpress.o
  CC      aarch64-softmmu/hw/arm/virt.o
  CC      aarch64-softmmu/hw/arm/xilinx_zynq.o
  CC      aarch64-softmmu/hw/arm/virt-acpi-build.o
  CC      aarch64-softmmu/hw/arm/z2.o
  CC      aarch64-softmmu/hw/arm/netduino2.o
  CC      aarch64-softmmu/hw/arm/sysbus-fdt.o
  CC      aarch64-softmmu/hw/arm/armv7m.o
  CC      aarch64-softmmu/hw/arm/exynos4210.o
  CC      aarch64-softmmu/hw/arm/pxa2xx.o
  CC      aarch64-softmmu/hw/arm/pxa2xx_gpio.o
  CC      aarch64-softmmu/hw/arm/pxa2xx_pic.o
  CC      aarch64-softmmu/hw/arm/digic.o
  CC      aarch64-softmmu/hw/arm/omap1.o
  CC      aarch64-softmmu/hw/arm/omap2.o
  CC      aarch64-softmmu/hw/arm/strongarm.o
  CC      aarch64-softmmu/hw/arm/allwinner-a10.o
  CC      aarch64-softmmu/hw/arm/cubieboard.o
  CC      aarch64-softmmu/hw/arm/bcm2835_peripherals.o
  CC      aarch64-softmmu/hw/arm/bcm2836.o
  CC      aarch64-softmmu/hw/arm/raspi.o
  CC      aarch64-softmmu/hw/arm/stm32f205_soc.o
  CC      aarch64-softmmu/hw/arm/xlnx-zynqmp.o
  CC      aarch64-softmmu/hw/arm/xlnx-ep108.o
  CC      aarch64-softmmu/hw/arm/fsl-imx25.o
  CC      aarch64-softmmu/hw/arm/imx25_pdk.o
  CC      aarch64-softmmu/hw/arm/fsl-imx31.o
  CC      aarch64-softmmu/hw/arm/kzm.o
  CC      aarch64-softmmu/hw/arm/fsl-imx6.o
  CC      aarch64-softmmu/hw/arm/sabrelite.o
  CC      aarch64-softmmu/hw/arm/aspeed_soc.o
  CC      aarch64-softmmu/hw/arm/aspeed.o
  CC      aarch64-softmmu/target/arm/arm-semi.o
  CC      aarch64-softmmu/target/arm/machine.o
  CC      aarch64-softmmu/target/arm/psci.o
  CC      aarch64-softmmu/target/arm/arch_dump.o
  CC      aarch64-softmmu/target/arm/monitor.o
  CC      aarch64-softmmu/target/arm/kvm-stub.o
  CC      aarch64-softmmu/target/arm/translate.o
  CC      aarch64-softmmu/target/arm/op_helper.o
  CC      aarch64-softmmu/target/arm/helper.o
  CC      aarch64-softmmu/target/arm/cpu.o
  CC      aarch64-softmmu/target/arm/neon_helper.o
  CC      aarch64-softmmu/target/arm/gdbstub.o
  CC      aarch64-softmmu/target/arm/iwmmxt_helper.o
  CC      aarch64-softmmu/target/arm/cpu64.o
  CC      aarch64-softmmu/target/arm/translate-a64.o
  CC      aarch64-softmmu/target/arm/helper-a64.o
  CC      aarch64-softmmu/target/arm/gdbstub64.o
  CC      aarch64-softmmu/target/arm/crypto_helper.o
  CC      aarch64-softmmu/target/arm/arm-powerctl.o
  GEN     trace/generated-helpers.c
  CC      aarch64-softmmu/trace/control-target.o
  CC      aarch64-softmmu/gdbstub-xml.o
  CC      aarch64-softmmu/trace/generated-helpers.o
/tmp/qemu-test/src/target/arm/translate-a64.c: In function ‘handle_shri_with_rndacc’:
/tmp/qemu-test/src/target/arm/translate-a64.c:6359: warning: ‘tcg_src_hi’ may be used uninitialized in this function
/tmp/qemu-test/src/target/arm/translate-a64.c: In function ‘disas_simd_scalar_two_reg_misc’:
/tmp/qemu-test/src/target/arm/translate-a64.c:8086: warning: ‘rmode’ may be used uninitialized in this function
  LINK    aarch64-softmmu/qemu-system-aarch64
	 LEX convert-dtsv0-lexer.lex.c
make[1]: flex: Command not found
	 BISON dtc-parser.tab.c
	 LEX dtc-lexer.lex.c
make[1]: bison: Command not found
make[1]: flex: Command not found
  TEST    tests/qapi-schema/alternate-any.out
  TEST    tests/qapi-schema/alternate-array.out
  TEST    tests/qapi-schema/alternate-clash.out
  TEST    tests/qapi-schema/alternate-conflict-dict.out
  TEST    tests/qapi-schema/alternate-base.out
  TEST    tests/qapi-schema/alternate-conflict-string.out
  TEST    tests/qapi-schema/alternate-empty.out
  TEST    tests/qapi-schema/alternate-nested.out
  TEST    tests/qapi-schema/alternate-unknown.out
  TEST    tests/qapi-schema/args-alternate.out
  TEST    tests/qapi-schema/args-any.out
  TEST    tests/qapi-schema/args-array-unknown.out
  TEST    tests/qapi-schema/args-bad-boxed.out
  TEST    tests/qapi-schema/args-array-empty.out
  TEST    tests/qapi-schema/args-boxed-anon.out
  TEST    tests/qapi-schema/args-boxed-empty.out
  TEST    tests/qapi-schema/args-boxed-string.out
  TEST    tests/qapi-schema/args-int.out
  TEST    tests/qapi-schema/args-invalid.out
  TEST    tests/qapi-schema/args-member-array-bad.out
  TEST    tests/qapi-schema/args-member-case.out
  TEST    tests/qapi-schema/args-member-unknown.out
  TEST    tests/qapi-schema/args-name-clash.out
  TEST    tests/qapi-schema/args-union.out
  TEST    tests/qapi-schema/args-unknown.out
  TEST    tests/qapi-schema/bad-base.out
  TEST    tests/qapi-schema/bad-data.out
  TEST    tests/qapi-schema/bad-ident.out
  TEST    tests/qapi-schema/bad-type-bool.out
  TEST    tests/qapi-schema/bad-type-dict.out
  TEST    tests/qapi-schema/bad-type-int.out
  TEST    tests/qapi-schema/base-cycle-direct.out
  TEST    tests/qapi-schema/base-cycle-indirect.out
  TEST    tests/qapi-schema/command-int.out
  TEST    tests/qapi-schema/comments.out
  TEST    tests/qapi-schema/doc-bad-alternate-member.out
  TEST    tests/qapi-schema/doc-bad-command-arg.out
  TEST    tests/qapi-schema/doc-bad-symbol.out
  TEST    tests/qapi-schema/doc-bad-union-member.out
  TEST    tests/qapi-schema/doc-before-include.out
  TEST    tests/qapi-schema/doc-before-pragma.out
  TEST    tests/qapi-schema/doc-duplicated-arg.out
  TEST    tests/qapi-schema/doc-duplicated-return.out
  TEST    tests/qapi-schema/doc-duplicated-since.out
  TEST    tests/qapi-schema/doc-empty-arg.out
  TEST    tests/qapi-schema/doc-empty-section.out
  TEST    tests/qapi-schema/doc-empty-symbol.out
  TEST    tests/qapi-schema/doc-good.out
  TEST    tests/qapi-schema/doc-interleaved-section.out
  TEST    tests/qapi-schema/doc-invalid-end.out
  TEST    tests/qapi-schema/doc-invalid-end2.out
  TEST    tests/qapi-schema/doc-invalid-return.out
  TEST    tests/qapi-schema/doc-invalid-section.out
  TEST    tests/qapi-schema/doc-invalid-start.out
  TEST    tests/qapi-schema/doc-missing.out
  TEST    tests/qapi-schema/doc-missing-colon.out
  TEST    tests/qapi-schema/doc-missing-expr.out
  TEST    tests/qapi-schema/doc-missing-space.out
  TEST    tests/qapi-schema/double-data.out
  TEST    tests/qapi-schema/doc-no-symbol.out
  TEST    tests/qapi-schema/double-type.out
  TEST    tests/qapi-schema/duplicate-key.out
  TEST    tests/qapi-schema/empty.out
  TEST    tests/qapi-schema/enum-bad-name.out
  TEST    tests/qapi-schema/enum-bad-prefix.out
  TEST    tests/qapi-schema/enum-clash-member.out
  TEST    tests/qapi-schema/enum-dict-member.out
  TEST    tests/qapi-schema/enum-int-member.out
  TEST    tests/qapi-schema/enum-member-case.out
  TEST    tests/qapi-schema/enum-missing-data.out
  TEST    tests/qapi-schema/enum-wrong-data.out
  TEST    tests/qapi-schema/escape-outside-string.out
  TEST    tests/qapi-schema/escape-too-big.out
  TEST    tests/qapi-schema/escape-too-short.out
  TEST    tests/qapi-schema/event-boxed-empty.out
  TEST    tests/qapi-schema/event-case.out
  TEST    tests/qapi-schema/event-nest-struct.out
  TEST    tests/qapi-schema/flat-union-array-branch.out
  TEST    tests/qapi-schema/flat-union-bad-base.out
  TEST    tests/qapi-schema/flat-union-bad-discriminator.out
  TEST    tests/qapi-schema/flat-union-base-any.out
  TEST    tests/qapi-schema/flat-union-base-union.out
  TEST    tests/qapi-schema/flat-union-clash-member.out
  TEST    tests/qapi-schema/flat-union-empty.out
  TEST    tests/qapi-schema/flat-union-incomplete-branch.out
  TEST    tests/qapi-schema/flat-union-inline.out
  TEST    tests/qapi-schema/flat-union-int-branch.out
  TEST    tests/qapi-schema/flat-union-invalid-branch-key.out
  TEST    tests/qapi-schema/flat-union-invalid-discriminator.out
  TEST    tests/qapi-schema/flat-union-no-base.out
  TEST    tests/qapi-schema/flat-union-optional-discriminator.out
  TEST    tests/qapi-schema/flat-union-string-discriminator.out
  TEST    tests/qapi-schema/funny-char.out
  TEST    tests/qapi-schema/ident-with-escape.out
  TEST    tests/qapi-schema/include-before-err.out
  TEST    tests/qapi-schema/include-cycle.out
  TEST    tests/qapi-schema/include-extra-junk.out
  TEST    tests/qapi-schema/include-nested-err.out
  TEST    tests/qapi-schema/include-format-err.out
  TEST    tests/qapi-schema/include-no-file.out
  TEST    tests/qapi-schema/include-non-file.out
  TEST    tests/qapi-schema/include-relpath.out
  TEST    tests/qapi-schema/include-repetition.out
  TEST    tests/qapi-schema/include-self-cycle.out
  TEST    tests/qapi-schema/include-simple.out
  TEST    tests/qapi-schema/indented-expr.out
  TEST    tests/qapi-schema/leading-comma-list.out
  TEST    tests/qapi-schema/missing-colon.out
  TEST    tests/qapi-schema/leading-comma-object.out
  TEST    tests/qapi-schema/missing-comma-list.out
  TEST    tests/qapi-schema/missing-comma-object.out
  TEST    tests/qapi-schema/missing-type.out
  TEST    tests/qapi-schema/nested-struct-data.out
  TEST    tests/qapi-schema/non-objects.out
  TEST    tests/qapi-schema/pragma-doc-required-crap.out
  TEST    tests/qapi-schema/pragma-extra-junk.out
  TEST    tests/qapi-schema/pragma-non-dict.out
  TEST    tests/qapi-schema/qapi-schema-test.out
  TEST    tests/qapi-schema/pragma-name-case-whitelist-crap.out
  TEST    tests/qapi-schema/pragma-returns-whitelist-crap.out
  TEST    tests/qapi-schema/quoted-structural-chars.out
  TEST    tests/qapi-schema/redefined-builtin.out
  TEST    tests/qapi-schema/redefined-command.out
  TEST    tests/qapi-schema/redefined-event.out
  TEST    tests/qapi-schema/redefined-type.out
  TEST    tests/qapi-schema/reserved-command-q.out
  TEST    tests/qapi-schema/reserved-enum-q.out
  TEST    tests/qapi-schema/reserved-member-has.out
  TEST    tests/qapi-schema/reserved-member-q.out
  TEST    tests/qapi-schema/reserved-member-u.out
  TEST    tests/qapi-schema/reserved-member-underscore.out
  TEST    tests/qapi-schema/reserved-type-kind.out
  TEST    tests/qapi-schema/reserved-type-list.out
  TEST    tests/qapi-schema/returns-alternate.out
  TEST    tests/qapi-schema/returns-array-bad.out
  TEST    tests/qapi-schema/returns-dict.out
  TEST    tests/qapi-schema/returns-unknown.out
  TEST    tests/qapi-schema/returns-whitelist.out
  TEST    tests/qapi-schema/struct-base-clash-deep.out
  TEST    tests/qapi-schema/struct-base-clash.out
  TEST    tests/qapi-schema/struct-data-invalid.out
  TEST    tests/qapi-schema/struct-member-invalid.out
  TEST    tests/qapi-schema/trailing-comma-list.out
  TEST    tests/qapi-schema/trailing-comma-object.out
  TEST    tests/qapi-schema/type-bypass-bad-gen.out
  TEST    tests/qapi-schema/unclosed-list.out
  TEST    tests/qapi-schema/unclosed-object.out
  TEST    tests/qapi-schema/unclosed-string.out
  TEST    tests/qapi-schema/unicode-str.out
  TEST    tests/qapi-schema/union-base-empty.out
  TEST    tests/qapi-schema/union-base-no-discriminator.out
  TEST    tests/qapi-schema/union-branch-case.out
  TEST    tests/qapi-schema/union-clash-branches.out
  TEST    tests/qapi-schema/union-invalid-base.out
  TEST    tests/qapi-schema/union-empty.out
  TEST    tests/qapi-schema/union-optional-branch.out
  TEST    tests/qapi-schema/union-unknown.out
  TEST    tests/qapi-schema/unknown-escape.out
  TEST    tests/qapi-schema/unknown-expr-key.out
  GEN     tests/qapi-schema/doc-good.test.texi
  CC      tests/check-qdict.o
  CC      tests/test-char.o
  CC      tests/check-qfloat.o
  CC      tests/check-qint.o
  CC      tests/check-qstring.o
  CC      tests/check-qlist.o
  CC      tests/check-qnull.o
  CC      tests/check-qjson.o
  CC      tests/test-qobject-output-visitor.o
  GEN     tests/test-qapi-visit.c
  GEN     tests/test-qapi-types.c
  GEN     tests/test-qapi-event.c
  GEN     tests/test-qmp-introspect.c
  CC      tests/test-clone-visitor.o
  CC      tests/test-qobject-input-visitor.o
  CC      tests/test-qmp-commands.o
  GEN     tests/test-qmp-marshal.c
  CC      tests/test-string-input-visitor.o
  CC      tests/test-qmp-event.o
  CC      tests/test-opts-visitor.o
  CC      tests/test-string-output-visitor.o
  CC      tests/test-coroutine.o
  CC      tests/test-visitor-serialization.o
  CC      tests/iothread.o
  CC      tests/test-iov.o
  CC      tests/test-aio.o
  CC      tests/test-aio-multithread.o
  CC      tests/test-throttle.o
  CC      tests/test-thread-pool.o
  CC      tests/test-blockjob.o
  CC      tests/test-hbitmap.o
  CC      tests/test-blockjob-txn.o
  CC      tests/test-x86-cpuid.o
  CC      tests/test-xbzrle.o
  CC      tests/test-vmstate.o
  CC      tests/test-cutils.o
  CC      tests/test-shift128.o
  CC      tests/test-mul64.o
  CC      tests/test-int128.o
  CC      tests/rcutorture.o
/tmp/qemu-test/src/tests/test-int128.c:180: warning: ‘__noclone__’ attribute directive ignored
  CC      tests/test-rcu-list.o
  CC      tests/test-qdist.o
  CC      tests/test-qht.o
  CC      tests/test-qht-par.o
  CC      tests/qht-bench.o
  CC      tests/test-bitops.o
  CC      tests/test-bitcnt.o
  CC      tests/check-qom-interface.o
  CC      tests/check-qom-proplist.o
  CC      tests/test-qemu-opts.o
  CC      tests/test-write-threshold.o
  CC      tests/test-keyval.o
  CC      tests/test-crypto-hash.o
  CC      tests/test-crypto-hmac.o
  CC      tests/test-crypto-cipher.o
  CC      tests/test-crypto-secret.o
  CC      tests/test-qga.o
  CC      tests/libqtest.o
  CC      tests/test-timed-average.o
  CC      tests/test-io-task.o
  CC      tests/test-io-channel-socket.o
  CC      tests/io-channel-helpers.o
  CC      tests/test-io-channel-file.o
  CC      tests/test-io-channel-command.o
  CC      tests/test-base64.o
  CC      tests/test-crypto-ivgen.o
  CC      tests/test-io-channel-buffer.o
  CC      tests/test-crypto-afsplit.o
  CC      tests/test-crypto-xts.o
  CC      tests/test-crypto-block.o
  CC      tests/test-logging.o
  CC      tests/test-replication.o
  CC      tests/test-bufferiszero.o
  CC      tests/test-uuid.o
  CC      tests/ptimer-test.o
  CC      tests/ptimer-test-stubs.o
  CC      tests/test-qapi-util.o
  CC      tests/vhost-user-test.o
  CC      tests/libqos/pci.o
  CC      tests/libqos/fw_cfg.o
  CC      tests/libqos/malloc.o
  CC      tests/libqos/i2c.o
  CC      tests/libqos/libqos.o
  CC      tests/libqos/malloc-spapr.o
  CC      tests/libqos/libqos-spapr.o
  CC      tests/libqos/rtas.o
  CC      tests/libqos/pci-spapr.o
  CC      tests/libqos/pci-pc.o
  CC      tests/libqos/malloc-pc.o
  CC      tests/libqos/libqos-pc.o
  CC      tests/libqos/ahci.o
  CC      tests/libqos/virtio.o
  CC      tests/libqos/virtio-pci.o
  CC      tests/libqos/virtio-mmio.o
  CC      tests/libqos/malloc-generic.o
  CC      tests/endianness-test.o
  CC      tests/fdc-test.o
  CC      tests/ide-test.o
  CC      tests/ahci-test.o
  CC      tests/hd-geo-test.o
  CC      tests/boot-order-test.o
  CC      tests/bios-tables-test.o
  CC      tests/boot-sector.o
/tmp/qemu-test/src/tests/ide-test.c: In function ‘cdrom_pio_impl’:
/tmp/qemu-test/src/tests/ide-test.c:803: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
/tmp/qemu-test/src/tests/ide-test.c: In function ‘test_cdrom_dma’:
/tmp/qemu-test/src/tests/ide-test.c:899: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
  CC      tests/boot-serial-test.o
  CC      tests/acpi-utils.o
  CC      tests/pxe-test.o
  CC      tests/rtc-test.o
  CC      tests/ipmi-kcs-test.o
  CC      tests/ipmi-bt-test.o
  CC      tests/fw_cfg-test.o
  CC      tests/i440fx-test.o
  CC      tests/drive_del-test.o
  CC      tests/wdt_ib700-test.o
  CC      tests/tco-test.o
  CC      tests/e1000-test.o
  CC      tests/e1000e-test.o
  CC      tests/rtl8139-test.o
  CC      tests/pcnet-test.o
  CC      tests/eepro100-test.o
  CC      tests/ne2000-test.o
  CC      tests/nvme-test.o
  CC      tests/es1370-test.o
  CC      tests/ac97-test.o
  CC      tests/virtio-net-test.o
  CC      tests/virtio-balloon-test.o
  CC      tests/virtio-rng-test.o
  CC      tests/virtio-blk-test.o
  CC      tests/virtio-scsi-test.o
  CC      tests/virtio-serial-test.o
  CC      tests/virtio-console-test.o
  CC      tests/tpci200-test.o
  CC      tests/ipoctal232-test.o
  CC      tests/display-vga-test.o
  CC      tests/intel-hda-test.o
  CC      tests/ivshmem-test.o
  CC      tests/vmxnet3-test.o
  CC      tests/pvpanic-test.o
  CC      tests/ioh3420-test.o
  CC      tests/i82801b11-test.o
  CC      tests/usb-hcd-ohci-test.o
  CC      tests/libqos/usb.o
  CC      tests/usb-hcd-uhci-test.o
  CC      tests/usb-hcd-ehci-test.o
  CC      tests/usb-hcd-xhci-test.o
  CC      tests/q35-test.o
  CC      tests/pc-cpu-test.o
  CC      tests/test-netfilter.o
  CC      tests/test-filter-mirror.o
  CC      tests/test-filter-redirector.o
  CC      tests/postcopy-test.o
  CC      tests/test-x86-cpuid-compat.o
  CC      tests/qmp-test.o
  CC      tests/device-introspect-test.o
  CC      tests/test-hmp.o
  CC      tests/qom-test.o
  LINK    tests/check-qdict
  LINK    tests/test-char
  LINK    tests/check-qfloat
  LINK    tests/check-qint
  LINK    tests/check-qstring
  LINK    tests/check-qlist
  LINK    tests/check-qnull
  LINK    tests/check-qjson
  CC      tests/test-qapi-types.o
  CC      tests/test-qapi-visit.o
  CC      tests/test-qmp-introspect.o
  CC      tests/test-qapi-event.o
  CC      tests/test-qmp-marshal.o
  LINK    tests/test-coroutine
  LINK    tests/test-visitor-serialization
  LINK    tests/test-iov
  LINK    tests/test-aio
  LINK    tests/test-aio-multithread
  LINK    tests/test-throttle
  LINK    tests/test-thread-pool
  LINK    tests/test-hbitmap
  LINK    tests/test-blockjob
  LINK    tests/test-x86-cpuid
  LINK    tests/test-blockjob-txn
  LINK    tests/test-xbzrle
  LINK    tests/test-cutils
  LINK    tests/test-vmstate
  LINK    tests/test-shift128
  LINK    tests/test-mul64
  LINK    tests/test-int128
  LINK    tests/rcutorture
  LINK    tests/test-rcu-list
  LINK    tests/test-qdist
  LINK    tests/test-qht
  LINK    tests/qht-bench
  LINK    tests/test-bitops
  LINK    tests/test-bitcnt
  LINK    tests/check-qom-interface
  LINK    tests/check-qom-proplist
  LINK    tests/test-qemu-opts
  LINK    tests/test-keyval
  LINK    tests/test-write-threshold
  LINK    tests/test-crypto-hash
  LINK    tests/test-crypto-hmac
  LINK    tests/test-crypto-cipher
  LINK    tests/test-crypto-secret
  LINK    tests/test-qga
  LINK    tests/test-timed-average
  LINK    tests/test-io-task
  LINK    tests/test-io-channel-socket
  LINK    tests/test-io-channel-file
  LINK    tests/test-io-channel-command
  LINK    tests/test-io-channel-buffer
  LINK    tests/test-base64
  LINK    tests/test-crypto-ivgen
  LINK    tests/test-crypto-afsplit
  LINK    tests/test-crypto-xts
  LINK    tests/test-crypto-block
  LINK    tests/test-logging
  LINK    tests/test-replication
  LINK    tests/test-bufferiszero
  LINK    tests/test-uuid
  LINK    tests/ptimer-test
  LINK    tests/test-qapi-util
  LINK    tests/vhost-user-test
  LINK    tests/endianness-test
  LINK    tests/fdc-test
  LINK    tests/ide-test
  LINK    tests/ahci-test
  LINK    tests/hd-geo-test
  LINK    tests/boot-order-test
  LINK    tests/bios-tables-test
  LINK    tests/boot-serial-test
  LINK    tests/pxe-test
  LINK    tests/rtc-test
  LINK    tests/ipmi-kcs-test
  LINK    tests/ipmi-bt-test
  LINK    tests/i440fx-test
  LINK    tests/fw_cfg-test
  LINK    tests/drive_del-test
  LINK    tests/wdt_ib700-test
  LINK    tests/tco-test
  LINK    tests/e1000-test
  LINK    tests/e1000e-test
  LINK    tests/rtl8139-test
  LINK    tests/pcnet-test
  LINK    tests/eepro100-test
  LINK    tests/ne2000-test
  LINK    tests/nvme-test
  LINK    tests/ac97-test
  LINK    tests/es1370-test
  LINK    tests/virtio-net-test
  LINK    tests/virtio-balloon-test
  LINK    tests/virtio-blk-test
  LINK    tests/virtio-rng-test
  LINK    tests/virtio-scsi-test
  LINK    tests/virtio-serial-test
  LINK    tests/virtio-console-test
  LINK    tests/tpci200-test
  LINK    tests/ipoctal232-test
  LINK    tests/display-vga-test
  LINK    tests/intel-hda-test
  LINK    tests/ivshmem-test
  LINK    tests/vmxnet3-test
  LINK    tests/pvpanic-test
  LINK    tests/i82801b11-test
  LINK    tests/ioh3420-test
  LINK    tests/usb-hcd-ohci-test
  LINK    tests/usb-hcd-uhci-test
  LINK    tests/usb-hcd-ehci-test
  LINK    tests/usb-hcd-xhci-test
  LINK    tests/pc-cpu-test
  LINK    tests/q35-test
  LINK    tests/test-netfilter
  LINK    tests/test-filter-mirror
  LINK    tests/test-filter-redirector
  LINK    tests/postcopy-test
  LINK    tests/test-x86-cpuid-compat
  LINK    tests/qmp-test
  LINK    tests/device-introspect-test
  LINK    tests/qom-test
  LINK    tests/test-hmp
  GTESTER tests/check-qdict
  GTESTER tests/check-qfloat
  GTESTER tests/test-char
  GTESTER tests/check-qlist
  GTESTER tests/check-qstring
  GTESTER tests/check-qint
  GTESTER tests/check-qnull
  GTESTER tests/check-qjson
  LINK    tests/test-qobject-output-visitor
  LINK    tests/test-clone-visitor
  LINK    tests/test-qobject-input-visitor
  LINK    tests/test-qmp-commands
  LINK    tests/test-string-input-visitor
  LINK    tests/test-string-output-visitor
  LINK    tests/test-qmp-event
  GTESTER tests/test-visitor-serialization
  LINK    tests/test-opts-visitor
  GTESTER tests/test-coroutine
  GTESTER tests/test-iov
  GTESTER tests/test-aio
  GTESTER tests/test-aio-multithread
  GTESTER tests/test-throttle
  GTESTER tests/test-thread-pool
  GTESTER tests/test-hbitmap
  GTESTER tests/test-blockjob
  GTESTER tests/test-blockjob-txn
  GTESTER tests/test-x86-cpuid
  GTESTER tests/test-xbzrle
  GTESTER tests/test-vmstate
Failed to load simple/primitive:b_1
Failed to load simple/primitive:i64_2
Failed to load simple/primitive:i32_1
Failed to load simple/primitive:i32_1
Failed to load test/with_tmp:a
Failed to load test/tmp_child_parent:f
Failed to load test/tmp_child:parent
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
  GTESTER tests/test-cutils
  GTESTER tests/test-shift128
  GTESTER tests/test-mul64
  GTESTER tests/test-int128
  GTESTER tests/rcutorture
  GTESTER tests/test-rcu-list
  GTESTER tests/test-qdist
  GTESTER tests/test-qht
  LINK    tests/test-qht-par
  GTESTER tests/test-bitops
  GTESTER tests/test-bitcnt
  GTESTER tests/check-qom-interface
  GTESTER tests/check-qom-proplist
  GTESTER tests/test-qemu-opts
  GTESTER tests/test-keyval
  GTESTER tests/test-write-threshold
  GTESTER tests/test-crypto-hash
  GTESTER tests/test-crypto-hmac
  GTESTER tests/test-crypto-cipher
  GTESTER tests/test-crypto-secret
  GTESTER tests/test-qga
  GTESTER tests/test-timed-average
  GTESTER tests/test-io-task
  GTESTER tests/test-io-channel-socket
  GTESTER tests/test-io-channel-file
  GTESTER tests/test-io-channel-command
  GTESTER tests/test-io-channel-buffer
  GTESTER tests/test-base64
  GTESTER tests/test-crypto-ivgen
  GTESTER tests/test-crypto-afsplit
  GTESTER tests/test-crypto-xts
  GTESTER tests/test-crypto-block
  GTESTER tests/test-logging
  GTESTER tests/test-replication
  GTESTER tests/test-bufferiszero
  GTESTER tests/test-uuid
  GTESTER tests/ptimer-test
  GTESTER tests/test-qapi-util
  GTESTER check-qtest-x86_64
  GTESTER check-qtest-aarch64
  GTESTER tests/test-qobject-output-visitor
  GTESTER tests/test-clone-visitor
  GTESTER tests/test-qobject-input-visitor
  GTESTER tests/test-qmp-commands
  GTESTER tests/test-string-input-visitor
  GTESTER tests/test-string-output-visitor
  GTESTER tests/test-qmp-event
  GTESTER tests/test-opts-visitor
  GTESTER tests/test-qht-par
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-hqv8w1rj/src'

real	12m7.343s
user	0m4.215s
sys	0m1.269s
  BUILD   fedora
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-hqv8w1rj/src'
  ARCHIVE qemu.tgz
  ARCHIVE dtc.tgz
  COPY    RUNNER
    RUN test-mingw in qemu:fedora 
Packages installed:
PyYAML-3.11-13.fc25.x86_64
SDL-devel-1.2.15-21.fc24.x86_64
bc-1.06.95-16.fc24.x86_64
bison-3.0.4-4.fc24.x86_64
ccache-3.3.4-1.fc25.x86_64
clang-3.9.1-2.fc25.x86_64
findutils-4.6.0-8.fc25.x86_64
flex-2.6.0-3.fc25.x86_64
gcc-6.3.1-1.fc25.x86_64
gcc-c++-6.3.1-1.fc25.x86_64
git-2.9.3-2.fc25.x86_64
glib2-devel-2.50.3-1.fc25.x86_64
libfdt-devel-1.4.2-1.fc25.x86_64
make-4.1-5.fc24.x86_64
mingw32-SDL-1.2.15-7.fc24.noarch
mingw32-bzip2-1.0.6-7.fc24.noarch
mingw32-curl-7.47.0-1.fc24.noarch
mingw32-glib2-2.50.1-1.fc25.noarch
mingw32-gmp-6.1.1-1.fc25.noarch
mingw32-gnutls-3.5.5-2.fc25.noarch
mingw32-gtk2-2.24.31-2.fc25.noarch
mingw32-gtk3-3.22.2-1.fc25.noarch
mingw32-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw32-libpng-1.6.27-1.fc25.noarch
mingw32-libssh2-1.4.3-5.fc24.noarch
mingw32-libtasn1-4.9-1.fc25.noarch
mingw32-nettle-3.3-1.fc25.noarch
mingw32-pixman-0.34.0-1.fc25.noarch
mingw32-pkg-config-0.28-6.fc24.x86_64
mingw64-SDL-1.2.15-7.fc24.noarch
mingw64-bzip2-1.0.6-7.fc24.noarch
mingw64-curl-7.47.0-1.fc24.noarch
mingw64-glib2-2.50.1-1.fc25.noarch
mingw64-gmp-6.1.1-1.fc25.noarch
mingw64-gnutls-3.5.5-2.fc25.noarch
mingw64-gtk2-2.24.31-2.fc25.noarch
mingw64-gtk3-3.22.2-1.fc25.noarch
mingw64-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw64-libpng-1.6.27-1.fc25.noarch
mingw64-libssh2-1.4.3-5.fc24.noarch
mingw64-libtasn1-4.9-1.fc25.noarch
mingw64-nettle-3.3-1.fc25.noarch
mingw64-pixman-0.34.0-1.fc25.noarch
mingw64-pkg-config-0.28-6.fc24.x86_64
package python2 is not installed
perl-5.24.1-385.fc25.x86_64
pixman-devel-0.34.0-2.fc24.x86_64
sparse-0.5.0-10.fc25.x86_64
tar-1.29-3.fc25.x86_64
which-2.21-1.fc25.x86_64
zlib-devel-1.2.8-10.fc24.x86_64

Environment variables:
FBR=f25
PACKAGES=ccache git tar PyYAML sparse flex bison python2     glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel     gcc gcc-c++ clang make perl which bc findutils     mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config     mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1     mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2     mingw32-bzip2     mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL mingw64-pkg-config     mingw64-gtk2 mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1     mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2     mingw64-bzip2
HOSTNAME=
TERM=xterm
MAKEFLAGS= -j8
HISTSIZE=1000
J=8
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
MAIL=/var/spool/mail/root
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
HISTCONTROL=ignoredups
FGC=f25
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
DISTTAG=f25docker
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
FEATURES=mingw clang pyyaml dtc
DEBUG=
_=/usr/bin/env

Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install --cross-prefix=x86_64-w64-mingw32- --enable-trace-backends=simple --enable-debug --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=1.2 --with-gtkabi=2.0
Install prefix    /var/tmp/qemu-build/install
BIOS directory    /var/tmp/qemu-build/install
binary directory  /var/tmp/qemu-build/install
library directory /var/tmp/qemu-build/install/lib
module directory  /var/tmp/qemu-build/install/lib
libexec directory /var/tmp/qemu-build/install/libexec
include directory /var/tmp/qemu-build/install/include
config directory  /var/tmp/qemu-build/install
local state directory   queried at runtime
Windows SDK       no
Source path       /tmp/qemu-test/src
C compiler        x86_64-w64-mingw32-gcc
Host C compiler   cc
C++ compiler      x86_64-w64-mingw32-g++
Objective-C compiler clang
ARFLAGS           rv
CFLAGS            -g 
QEMU_CFLAGS       -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/pixman-1  -I$(SRC_PATH)/dtc/libfdt -Werror -mms-bitfields -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/x86_64-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include  -m64 -mcx16 -mthreads -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_MEAN -DWINVER=0x501 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include  -I/usr/x86_64-w64-mingw32/sys-root/mingw/include   -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 
LDFLAGS           -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       x86_64-softmmu aarch64-softmmu
tcg debug enabled yes
gprof enabled     no
sparse enabled    no
strip binaries    no
profiler          no
static build      no
pixman            system
SDL support       yes (1.2.15)
GTK support       yes (2.24.31)
GTK GL support    no
VTE support       no 
TLS priority      NORMAL
GNUTLS support    yes
GNUTLS rnd        yes
libgcrypt         no
libgcrypt kdf     no
nettle            yes (3.3)
nettle kdf        yes
libtasn1          yes
curses support    no
virgl support     no
curl support      yes
mingw32 support   yes
Audio drivers     dsound
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC SASL support  no
VNC JPEG support  yes
VNC PNG support   yes
xen support       no
brlapi support    no
bluez  support    no
Documentation     no
PIE               no
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support no
Install blobs     yes
KVM support       no
HAX support       yes
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    no
fdatasync         no
madvise           no
posix_madvise     no
libcap-ng support no
vhost-net support no
vhost-scsi support no
vhost-vsock support no
Trace backends    simple
Trace output file trace-<pid>
spice support     no 
rbd support       no
xfsctl support    no
smartcard support no
libusb            no
usb net redir     no
OpenGL support    no
OpenGL dmabufs    no
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
QGA w32 disk info yes
QGA MSI support   no
seccomp support   no
coroutine backend win32
coroutine pool    yes
debug stack usage no
GlusterFS support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   yes
TPM passthrough   no
QOM debugging     yes
lzo support       no
snappy support    no
bzip2 support     yes
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization yes
replication support yes
VxHS block device no
mkdir -p dtc/libfdt
mkdir -p dtc/tests
  GEN     x86_64-softmmu/config-devices.mak.tmp
  GEN     aarch64-softmmu/config-devices.mak.tmp
  GEN     config-host.h
  GEN     qemu-options.def
  GEN     qapi-types.h
  GEN     qapi-visit.h
  GEN     qmp-commands.h
  GEN     qapi-event.h
  GEN     qmp-marshal.c
  GEN     qapi-types.c
  GEN     x86_64-softmmu/config-devices.mak
  GEN     aarch64-softmmu/config-devices.mak
  GEN     qapi-visit.c
  GEN     qapi-event.c
  GEN     qmp-introspect.h
  GEN     qmp-introspect.c
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-helpers.h
  GEN     trace/generated-helpers.c
  GEN     module_block.h
  GEN     tests/test-qapi-types.h
  GEN     tests/test-qapi-visit.h
  GEN     tests/test-qmp-commands.h
  GEN     tests/test-qapi-event.h
  GEN     tests/test-qmp-introspect.h
  GEN     trace-root.h
  GEN     util/trace.h
  GEN     crypto/trace.h
  GEN     io/trace.h
  GEN     migration/trace.h
  GEN     block/trace.h
  GEN     backends/trace.h
  GEN     hw/block/trace.h
  GEN     hw/block/dataplane/trace.h
  GEN     hw/char/trace.h
  GEN     hw/intc/trace.h
  GEN     hw/net/trace.h
  GEN     hw/virtio/trace.h
  GEN     hw/audio/trace.h
  GEN     hw/misc/trace.h
  GEN     hw/usb/trace.h
  GEN     hw/scsi/trace.h
  GEN     hw/nvram/trace.h
  GEN     hw/display/trace.h
  GEN     hw/input/trace.h
  GEN     hw/timer/trace.h
  GEN     hw/dma/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/xen/trace.h
  GEN     ui/trace.h
  GEN     audio/trace.h
  GEN     net/trace.h
  GEN     target/arm/trace.h
  GEN     target/i386/trace.h
  GEN     target/mips/trace.h
  GEN     target/sparc/trace.h
  GEN     target/s390x/trace.h
  GEN     target/ppc/trace.h
  GEN     qom/trace.h
  GEN     linux-user/trace.h
  GEN     qapi/trace.h
  GEN     trace-root.c
  GEN     util/trace.c
  GEN     crypto/trace.c
  GEN     io/trace.c
  GEN     migration/trace.c
  GEN     block/trace.c
  GEN     backends/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/net/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/display/trace.c
  GEN     hw/input/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/ppc/trace.c
  GEN     hw/pci/trace.c
  GEN     hw/s390x/trace.c
  GEN     hw/vfio/trace.c
  GEN     hw/acpi/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/xen/trace.c
  GEN     ui/trace.c
  GEN     audio/trace.c
  GEN     net/trace.c
  GEN     target/arm/trace.c
  GEN     target/i386/trace.c
  GEN     target/mips/trace.c
  GEN     target/sparc/trace.c
  GEN     target/s390x/trace.c
  GEN     target/ppc/trace.c
  GEN     qom/trace.c
  GEN     linux-user/trace.c
  GEN     qapi/trace.c
  GEN     config-all-devices.mak
	 DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
	 DEP /tmp/qemu-test/src/dtc/tests/trees.S
	 DEP /tmp/qemu-test/src/dtc/tests/testutils.c
	 DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
	 DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
	 DEP /tmp/qemu-test/src/dtc/tests/check_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
	 DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
	 DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
	 DEP /tmp/qemu-test/src/dtc/tests/incbin.c
	 DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
	 DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
	 DEP /tmp/qemu-test/src/dtc/tests/path-references.c
	 DEP /tmp/qemu-test/src/dtc/tests/references.c
	 DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
	 DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
	 DEP /tmp/qemu-test/src/dtc/tests/del_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/del_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop.c
	 DEP /tmp/qemu-test/src/dtc/tests/set_name.c
	 DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
	 DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
	 DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
	 DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
	 DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
	 DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
	 DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
	 DEP /tmp/qemu-test/src/dtc/tests/notfound.c
	 DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
	 DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
	 DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
	 DEP /tmp/qemu-test/src/dtc/tests/getprop.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_name.c
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/find_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/root_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
	 DEP /tmp/qemu-test/src/dtc/util.c
	 DEP /tmp/qemu-test/src/dtc/fdtput.c
	 DEP /tmp/qemu-test/src/dtc/fdtget.c
	 DEP /tmp/qemu-test/src/dtc/fdtdump.c
	 LEX convert-dtsv0-lexer.lex.c
	 DEP /tmp/qemu-test/src/dtc/srcpos.c
	 BISON dtc-parser.tab.c
	 LEX dtc-lexer.lex.c
	 DEP /tmp/qemu-test/src/dtc/treesource.c
	 DEP /tmp/qemu-test/src/dtc/livetree.c
	 DEP /tmp/qemu-test/src/dtc/fstree.c
	 DEP /tmp/qemu-test/src/dtc/flattree.c
	 DEP /tmp/qemu-test/src/dtc/data.c
	 DEP /tmp/qemu-test/src/dtc/dtc.c
	 DEP /tmp/qemu-test/src/dtc/checks.c
	 DEP convert-dtsv0-lexer.lex.c
	 DEP dtc-parser.tab.c
	 DEP dtc-lexer.lex.c
	CHK version_gen.h
	UPD version_gen.h
	 DEP /tmp/qemu-test/src/dtc/util.c
	 CC libfdt/fdt.o
	 CC libfdt/fdt_wip.o
	 CC libfdt/fdt_ro.o
	 CC libfdt/fdt_rw.o
	 CC libfdt/fdt_sw.o
	 CC libfdt/fdt_strerror.o
	 CC libfdt/fdt_empty_tree.o
	 CC libfdt/fdt_addresses.o
	 CC libfdt/fdt_overlay.o
	 AR libfdt/libfdt.a
x86_64-w64-mingw32-ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
  RC      version.o
  GEN     qga/qapi-generated/qga-qapi-visit.h
  GEN     qga/qapi-generated/qga-qapi-types.h
  GEN     qga/qapi-generated/qga-qmp-commands.h
  GEN     qga/qapi-generated/qga-qapi-types.c
  GEN     qga/qapi-generated/qga-qapi-visit.c
  GEN     qga/qapi-generated/qga-qmp-marshal.c
  CC      qmp-introspect.o
  CC      qapi-types.o
  CC      qapi-visit.o
  CC      qapi-event.o
  CC      qapi/qapi-visit-core.o
  CC      qapi/qapi-dealloc-visitor.o
  CC      qapi/qobject-input-visitor.o
  CC      qapi/qobject-output-visitor.o
  CC      qapi/qmp-registry.o
  CC      qapi/qmp-dispatch.o
  CC      qapi/string-input-visitor.o
  CC      qapi/string-output-visitor.o
  CC      qapi/opts-visitor.o
  CC      qapi/qapi-clone-visitor.o
  CC      qapi/qmp-event.o
  CC      qapi/qapi-util.o
  CC      qobject/qnull.o
  CC      qobject/qint.o
  CC      qobject/qstring.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qfloat.o
  CC      qobject/qbool.o
  CC      qobject/qjson.o
  CC      qobject/qobject.o
  CC      qobject/json-lexer.o
  CC      qobject/json-streamer.o
  CC      qobject/json-parser.o
  CC      trace/simple.o
  CC      trace/control.o
  CC      trace/qmp.o
  CC      util/osdep.o
  CC      util/cutils.o
  CC      util/unicode.o
  CC      util/bufferiszero.o
  CC      util/qemu-timer-common.o
  CC      util/lockcnt.o
  CC      util/aiocb.o
  CC      util/async.o
  CC      util/thread-pool.o
  CC      util/qemu-timer.o
  CC      util/main-loop.o
  CC      util/iohandler.o
  CC      util/aio-win32.o
  CC      util/event_notifier-win32.o
  CC      util/oslib-win32.o
  CC      util/qemu-thread-win32.o
  CC      util/envlist.o
  CC      util/path.o
  CC      util/module.o
  CC      util/bitmap.o
  CC      util/host-utils.o
  CC      util/bitops.o
  CC      util/hbitmap.o
  CC      util/fifo8.o
  CC      util/acl.o
  CC      util/error.o
  CC      util/qemu-error.o
  CC      util/id.o
  CC      util/iov.o
  CC      util/qemu-config.o
  CC      util/uri.o
  CC      util/qemu-sockets.o
  CC      util/notify.o
  CC      util/qemu-option.o
  CC      util/qemu-progress.o
  CC      util/keyval.o
  CC      util/hexdump.o
  CC      util/crc32c.o
  CC      util/uuid.o
  CC      util/throttle.o
  CC      util/getauxval.o
  CC      util/readline.o
  CC      util/rcu.o
  CC      util/qemu-coroutine.o
  CC      util/qemu-coroutine-lock.o
  CC      util/qemu-coroutine-io.o
  CC      util/qemu-coroutine-sleep.o
  CC      util/coroutine-win32.o
  CC      util/buffer.o
  CC      util/timed-average.o
  CC      util/base64.o
  CC      util/log.o
  CC      util/qdist.o
  CC      util/qht.o
  CC      util/range.o
  CC      util/systemd.o
  CC      trace-root.o
  CC      util/trace.o
  CC      io/trace.o
  CC      crypto/trace.o
  CC      migration/trace.o
  CC      block/trace.o
  CC      backends/trace.o
  CC      hw/block/trace.o
  CC      hw/block/dataplane/trace.o
  CC      hw/char/trace.o
  CC      hw/intc/trace.o
  CC      hw/net/trace.o
  CC      hw/virtio/trace.o
  CC      hw/audio/trace.o
  CC      hw/misc/trace.o
  CC      hw/usb/trace.o
  CC      hw/scsi/trace.o
  CC      hw/nvram/trace.o
  CC      hw/display/trace.o
  CC      hw/input/trace.o
  CC      hw/timer/trace.o
  CC      hw/sparc/trace.o
  CC      hw/dma/trace.o
  CC      hw/sd/trace.o
  CC      hw/isa/trace.o
  CC      hw/mem/trace.o
  CC      hw/i386/trace.o
  CC      hw/9pfs/trace.o
  CC      hw/i386/xen/trace.o
  CC      hw/ppc/trace.o
  CC      hw/s390x/trace.o
  CC      hw/pci/trace.o
  CC      hw/vfio/trace.o
  CC      hw/acpi/trace.o
  CC      hw/arm/trace.o
  CC      hw/xen/trace.o
  CC      hw/alpha/trace.o
  CC      ui/trace.o
  CC      net/trace.o
  CC      audio/trace.o
  CC      target/arm/trace.o
  CC      target/i386/trace.o
  CC      target/mips/trace.o
  CC      target/sparc/trace.o
  CC      target/s390x/trace.o
  CC      target/ppc/trace.o
  CC      qom/trace.o
  CC      linux-user/trace.o
  CC      qapi/trace.o
  CC      crypto/pbkdf-stub.o
  CC      stubs/arch-query-cpu-def.o
  CC      stubs/arch-query-cpu-model-expansion.o
  CC      stubs/arch-query-cpu-model-comparison.o
  CC      stubs/arch-query-cpu-model-baseline.o
  CC      stubs/bdrv-next-monitor-owned.o
  CC      stubs/blk-commit-all.o
  CC      stubs/clock-warp.o
  CC      stubs/blockdev-close-all-bdrv-states.o
  CC      stubs/cpu-get-clock.o
  CC      stubs/cpu-get-icount.o
  CC      stubs/error-printf.o
  CC      stubs/dump.o
  CC      stubs/fdset.o
  CC      stubs/gdbstub.o
  CC      stubs/get-vm-name.o
  CC      stubs/iothread.o
  CC      stubs/iothread-lock.o
  CC      stubs/machine-init-done.o
  CC      stubs/migr-blocker.o
  CC      stubs/is-daemonized.o
  CC      stubs/monitor.o
  CC      stubs/notify-event.o
  CC      stubs/qtest.o
  CC      stubs/replay.o
  CC      stubs/runstate-check.o
  CC      stubs/set-fd-handler.o
  CC      stubs/slirp.o
  CC      stubs/sysbus.o
  CC      stubs/trace-control.o
  CC      stubs/uuid.o
  CC      stubs/vmstate.o
  CC      stubs/vm-stop.o
  CC      stubs/fd-register.o
  CC      stubs/qmp_pc_dimm_device_list.o
  CC      stubs/target-monitor-defs.o
  CC      stubs/target-get-monitor-def.o
  CC      stubs/vmgenid.o
  CC      stubs/pc_madt_cpu_entry.o
  CC      stubs/xen-common.o
  CC      stubs/xen-hvm.o
  CC      block.o
  GEN     qemu-img-cmds.h
  CC      blockjob.o
  CC      qemu-io-cmds.o
  CC      replication.o
  CC      block/raw-format.o
  CC      block/qcow.o
  CC      block/vdi.o
  CC      block/vmdk.o
  CC      block/cloop.o
  CC      block/bochs.o
  CC      block/vpc.o
  CC      block/vvfat.o
  CC      block/dmg.o
  CC      block/qcow2.o
  CC      block/qcow2-refcount.o
  CC      block/qcow2-cluster.o
  CC      block/qcow2-snapshot.o
  CC      block/qcow2-cache.o
  CC      block/qed.o
  CC      block/qed-gencb.o
  CC      block/qed-l2-cache.o
  CC      block/qed-table.o
  CC      block/qed-cluster.o
  CC      block/qed-check.o
  CC      block/vhdx.o
  CC      block/vhdx-endian.o
  CC      block/vhdx-log.o
  CC      block/quorum.o
  CC      block/parallels.o
  CC      block/blkdebug.o
  CC      block/blkverify.o
  CC      block/blkreplay.o
  CC      block/block-backend.o
  CC      block/snapshot.o
  CC      block/qapi.o
  CC      block/file-win32.o
  CC      block/null.o
  CC      block/win32-aio.o
  CC      block/commit.o
  CC      block/mirror.o
  CC      block/io.o
  CC      block/throttle-groups.o
  CC      block/nbd.o
  CC      block/nbd-client.o
  CC      block/sheepdog.o
  CC      block/accounting.o
  CC      block/dirty-bitmap.o
  CC      block/write-threshold.o
  CC      block/backup.o
  CC      block/replication.o
  CC      block/crypto.o
  CC      nbd/server.o
  CC      nbd/client.o
  CC      nbd/common.o
  CC      block/curl.o
  CC      block/ssh.o
  CC      block/dmg-bz2.o
  CC      crypto/hash.o
  CC      crypto/init.o
  CC      crypto/hash-nettle.o
  CC      crypto/hmac.o
  CC      crypto/hmac-nettle.o
  CC      crypto/aes.o
  CC      crypto/desrfb.o
  CC      crypto/tlscreds.o
  CC      crypto/cipher.o
  CC      crypto/tlscredsanon.o
  CC      crypto/tlscredsx509.o
  CC      crypto/tlssession.o
  CC      crypto/secret.o
  CC      crypto/random-gnutls.o
  CC      crypto/pbkdf.o
  CC      crypto/pbkdf-nettle.o
  CC      crypto/ivgen.o
  CC      crypto/ivgen-essiv.o
  CC      crypto/ivgen-plain.o
  CC      crypto/afsplit.o
  CC      crypto/ivgen-plain64.o
  CC      crypto/block.o
  CC      crypto/xts.o
  CC      crypto/block-qcow.o
  CC      crypto/block-luks.o
  CC      io/channel-buffer.o
  CC      io/channel.o
  CC      io/channel-command.o
  CC      io/channel-file.o
  CC      io/channel-socket.o
  CC      io/channel-tls.o
  CC      io/channel-watch.o
  CC      io/channel-websock.o
  CC      io/channel-util.o
  CC      io/dns-resolver.o
  CC      io/task.o
  CC      qom/object.o
  CC      qom/container.o
  CC      qom/qom-qobject.o
  CC      qom/object_interfaces.o
  CC      qemu-io.o
  CC      blockdev.o
  CC      blockdev-nbd.o
  CC      iothread.o
  CC      qdev-monitor.o
  CC      device-hotplug.o
  CC      os-win32.o
  CC      page_cache.o
  CC      accel.o
  CC      bt-host.o
  CC      bt-vhci.o
  CC      dma-helpers.o
  CC      vl.o
  CC      tpm.o
  CC      device_tree.o
  CC      qmp-marshal.o
  CC      qmp.o
  CC      hmp.o
  CC      cpus-common.o
  CC      audio/audio.o
  CC      audio/noaudio.o
  CC      audio/wavaudio.o
  CC      audio/mixeng.o
  CC      audio/sdlaudio.o
  CC      audio/dsoundaudio.o
  CC      audio/audio_win_int.o
  CC      audio/wavcapture.o
  CC      backends/rng.o
  CC      backends/rng-egd.o
  CC      backends/msmouse.o
  CC      backends/wctablet.o
  CC      backends/testdev.o
  CC      backends/tpm.o
  CC      backends/hostmem.o
  CC      backends/hostmem-ram.o
  CC      backends/cryptodev.o
  CC      backends/cryptodev-builtin.o
  CC      block/stream.o
  CC      disas/arm.o
  CXX     disas/arm-a64.o
  CC      disas/i386.o
  CXX     disas/libvixl/vixl/utils.o
  CXX     disas/libvixl/vixl/compiler-intrinsics.o
  CXX     disas/libvixl/vixl/a64/instructions-a64.o
  CXX     disas/libvixl/vixl/a64/decoder-a64.o
  CXX     disas/libvixl/vixl/a64/disasm-a64.o
  CC      hw/acpi/core.o
  CC      hw/acpi/piix4.o
  CC      hw/acpi/pcihp.o
  CC      hw/acpi/ich9.o
  CC      hw/acpi/tco.o
  CC      hw/acpi/cpu_hotplug.o
  CC      hw/acpi/memory_hotplug.o
  CC      hw/acpi/cpu.o
  CC      hw/acpi/nvdimm.o
  CC      hw/acpi/vmgenid.o
  CC      hw/acpi/acpi_interface.o
  CC      hw/acpi/bios-linker-loader.o
  CC      hw/acpi/aml-build.o
  CC      hw/acpi/ipmi.o
  CC      hw/acpi/acpi-stub.o
  CC      hw/acpi/ipmi-stub.o
  CC      hw/audio/sb16.o
  CC      hw/audio/es1370.o
  CC      hw/audio/ac97.o
  CC      hw/audio/fmopl.o
  CC      hw/audio/adlib.o
  CC      hw/audio/gus.o
  CC      hw/audio/gusemu_hal.o
  CC      hw/audio/gusemu_mixer.o
  CC      hw/audio/cs4231a.o
  CC      hw/audio/intel-hda.o
  CC      hw/audio/hda-codec.o
  CC      hw/audio/pcspk.o
  CC      hw/audio/wm8750.o
  CC      hw/audio/pl041.o
  CC      hw/audio/lm4549.o
  CC      hw/audio/marvell_88w8618.o
  CC      hw/block/block.o
  CC      hw/block/cdrom.o
  CC      hw/block/hd-geometry.o
  CC      hw/block/fdc.o
  CC      hw/block/m25p80.o
  CC      hw/block/pflash_cfi01.o
  CC      hw/block/nand.o
  CC      hw/block/pflash_cfi02.o
  CC      hw/block/ecc.o
  CC      hw/block/onenand.o
  CC      hw/block/nvme.o
  CC      hw/bt/core.o
  CC      hw/bt/l2cap.o
  CC      hw/bt/sdp.o
  CC      hw/bt/hci.o
  CC      hw/bt/hid.o
  CC      hw/bt/hci-csr.o
  CC      hw/char/ipoctal232.o
  CC      hw/char/parallel.o
  CC      hw/char/pl011.o
  CC      hw/char/serial.o
  CC      hw/char/serial-isa.o
  CC      hw/char/serial-pci.o
  CC      hw/char/virtio-console.o
  CC      hw/char/cadence_uart.o
  CC      hw/char/debugcon.o
  CC      hw/char/imx_serial.o
  CC      hw/core/qdev.o
  CC      hw/core/qdev-properties.o
  CC      hw/core/bus.o
  CC      hw/core/reset.o
  CC      hw/core/fw-path-provider.o
  CC      hw/core/irq.o
  CC      hw/core/hotplug.o
  CC      hw/core/ptimer.o
  CC      hw/core/sysbus.o
  CC      hw/core/machine.o
  CC      hw/core/loader.o
  CC      hw/core/qdev-properties-system.o
  CC      hw/core/register.o
  CC      hw/core/or-irq.o
  CC      hw/core/platform-bus.o
  CC      hw/display/ads7846.o
  CC      hw/display/cirrus_vga.o
  CC      hw/display/pl110.o
  CC      hw/display/ssd0303.o
  CC      hw/display/ssd0323.o
  CC      hw/display/vga-pci.o
  CC      hw/display/vga-isa.o
  CC      hw/display/vmware_vga.o
  CC      hw/display/blizzard.o
  CC      hw/display/exynos4210_fimd.o
  CC      hw/display/framebuffer.o
  CC      hw/display/tc6393xb.o
  CC      hw/dma/pl080.o
  CC      hw/dma/pl330.o
  CC      hw/dma/i8257.o
  CC      hw/dma/xlnx-zynq-devcfg.o
  CC      hw/gpio/max7310.o
  CC      hw/gpio/pl061.o
  CC      hw/gpio/zaurus.o
  CC      hw/gpio/gpio_key.o
  CC      hw/i2c/core.o
  CC      hw/i2c/smbus.o
  CC      hw/i2c/smbus_eeprom.o
  CC      hw/i2c/i2c-ddc.o
  CC      hw/i2c/versatile_i2c.o
  CC      hw/i2c/smbus_ich9.o
  CC      hw/i2c/pm_smbus.o
  CC      hw/i2c/bitbang_i2c.o
  CC      hw/i2c/exynos4210_i2c.o
  CC      hw/i2c/imx_i2c.o
  CC      hw/i2c/aspeed_i2c.o
  CC      hw/ide/core.o
  CC      hw/ide/atapi.o
  CC      hw/ide/qdev.o
  CC      hw/ide/pci.o
  CC      hw/ide/isa.o
  CC      hw/ide/piix.o
  CC      hw/ide/microdrive.o
  CC      hw/ide/ich.o
  CC      hw/ide/ahci.o
  CC      hw/input/hid.o
  CC      hw/input/lm832x.o
  CC      hw/input/pckbd.o
  CC      hw/input/pl050.o
  CC      hw/input/stellaris_input.o
  CC      hw/input/ps2.o
  CC      hw/input/tsc2005.o
  CC      hw/input/vmmouse.o
  CC      hw/input/virtio-input.o
  CC      hw/input/virtio-input-hid.o
  CC      hw/intc/i8259_common.o
  CC      hw/intc/i8259.o
  CC      hw/intc/pl190.o
  CC      hw/intc/imx_avic.o
  CC      hw/intc/realview_gic.o
  CC      hw/intc/ioapic_common.o
  CC      hw/intc/arm_gic_common.o
  CC      hw/intc/arm_gic.o
  CC      hw/intc/arm_gicv2m.o
  CC      hw/intc/arm_gicv3_common.o
  CC      hw/intc/arm_gicv3.o
  CC      hw/intc/arm_gicv3_dist.o
  CC      hw/intc/arm_gicv3_redist.o
  CC      hw/intc/arm_gicv3_its_common.o
  CC      hw/intc/intc.o
  CC      hw/ipack/ipack.o
  CC      hw/ipack/tpci200.o
  CC      hw/ipmi/ipmi.o
  CC      hw/ipmi/ipmi_bmc_sim.o
  CC      hw/ipmi/ipmi_bmc_extern.o
  CC      hw/ipmi/isa_ipmi_kcs.o
  CC      hw/ipmi/isa_ipmi_bt.o
  CC      hw/isa/isa-bus.o
  CC      hw/isa/apm.o
  CC      hw/mem/pc-dimm.o
  CC      hw/mem/nvdimm.o
  CC      hw/misc/applesmc.o
  CC      hw/misc/max111x.o
  CC      hw/misc/tmp105.o
  CC      hw/misc/debugexit.o
  CC      hw/misc/sga.o
  CC      hw/misc/pc-testdev.o
  CC      hw/misc/pci-testdev.o
  CC      hw/misc/unimp.o
  CC      hw/misc/arm_l2x0.o
  CC      hw/misc/arm_integrator_debug.o
  CC      hw/misc/a9scu.o
  CC      hw/misc/arm11scu.o
  CC      hw/net/ne2000.o
  CC      hw/net/eepro100.o
  CC      hw/net/pcnet-pci.o
  CC      hw/net/pcnet.o
  CC      hw/net/e1000.o
  CC      hw/net/e1000x_common.o
  CC      hw/net/net_tx_pkt.o
  CC      hw/net/net_rx_pkt.o
  CC      hw/net/e1000e.o
  CC      hw/net/e1000e_core.o
  CC      hw/net/vmxnet3.o
  CC      hw/net/rtl8139.o
  CC      hw/net/smc91c111.o
  CC      hw/net/lan9118.o
  CC      hw/net/ne2000-isa.o
  CC      hw/net/xgmac.o
  CC      hw/net/allwinner_emac.o
  CC      hw/net/imx_fec.o
  CC      hw/net/cadence_gem.o
  CC      hw/net/stellaris_enet.o
  CC      hw/net/ftgmac100.o
  CC      hw/net/rocker/rocker.o
  CC      hw/net/rocker/rocker_fp.o
  CC      hw/net/rocker/rocker_world.o
  CC      hw/net/rocker/rocker_desc.o
  CC      hw/net/rocker/rocker_of_dpa.o
  CC      hw/nvram/eeprom93xx.o
  CC      hw/nvram/fw_cfg.o
  CC      hw/nvram/chrp_nvram.o
  CC      hw/pci-bridge/pci_bridge_dev.o
  CC      hw/pci-bridge/pcie_root_port.o
  CC      hw/pci-bridge/gen_pcie_root_port.o
  CC      hw/pci-bridge/xio3130_upstream.o
  CC      hw/pci-bridge/pci_expander_bridge.o
  CC      hw/pci-bridge/ioh3420.o
  CC      hw/pci-bridge/xio3130_downstream.o
  CC      hw/pci-bridge/i82801b11.o
  CC      hw/pci-host/pam.o
  CC      hw/pci-host/versatile.o
  CC      hw/pci-host/piix.o
  CC      hw/pci-host/q35.o
  CC      hw/pci-host/gpex.o
  CC      hw/pci/pci_bridge.o
  CC      hw/pci/msi.o
  CC      hw/pci/pci.o
  CC      hw/pci/msix.o
  CC      hw/pci/slotid_cap.o
  CC      hw/pci/pci_host.o
  CC      hw/pci/shpc.o
  CC      hw/pci/pcie.o
  CC      hw/pci/pcie_host.o
  CC      hw/pci/pcie_aer.o
  CC      hw/pci/pci-stub.o
  CC      hw/pci/pcie_port.o
  CC      hw/scsi/scsi-generic.o
  CC      hw/pcmcia/pcmcia.o
  CC      hw/scsi/scsi-disk.o
  CC      hw/scsi/lsi53c895a.o
  CC      hw/scsi/scsi-bus.o
  CC      hw/scsi/mptsas.o
  CC      hw/scsi/mptendian.o
  CC      hw/scsi/mptconfig.o
  CC      hw/scsi/vmw_pvscsi.o
  CC      hw/scsi/megasas.o
  CC      hw/scsi/esp.o
  CC      hw/scsi/esp-pci.o
  CC      hw/sd/pl181.o
  CC      hw/sd/ssi-sd.o
  CC      hw/sd/sd.o
  CC      hw/sd/core.o
  CC      hw/sd/sdhci.o
  CC      hw/smbios/smbios.o
  CC      hw/smbios/smbios_type_38.o
  CC      hw/smbios/smbios-stub.o
  CC      hw/smbios/smbios_type_38-stub.o
  CC      hw/ssi/pl022.o
  CC      hw/ssi/ssi.o
  CC      hw/ssi/xilinx_spips.o
  CC      hw/ssi/aspeed_smc.o
  CC      hw/ssi/stm32f2xx_spi.o
  CC      hw/timer/arm_timer.o
  CC      hw/timer/arm_mptimer.o
  CC      hw/timer/armv7m_systick.o
  CC      hw/timer/a9gtimer.o
  CC      hw/timer/cadence_ttc.o
  CC      hw/timer/ds1338.o
  CC      hw/timer/hpet.o
  CC      hw/timer/i8254_common.o
  CC      hw/timer/i8254.o
  CC      hw/timer/pl031.o
  CC      hw/timer/twl92230.o
  CC      hw/timer/imx_epit.o
  CC      hw/timer/imx_gpt.o
  CC      hw/timer/stm32f2xx_timer.o
  CC      hw/timer/aspeed_timer.o
  CC      hw/tpm/tpm_tis.o
  CC      hw/usb/combined-packet.o
  CC      hw/usb/core.o
  CC      hw/usb/bus.o
  CC      hw/usb/libhw.o
  CC      hw/usb/desc.o
  CC      hw/usb/desc-msos.o
  CC      hw/usb/hcd-uhci.o
  CC      hw/usb/hcd-ohci.o
  CC      hw/usb/hcd-ehci.o
  CC      hw/usb/hcd-ehci-pci.o
  CC      hw/usb/hcd-ehci-sysbus.o
  CC      hw/usb/hcd-xhci.o
  CC      hw/usb/hcd-musb.o
  CC      hw/usb/dev-hub.o
  CC      hw/usb/dev-hid.o
  CC      hw/usb/dev-wacom.o
  CC      hw/usb/dev-storage.o
  CC      hw/usb/dev-uas.o
  CC      hw/usb/dev-audio.o
  CC      hw/usb/dev-network.o
  CC      hw/usb/dev-serial.o
  CC      hw/usb/dev-bluetooth.o
  CC      hw/usb/dev-smartcard-reader.o
  CC      hw/usb/host-stub.o
  CC      hw/virtio/virtio-rng.o
  CC      hw/virtio/virtio-pci.o
  CC      hw/virtio/virtio-bus.o
  CC      hw/virtio/virtio-mmio.o
  CC      hw/virtio/vhost-stub.o
  CC      hw/watchdog/watchdog.o
  CC      hw/watchdog/wdt_i6300esb.o
  CC      hw/watchdog/wdt_ib700.o
  CC      hw/watchdog/wdt_aspeed.o
  CC      migration/migration.o
  CC      migration/fd.o
  CC      migration/socket.o
  CC      migration/exec.o
  CC      migration/tls.o
  CC      migration/colo-comm.o
  CC      migration/colo.o
  CC      migration/colo-failover.o
  CC      migration/vmstate.o
  CC      migration/qemu-file.o
  CC      migration/qemu-file-channel.o
  CC      migration/xbzrle.o
  CC      migration/postcopy-ram.o
  CC      migration/qjson.o
  CC      migration/block.o
  CC      net/net.o
  CC      net/queue.o
  CC      net/checksum.o
  CC      net/hub.o
  CC      net/util.o
  CC      net/socket.o
  CC      net/dump.o
  CC      net/eth.o
  CC      net/tap-win32.o
  CC      net/slirp.o
  CC      net/filter.o
  CC      net/filter-buffer.o
  CC      net/filter-mirror.o
  CC      net/colo-compare.o
  CC      net/colo.o
  CC      net/filter-rewriter.o
  CC      net/filter-replay.o
  CC      qom/cpu.o
  CC      replay/replay.o
  CC      replay/replay-internal.o
  CC      replay/replay-events.o
  CC      replay/replay-time.o
  CC      replay/replay-input.o
  CC      replay/replay-char.o
  CC      replay/replay-snapshot.o
  CC      replay/replay-net.o
  CC      replay/replay-audio.o
  CC      slirp/cksum.o
  CC      slirp/if.o
  CC      slirp/ip_icmp.o
  CC      slirp/ip6_icmp.o
  CC      slirp/ip6_input.o
  CC      slirp/ip6_output.o
  CC      slirp/ip_input.o
  CC      slirp/ip_output.o
  CC      slirp/dnssearch.o
  CC      slirp/dhcpv6.o
  CC      slirp/slirp.o
  CC      slirp/mbuf.o
  CC      slirp/misc.o
  CC      slirp/sbuf.o
  CC      slirp/socket.o
  CC      slirp/tcp_input.o
  CC      slirp/tcp_output.o
  CC      slirp/tcp_subr.o
  CC      slirp/tcp_timer.o
  CC      slirp/udp.o
  CC      slirp/udp6.o
  CC      slirp/bootp.o
  CC      slirp/tftp.o
  CC      slirp/arp_table.o
  CC      slirp/ndp_table.o
  CC      slirp/ncsi.o
  CC      ui/keymaps.o
  CC      ui/console.o
  CC      ui/cursor.o
  CC      ui/qemu-pixman.o
  CC      ui/input.o
  CC      ui/input-keymap.o
  CC      ui/input-legacy.o
  CC      ui/sdl.o
  CC      ui/sdl_zoom.o
  CC      ui/x_keymap.o
  CC      ui/vnc.o
  CC      ui/vnc-enc-zlib.o
  CC      ui/vnc-enc-hextile.o
  CC      ui/vnc-enc-tight.o
  CC      ui/vnc-palette.o
  CC      ui/vnc-enc-zrle.o
  CC      ui/vnc-auth-vencrypt.o
  CC      ui/vnc-ws.o
  CC      ui/vnc-jobs.o
  CC      ui/gtk.o
  CC      chardev/char.o
  CC      chardev/char-console.o
  CC      chardev/char-fe.o
  CC      chardev/char-file.o
  CC      chardev/char-io.o
  CC      chardev/char-mux.o
  CC      chardev/char-null.o
  CC      chardev/char-pipe.o
  CC      chardev/char-ringbuf.o
  CC      chardev/char-serial.o
  CC      chardev/char-socket.o
  CC      chardev/char-stdio.o
  CC      chardev/char-udp.o
  CC      chardev/char-win.o
  CC      chardev/char-win-stdio.o
  AS      optionrom/multiboot.o
  AS      optionrom/linuxboot.o
  CC      optionrom/linuxboot_dma.o
  AS      optionrom/kvmvapic.o
  BUILD   optionrom/multiboot.img
  BUILD   optionrom/linuxboot.img
  BUILD   optionrom/linuxboot_dma.img
  BUILD   optionrom/kvmvapic.img
  BUILD   optionrom/multiboot.raw
  BUILD   optionrom/linuxboot.raw
  BUILD   optionrom/linuxboot_dma.raw
  CC      qga/commands.o
  BUILD   optionrom/kvmvapic.raw
  CC      qga/guest-agent-command-state.o
  CC      qga/main.o
  CC      qga/commands-win32.o
  CC      qga/channel-win32.o
  CC      qga/service-win32.o
  CC      qga/vss-win32.o
  CC      qga/qapi-generated/qga-qapi-types.o
  CC      qga/qapi-generated/qga-qapi-visit.o
  CC      qga/qapi-generated/qga-qmp-marshal.o
  AR      libqemuutil.a
  AR      libqemustub.a
  CC      qemu-img.o
  SIGN    optionrom/linuxboot.bin
  SIGN    optionrom/multiboot.bin
  SIGN    optionrom/linuxboot_dma.bin
  SIGN    optionrom/kvmvapic.bin
  LINK    qemu-io.exe
  LINK    qemu-img.exe
  LINK    qemu-ga.exe
  GEN     aarch64-softmmu/hmp-commands.h
  GEN     aarch64-softmmu/hmp-commands-info.h
  GEN     aarch64-softmmu/config-target.h
  GEN     x86_64-softmmu/hmp-commands.h
  GEN     x86_64-softmmu/config-target.h
  GEN     x86_64-softmmu/hmp-commands-info.h
  CC      x86_64-softmmu/exec.o
  CC      x86_64-softmmu/translate-all.o
  CC      x86_64-softmmu/cpu-exec.o
  CC      x86_64-softmmu/cpu-exec-common.o
  CC      x86_64-softmmu/tcg/tcg-op.o
  CC      x86_64-softmmu/tcg/tcg.o
  CC      x86_64-softmmu/translate-common.o
  CC      x86_64-softmmu/tcg/optimize.o
  CC      aarch64-softmmu/exec.o
  CC      x86_64-softmmu/tcg/tcg-common.o
  CC      aarch64-softmmu/translate-all.o
  CC      x86_64-softmmu/fpu/softfloat.o
  CC      x86_64-softmmu/disas.o
  CC      aarch64-softmmu/cpu-exec.o
  CC      aarch64-softmmu/translate-common.o
  CC      x86_64-softmmu/tcg-runtime.o
  CC      aarch64-softmmu/cpu-exec-common.o
  CC      x86_64-softmmu/kvm-stub.o
  CC      x86_64-softmmu/arch_init.o
  CC      aarch64-softmmu/tcg/tcg-op.o
  CC      aarch64-softmmu/tcg/tcg.o
  CC      aarch64-softmmu/tcg/optimize.o
  CC      x86_64-softmmu/cpus.o
  CC      aarch64-softmmu/tcg/tcg-common.o
  CC      x86_64-softmmu/monitor.o
  CC      aarch64-softmmu/fpu/softfloat.o
  CC      aarch64-softmmu/disas.o
  CC      x86_64-softmmu/gdbstub.o
  CC      aarch64-softmmu/tcg-runtime.o
  GEN     aarch64-softmmu/gdbstub-xml.c
  CC      x86_64-softmmu/balloon.o
  CC      x86_64-softmmu/ioport.o
  CC      aarch64-softmmu/hax-stub.o
  CC      aarch64-softmmu/kvm-stub.o
  CC      x86_64-softmmu/numa.o
  CC      aarch64-softmmu/arch_init.o
  CC      x86_64-softmmu/qtest.o
  CC      x86_64-softmmu/bootdevice.o
  CC      aarch64-softmmu/cpus.o
  CC      aarch64-softmmu/monitor.o
  CC      x86_64-softmmu/memory.o
  CC      x86_64-softmmu/cputlb.o
  CC      x86_64-softmmu/memory_mapping.o
  CC      aarch64-softmmu/gdbstub.o
  CC      aarch64-softmmu/balloon.o
  CC      x86_64-softmmu/dump.o
  CC      x86_64-softmmu/migration/ram.o
  CC      x86_64-softmmu/migration/savevm.o
  CC      aarch64-softmmu/ioport.o
  CC      aarch64-softmmu/numa.o
  CC      aarch64-softmmu/qtest.o
  CC      aarch64-softmmu/bootdevice.o
  CC      x86_64-softmmu/hw/block/virtio-blk.o
  CC      x86_64-softmmu/hw/block/dataplane/virtio-blk.o
  CC      aarch64-softmmu/memory.o
  CC      x86_64-softmmu/hw/char/virtio-serial-bus.o
  CC      x86_64-softmmu/hw/core/nmi.o
  CC      aarch64-softmmu/cputlb.o
  CC      aarch64-softmmu/memory_mapping.o
  CC      x86_64-softmmu/hw/core/generic-loader.o
  CC      aarch64-softmmu/dump.o
  CC      x86_64-softmmu/hw/core/null-machine.o
  CC      x86_64-softmmu/hw/cpu/core.o
  CC      aarch64-softmmu/migration/ram.o
  CC      x86_64-softmmu/hw/display/vga.o
  CC      aarch64-softmmu/migration/savevm.o
  CC      x86_64-softmmu/hw/display/virtio-gpu.o
  CC      x86_64-softmmu/hw/display/virtio-gpu-3d.o
  CC      aarch64-softmmu/hw/adc/stm32f2xx_adc.o
  CC      x86_64-softmmu/hw/display/virtio-gpu-pci.o
  CC      aarch64-softmmu/hw/block/virtio-blk.o
  CC      aarch64-softmmu/hw/block/dataplane/virtio-blk.o
  CC      x86_64-softmmu/hw/display/virtio-vga.o
  CC      x86_64-softmmu/hw/intc/apic.o
  CC      aarch64-softmmu/hw/char/exynos4210_uart.o
  CC      aarch64-softmmu/hw/char/omap_uart.o
  CC      x86_64-softmmu/hw/intc/apic_common.o
  CC      aarch64-softmmu/hw/char/digic-uart.o
  CC      x86_64-softmmu/hw/intc/ioapic.o
  CC      aarch64-softmmu/hw/char/stm32f2xx_usart.o
  CC      aarch64-softmmu/hw/char/bcm2835_aux.o
  CC      x86_64-softmmu/hw/isa/lpc_ich9.o
  CC      aarch64-softmmu/hw/char/virtio-serial-bus.o
  CC      x86_64-softmmu/hw/misc/vmport.o
  CC      aarch64-softmmu/hw/core/nmi.o
  CC      x86_64-softmmu/hw/misc/pvpanic.o
  CC      x86_64-softmmu/hw/misc/edu.o
  CC      aarch64-softmmu/hw/core/generic-loader.o
  CC      x86_64-softmmu/hw/net/virtio-net.o
  CC      x86_64-softmmu/hw/net/vhost_net.o
  CC      aarch64-softmmu/hw/core/null-machine.o
  CC      aarch64-softmmu/hw/cpu/arm11mpcore.o
  CC      x86_64-softmmu/hw/scsi/virtio-scsi.o
  CC      x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      aarch64-softmmu/hw/cpu/realview_mpcore.o
  CC      x86_64-softmmu/hw/timer/mc146818rtc.o
  CC      aarch64-softmmu/hw/cpu/a9mpcore.o
  CC      x86_64-softmmu/hw/virtio/virtio.o
  CC      x86_64-softmmu/hw/virtio/virtio-balloon.o
  CC      aarch64-softmmu/hw/cpu/a15mpcore.o
  CC      aarch64-softmmu/hw/cpu/core.o
  CC      aarch64-softmmu/hw/display/omap_dss.o
  CC      x86_64-softmmu/hw/virtio/virtio-crypto.o
  CC      x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      x86_64-softmmu/hw/i386/multiboot.o
  CC      x86_64-softmmu/hw/i386/pc.o
  CC      x86_64-softmmu/hw/i386/pc_piix.o
  CC      aarch64-softmmu/hw/display/omap_lcdc.o
  CC      x86_64-softmmu/hw/i386/pc_q35.o
  CC      aarch64-softmmu/hw/display/pxa2xx_lcd.o
  CC      x86_64-softmmu/hw/i386/pc_sysfw.o
  CC      aarch64-softmmu/hw/display/bcm2835_fb.o
  CC      aarch64-softmmu/hw/display/vga.o
  CC      x86_64-softmmu/hw/i386/x86-iommu.o
  CC      x86_64-softmmu/hw/i386/intel_iommu.o
  CC      aarch64-softmmu/hw/display/virtio-gpu.o
  CC      x86_64-softmmu/hw/i386/amd_iommu.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-3d.o
  CC      x86_64-softmmu/hw/i386/kvmvapic.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-pci.o
  CC      x86_64-softmmu/hw/i386/acpi-build.o
  CC      x86_64-softmmu/hw/i386/pci-assign-load-rom.o
  CC      aarch64-softmmu/hw/display/dpcd.o
  CC      aarch64-softmmu/hw/display/xlnx_dp.o
  CC      x86_64-softmmu/target/i386/translate.o
  CC      x86_64-softmmu/target/i386/helper.o
  CC      aarch64-softmmu/hw/dma/xlnx_dpdma.o
  CC      aarch64-softmmu/hw/dma/omap_dma.o
  CC      x86_64-softmmu/target/i386/cpu.o
  CC      x86_64-softmmu/target/i386/bpt_helper.o
  CC      x86_64-softmmu/target/i386/excp_helper.o
  CC      aarch64-softmmu/hw/dma/soc_dma.o
  CC      x86_64-softmmu/target/i386/fpu_helper.o
  CC      x86_64-softmmu/target/i386/cc_helper.o
  CC      aarch64-softmmu/hw/dma/pxa2xx_dma.o
  CC      x86_64-softmmu/target/i386/int_helper.o
  CC      x86_64-softmmu/target/i386/svm_helper.o
  CC      aarch64-softmmu/hw/dma/bcm2835_dma.o
  CC      x86_64-softmmu/target/i386/smm_helper.o
  CC      aarch64-softmmu/hw/gpio/omap_gpio.o
  CC      x86_64-softmmu/target/i386/misc_helper.o
  CC      x86_64-softmmu/target/i386/mem_helper.o
  CC      aarch64-softmmu/hw/gpio/imx_gpio.o
  CC      x86_64-softmmu/target/i386/seg_helper.o
  CC      aarch64-softmmu/hw/gpio/bcm2835_gpio.o
  CC      aarch64-softmmu/hw/i2c/omap_i2c.o
  CC      aarch64-softmmu/hw/input/pxa2xx_keypad.o
  CC      x86_64-softmmu/target/i386/mpx_helper.o
  CC      aarch64-softmmu/hw/input/tsc210x.o
  CC      x86_64-softmmu/target/i386/gdbstub.o
  CC      x86_64-softmmu/target/i386/machine.o
  CC      aarch64-softmmu/hw/intc/armv7m_nvic.o
  CC      aarch64-softmmu/hw/intc/exynos4210_gic.o
  CC      x86_64-softmmu/target/i386/arch_memory_mapping.o
  CC      aarch64-softmmu/hw/intc/exynos4210_combiner.o
  CC      aarch64-softmmu/hw/intc/omap_intc.o
  CC      x86_64-softmmu/target/i386/arch_dump.o
  CC      x86_64-softmmu/target/i386/monitor.o
  CC      x86_64-softmmu/target/i386/kvm-stub.o
  CC      aarch64-softmmu/hw/intc/bcm2835_ic.o
  CC      aarch64-softmmu/hw/intc/bcm2836_control.o
  CC      aarch64-softmmu/hw/intc/allwinner-a10-pic.o
  CC      x86_64-softmmu/target/i386/hax-all.o
  CC      x86_64-softmmu/target/i386/hax-mem.o
  CC      x86_64-softmmu/target/i386/hax-windows.o
  CC      aarch64-softmmu/hw/intc/aspeed_vic.o
  CC      aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
  CC      aarch64-softmmu/hw/misc/cbus.o
  CC      aarch64-softmmu/hw/misc/arm_sysctl.o
  GEN     trace/generated-helpers.c
  CC      aarch64-softmmu/hw/misc/exynos4210_pmu.o
  CC      x86_64-softmmu/trace/control-target.o
  CC      aarch64-softmmu/hw/misc/exynos4210_clk.o
  CC      aarch64-softmmu/hw/misc/imx_ccm.o
  CC      aarch64-softmmu/hw/misc/imx31_ccm.o
  CC      aarch64-softmmu/hw/misc/imx25_ccm.o
  CC      aarch64-softmmu/hw/misc/imx6_ccm.o
  CC      aarch64-softmmu/hw/misc/imx6_src.o
  CC      aarch64-softmmu/hw/misc/mst_fpga.o
  CC      x86_64-softmmu/trace/generated-helpers.o
  CC      aarch64-softmmu/hw/misc/omap_clk.o
  CC      aarch64-softmmu/hw/misc/omap_gpmc.o
  CC      aarch64-softmmu/hw/misc/omap_l4.o
  CC      aarch64-softmmu/hw/misc/omap_sdrc.o
  CC      aarch64-softmmu/hw/misc/omap_tap.o
  CC      aarch64-softmmu/hw/misc/bcm2835_mbox.o
  CC      aarch64-softmmu/hw/misc/bcm2835_property.o
  CC      aarch64-softmmu/hw/misc/bcm2835_rng.o
  CC      aarch64-softmmu/hw/misc/zynq_slcr.o
  CC      aarch64-softmmu/hw/misc/zynq-xadc.o
  CC      aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
  CC      aarch64-softmmu/hw/misc/edu.o
  CC      aarch64-softmmu/hw/misc/auxbus.o
  CC      aarch64-softmmu/hw/misc/aspeed_scu.o
  CC      aarch64-softmmu/hw/misc/aspeed_sdmc.o
  CC      aarch64-softmmu/hw/net/vhost_net.o
  CC      aarch64-softmmu/hw/net/virtio-net.o
  CC      aarch64-softmmu/hw/pcmcia/pxa2xx.o
  CC      aarch64-softmmu/hw/scsi/virtio-scsi.o
  CC      aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      aarch64-softmmu/hw/sd/omap_mmc.o
  CC      aarch64-softmmu/hw/sd/pxa2xx_mmci.o
  CC      aarch64-softmmu/hw/ssi/omap_spi.o
  CC      aarch64-softmmu/hw/sd/bcm2835_sdhost.o
  CC      aarch64-softmmu/hw/ssi/imx_spi.o
  CC      aarch64-softmmu/hw/timer/exynos4210_mct.o
  CC      aarch64-softmmu/hw/timer/exynos4210_pwm.o
  CC      aarch64-softmmu/hw/timer/exynos4210_rtc.o
  CC      aarch64-softmmu/hw/timer/omap_gptimer.o
  CC      aarch64-softmmu/hw/timer/omap_synctimer.o
  CC      aarch64-softmmu/hw/timer/pxa2xx_timer.o
  CC      aarch64-softmmu/hw/timer/digic-timer.o
  CC      aarch64-softmmu/hw/timer/allwinner-a10-pit.o
  CC      aarch64-softmmu/hw/usb/tusb6010.o
  CC      aarch64-softmmu/hw/virtio/virtio.o
  CC      aarch64-softmmu/hw/virtio/virtio-balloon.o
  CC      aarch64-softmmu/hw/virtio/virtio-crypto.o
  CC      aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      aarch64-softmmu/hw/arm/boot.o
  CC      aarch64-softmmu/hw/arm/collie.o
  CC      aarch64-softmmu/hw/arm/exynos4_boards.o
  CC      aarch64-softmmu/hw/arm/gumstix.o
  CC      aarch64-softmmu/hw/arm/highbank.o
  CC      aarch64-softmmu/hw/arm/digic_boards.o
  CC      aarch64-softmmu/hw/arm/integratorcp.o
  CC      aarch64-softmmu/hw/arm/mainstone.o
  CC      aarch64-softmmu/hw/arm/musicpal.o
  CC      aarch64-softmmu/hw/arm/nseries.o
  CC      aarch64-softmmu/hw/arm/omap_sx1.o
  CC      aarch64-softmmu/hw/arm/palm.o
  CC      aarch64-softmmu/hw/arm/realview.o
  CC      aarch64-softmmu/hw/arm/spitz.o
  CC      aarch64-softmmu/hw/arm/stellaris.o
  CC      aarch64-softmmu/hw/arm/tosa.o
  CC      aarch64-softmmu/hw/arm/versatilepb.o
  CC      aarch64-softmmu/hw/arm/vexpress.o
  CC      aarch64-softmmu/hw/arm/virt.o
  CC      aarch64-softmmu/hw/arm/xilinx_zynq.o
  CC      aarch64-softmmu/hw/arm/z2.o
  CC      aarch64-softmmu/hw/arm/virt-acpi-build.o
  CC      aarch64-softmmu/hw/arm/netduino2.o
  CC      aarch64-softmmu/hw/arm/sysbus-fdt.o
  CC      aarch64-softmmu/hw/arm/armv7m.o
  CC      aarch64-softmmu/hw/arm/exynos4210.o
  CC      aarch64-softmmu/hw/arm/pxa2xx.o
  CC      aarch64-softmmu/hw/arm/pxa2xx_gpio.o
  CC      aarch64-softmmu/hw/arm/pxa2xx_pic.o
  CC      aarch64-softmmu/hw/arm/digic.o
  CC      aarch64-softmmu/hw/arm/omap1.o
  CC      aarch64-softmmu/hw/arm/omap2.o
  LINK    x86_64-softmmu/qemu-system-x86_64w.exe
  CC      aarch64-softmmu/hw/arm/strongarm.o
  CC      aarch64-softmmu/hw/arm/allwinner-a10.o
  CC      aarch64-softmmu/hw/arm/cubieboard.o
  CC      aarch64-softmmu/hw/arm/bcm2835_peripherals.o
  CC      aarch64-softmmu/hw/arm/bcm2836.o
  CC      aarch64-softmmu/hw/arm/raspi.o
  CC      aarch64-softmmu/hw/arm/stm32f205_soc.o
  CC      aarch64-softmmu/hw/arm/xlnx-zynqmp.o
  CC      aarch64-softmmu/hw/arm/fsl-imx31.o
  CC      aarch64-softmmu/hw/arm/kzm.o
  CC      aarch64-softmmu/hw/arm/xlnx-ep108.o
  CC      aarch64-softmmu/hw/arm/fsl-imx25.o
  CC      aarch64-softmmu/hw/arm/imx25_pdk.o
  CC      aarch64-softmmu/hw/arm/fsl-imx6.o
  GEN     x86_64-softmmu/qemu-system-x86_64.exe
  CC      aarch64-softmmu/hw/arm/sabrelite.o
  CC      aarch64-softmmu/hw/arm/aspeed_soc.o
  CC      aarch64-softmmu/hw/arm/aspeed.o
  CC      aarch64-softmmu/target/arm/arm-semi.o
  CC      aarch64-softmmu/target/arm/machine.o
  CC      aarch64-softmmu/target/arm/psci.o
  CC      aarch64-softmmu/target/arm/arch_dump.o
  CC      aarch64-softmmu/target/arm/monitor.o
  CC      aarch64-softmmu/target/arm/kvm-stub.o
  CC      aarch64-softmmu/target/arm/translate.o
  CC      aarch64-softmmu/target/arm/op_helper.o
  CC      aarch64-softmmu/target/arm/helper.o
  CC      aarch64-softmmu/target/arm/cpu.o
  CC      aarch64-softmmu/target/arm/neon_helper.o
  CC      aarch64-softmmu/target/arm/iwmmxt_helper.o
  CC      aarch64-softmmu/target/arm/gdbstub.o
  CC      aarch64-softmmu/target/arm/cpu64.o
  CC      aarch64-softmmu/target/arm/translate-a64.o
  CC      aarch64-softmmu/target/arm/helper-a64.o
  CC      aarch64-softmmu/target/arm/gdbstub64.o
  CC      aarch64-softmmu/target/arm/crypto_helper.o
  CC      aarch64-softmmu/target/arm/arm-powerctl.o
  GEN     trace/generated-helpers.c
  CC      aarch64-softmmu/trace/control-target.o
  CC      aarch64-softmmu/gdbstub-xml.o
  CC      aarch64-softmmu/trace/generated-helpers.o
  LINK    aarch64-softmmu/qemu-system-aarch64w.exe
  GEN     aarch64-softmmu/qemu-system-aarch64.exe
rm -f *.timestamp
make -C tests/tcg clean
make[1]: Entering directory '/var/tmp/qemu-build/tests/tcg'
rm -f *.timestamp
rm -f *~ *.o test-i386.out test-i386.ref \
           test-x86_64.log test-x86_64.ref qruncom test_path hello-i386 linux-test testthread sha1-i386 test-i386 test-i386-fprem test-mmap  run-test-x86_64
make[1]: Leaving directory '/var/tmp/qemu-build/tests/tcg'
rm -rf tests/check-qdict.exe tests/test-char.exe tests/check-qfloat.exe tests/check-qint.exe tests/check-qstring.exe tests/check-qlist.exe tests/check-qnull.exe tests/check-qjson.exe tests/test-qobject-output-visitor.exe tests/test-clone-visitor.exe tests/test-qobject-input-visitor.exe tests/test-qmp-commands.exe tests/test-string-input-visitor.exe tests/test-string-output-visitor.exe tests/test-qmp-event.exe tests/test-opts-visitor.exe tests/test-coroutine.exe tests/test-visitor-serialization.exe tests/test-iov.exe tests/test-aio.exe tests/test-aio-multithread.exe tests/test-throttle.exe tests/test-thread-pool.exe tests/test-hbitmap.exe tests/test-blockjob.exe tests/test-blockjob-txn.exe tests/test-x86-cpuid.exe tests/test-xbzrle.exe tests/test-cutils.exe tests/test-shift128.exe tests/test-mul64.exe tests/test-int128.exe tests/rcutorture.exe tests/test-rcu-list.exe tests/test-qdist.exe tests/test-qht.exe tests/test-qht-par.exe tests/test-bitops.exe tests/test-bitcnt.exe tests/test-qdev-global-props.exe tests/check-qom-interface.exe tests/check-qom-proplist.exe tests/test-qemu-opts.exe tests/test-keyval.exe tests/test-write-threshold.exe tests/test-crypto-hash.exe tests/test-crypto-hmac.exe tests/test-crypto-cipher.exe tests/test-crypto-secret.exe tests/test-crypto-tlscredsx509.exe tests/test-crypto-tlssession.exe tests/test-timed-average.exe tests/test-io-task.exe tests/test-io-channel-socket.exe tests/test-io-channel-file.exe tests/test-io-channel-tls.exe tests/test-io-channel-command.exe tests/test-io-channel-buffer.exe tests/test-base64.exe tests/test-crypto-pbkdf.exe tests/test-crypto-ivgen.exe tests/test-crypto-afsplit.exe tests/test-crypto-xts.exe tests/test-crypto-block.exe tests/test-logging.exe tests/test-replication.exe tests/test-bufferiszero.exe tests/test-uuid.exe tests/ptimer-test.exe tests/test-qapi-util.exe tests/*.o 
rm -rf tests/ac97-test.exe tests/ahci-test.exe tests/bios-tables-test.exe tests/boot-order-test.exe tests/boot-serial-test.exe tests/device-introspect-test.exe tests/display-vga-test.exe tests/drive_del-test.exe tests/ds1338-test.exe tests/e1000-test.exe tests/e1000e-test.exe tests/eepro100-test.exe tests/endianness-test.exe tests/es1370-test.exe tests/fdc-test.exe tests/fw_cfg-test.exe tests/hd-geo-test.exe tests/i440fx-test.exe tests/i82801b11-test.exe tests/ide-test.exe tests/intel-hda-test.exe tests/ioh3420-test.exe tests/ipmi-bt-test.exe tests/ipmi-kcs-test.exe tests/ipoctal232-test.exe tests/m25p80-test.exe tests/ne2000-test.exe tests/nvme-test.exe tests/pc-cpu-test.exe tests/pcnet-test.exe tests/pnv-xscom-test.exe tests/postcopy-test.exe tests/prom-env-test.exe tests/pvpanic-test.exe tests/pxe-test.exe tests/q35-test.exe tests/qmp-test.exe tests/qom-test.exe tests/rtas-test.exe tests/rtc-test.exe tests/rtl8139-test.exe tests/spapr-phb-test.exe tests/tco-test.exe tests/test-arm-mptimer.exe tests/test-filter-mirror.exe tests/test-filter-redirector.exe tests/test-hmp.exe tests/test-netfilter.exe tests/test-x86-cpuid-compat.exe tests/tmp105-test.exe tests/tpci200-test.exe tests/usb-hcd-ehci-test.exe tests/usb-hcd-ohci-test.exe tests/usb-hcd-uhci-test.exe tests/usb-hcd-xhci-test.exe tests/virtio-balloon-test.exe tests/virtio-blk-test.exe tests/virtio-console-test.exe tests/virtio-net-test.exe tests/virtio-rng-test.exe tests/virtio-scsi-test.exe tests/virtio-serial-test.exe tests/vmxnet3-test.exe tests/wdt_ib700-test.exe
rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
rm -f qemu-options.def
rm -f *.msi
find . \( -name '*.so' -o -name '*.dll' -o -name '*.mo' -o -name '*.[oda]' \) -type f -exec rm {} +
rm -f qemu-ga qemu-img.exe qemu-io.exe  qemu-ga TAGS cscope.* *.pod *~ */*~
rm -f fsdev/*.pod
rm -f qemu-img-cmds.h
rm -f ui/shader/*-vert.h ui/shader/*-frag.h
rm -f trace/generated-tracers-dtrace.dtrace*
rm -f trace/generated-tracers-dtrace.h*
rm -f qemu-version.h qemu-version.h-timestamp config-host.h config-host.h-timestamp qemu-options.def qemu-options.def-timestamp qmp-commands.h qmp-commands.h-timestamp qapi-types.h qapi-types.h-timestamp qapi-visit.h qapi-visit.h-timestamp qapi-event.h qapi-event.h-timestamp qmp-marshal.c qmp-marshal.c-timestamp qapi-types.c qapi-types.c-timestamp qapi-visit.c qapi-visit.c-timestamp qapi-event.c qapi-event.c-timestamp qmp-introspect.h qmp-introspect.h-timestamp qmp-introspect.c qmp-introspect.c-timestamp trace/generated-tcg-tracers.h trace/generated-tcg-tracers.h-timestamp trace/generated-helpers-wrappers.h trace/generated-helpers-wrappers.h-timestamp trace/generated-helpers.h trace/generated-helpers.h-timestamp trace/generated-helpers.c trace/generated-helpers.c-timestamp module_block.h module_block.h-timestamp trace-root.h trace-root.h-timestamp util/trace.h util/trace.h-timestamp crypto/trace.h crypto/trace.h-timestamp io/trace.h io/trace.h-timestamp migration/trace.h migration/trace.h-timestamp block/trace.h block/trace.h-timestamp backends/trace.h backends/trace.h-timestamp hw/block/trace.h hw/block/trace.h-timestamp hw/block/dataplane/trace.h hw/block/dataplane/trace.h-timestamp hw/char/trace.h hw/char/trace.h-timestamp hw/intc/trace.h hw/intc/trace.h-timestamp hw/net/trace.h hw/net/trace.h-timestamp hw/virtio/trace.h hw/virtio/trace.h-timestamp hw/audio/trace.h hw/audio/trace.h-timestamp hw/misc/trace.h hw/misc/trace.h-timestamp hw/usb/trace.h hw/usb/trace.h-timestamp hw/scsi/trace.h hw/scsi/trace.h-timestamp hw/nvram/trace.h hw/nvram/trace.h-timestamp hw/display/trace.h hw/display/trace.h-timestamp hw/input/trace.h hw/input/trace.h-timestamp hw/timer/trace.h hw/timer/trace.h-timestamp hw/dma/trace.h hw/dma/trace.h-timestamp hw/sparc/trace.h hw/sparc/trace.h-timestamp hw/sd/trace.h hw/sd/trace.h-timestamp hw/isa/trace.h hw/isa/trace.h-timestamp hw/mem/trace.h hw/mem/trace.h-timestamp hw/i386/trace.h hw/i386/trace.h-timestamp hw/i386/xen/trace.h hw/i386/xen/trace.h-timestamp hw/9pfs/trace.h hw/9pfs/trace.h-timestamp hw/ppc/trace.h hw/ppc/trace.h-timestamp hw/pci/trace.h hw/pci/trace.h-timestamp hw/s390x/trace.h hw/s390x/trace.h-timestamp hw/vfio/trace.h hw/vfio/trace.h-timestamp hw/acpi/trace.h hw/acpi/trace.h-timestamp hw/arm/trace.h hw/arm/trace.h-timestamp hw/alpha/trace.h hw/alpha/trace.h-timestamp hw/xen/trace.h hw/xen/trace.h-timestamp ui/trace.h ui/trace.h-timestamp audio/trace.h audio/trace.h-timestamp net/trace.h net/trace.h-timestamp target/arm/trace.h target/arm/trace.h-timestamp target/i386/trace.h target/i386/trace.h-timestamp target/mips/trace.h target/mips/trace.h-timestamp target/sparc/trace.h target/sparc/trace.h-timestamp target/s390x/trace.h target/s390x/trace.h-timestamp target/ppc/trace.h target/ppc/trace.h-timestamp qom/trace.h qom/trace.h-timestamp linux-user/trace.h linux-user/trace.h-timestamp qapi/trace.h qapi/trace.h-timestamp trace-root.c trace-root.c-timestamp util/trace.c util/trace.c-timestamp crypto/trace.c crypto/trace.c-timestamp io/trace.c io/trace.c-timestamp migration/trace.c migration/trace.c-timestamp block/trace.c block/trace.c-timestamp backends/trace.c backends/trace.c-timestamp hw/block/trace.c hw/block/trace.c-timestamp hw/block/dataplane/trace.c hw/block/dataplane/trace.c-timestamp hw/char/trace.c hw/char/trace.c-timestamp hw/intc/trace.c hw/intc/trace.c-timestamp hw/net/trace.c hw/net/trace.c-timestamp hw/virtio/trace.c hw/virtio/trace.c-timestamp hw/audio/trace.c hw/audio/trace.c-timestamp hw/misc/trace.c hw/misc/trace.c-timestamp hw/usb/trace.c hw/usb/trace.c-timestamp hw/scsi/trace.c hw/scsi/trace.c-timestamp hw/nvram/trace.c hw/nvram/trace.c-timestamp hw/display/trace.c hw/display/trace.c-timestamp hw/input/trace.c hw/input/trace.c-timestamp hw/timer/trace.c hw/timer/trace.c-timestamp hw/dma/trace.c hw/dma/trace.c-timestamp hw/sparc/trace.c hw/sparc/trace.c-timestamp hw/sd/trace.c hw/sd/trace.c-timestamp hw/isa/trace.c hw/isa/trace.c-timestamp hw/mem/trace.c hw/mem/trace.c-timestamp hw/i386/trace.c hw/i386/trace.c-timestamp hw/i386/xen/trace.c hw/i386/xen/trace.c-timestamp hw/9pfs/trace.c hw/9pfs/trace.c-timestamp hw/ppc/trace.c hw/ppc/trace.c-timestamp hw/pci/trace.c hw/pci/trace.c-timestamp hw/s390x/trace.c hw/s390x/trace.c-timestamp hw/vfio/trace.c hw/vfio/trace.c-timestamp hw/acpi/trace.c hw/acpi/trace.c-timestamp hw/arm/trace.c hw/arm/trace.c-timestamp hw/alpha/trace.c hw/alpha/trace.c-timestamp hw/xen/trace.c hw/xen/trace.c-timestamp ui/trace.c ui/trace.c-timestamp audio/trace.c audio/trace.c-timestamp net/trace.c net/trace.c-timestamp target/arm/trace.c target/arm/trace.c-timestamp target/i386/trace.c target/i386/trace.c-timestamp target/mips/trace.c target/mips/trace.c-timestamp target/sparc/trace.c target/sparc/trace.c-timestamp target/s390x/trace.c target/s390x/trace.c-timestamp target/ppc/trace.c target/ppc/trace.c-timestamp qom/trace.c qom/trace.c-timestamp linux-user/trace.c linux-user/trace.c-timestamp qapi/trace.c qapi/trace.c-timestamp /var/tmp/qemu-build/trace-events-all /var/tmp/qemu-build/trace-events-all-timestamp tests/test-qapi-types.h tests/test-qapi-types.h-timestamp tests/test-qapi-visit.h tests/test-qapi-visit.h-timestamp tests/test-qmp-commands.h tests/test-qmp-commands.h-timestamp tests/test-qapi-event.h tests/test-qapi-event.h-timestamp tests/test-qmp-introspect.h tests/test-qmp-introspect.h-timestamp
rm -rf qapi-generated
rm -rf qga/qapi-generated
for d in x86_64-softmmu aarch64-softmmu pc-bios/optionrom; do \
if test -d $d; then make -C $d clean || exit 1; fi; \
rm -f $d/qemu-options.def; \
        done
make[1]: Entering directory '/var/tmp/qemu-build/x86_64-softmmu'
rm -f *.timestamp
rm -f *.a *~ qemu-system-x86_64.exe qemu-system-x86_64w.exe
rm -f 
rm -f hmp-commands.h gdbstub-xml.c
make[1]: Leaving directory '/var/tmp/qemu-build/x86_64-softmmu'
make[1]: Entering directory '/var/tmp/qemu-build/aarch64-softmmu'
rm -f *.timestamp
rm -f *.a *~ qemu-system-aarch64.exe qemu-system-aarch64w.exe
rm -f 
rm -f hmp-commands.h gdbstub-xml.c
make[1]: Leaving directory '/var/tmp/qemu-build/aarch64-softmmu'
make[1]: Entering directory '/var/tmp/qemu-build/pc-bios/optionrom'
rm -f *.timestamp
rm -f *.o *.d *.raw *.img *.bin *~
make[1]: Leaving directory '/var/tmp/qemu-build/pc-bios/optionrom'
rm -f  x86_64-softmmu/config-devices.mak  aarch64-softmmu/config-devices.mak config-all-devices.mak
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install --cross-prefix=i686-w64-mingw32- --enable-trace-backends=simple --enable-debug --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=1.2 --with-gtkabi=2.0
Install prefix    /var/tmp/qemu-build/install
BIOS directory    /var/tmp/qemu-build/install
binary directory  /var/tmp/qemu-build/install
library directory /var/tmp/qemu-build/install/lib
module directory  /var/tmp/qemu-build/install/lib
libexec directory /var/tmp/qemu-build/install/libexec
include directory /var/tmp/qemu-build/install/include
config directory  /var/tmp/qemu-build/install
local state directory   queried at runtime
Windows SDK       no
Source path       /tmp/qemu-test/src
C compiler        i686-w64-mingw32-gcc
Host C compiler   cc
C++ compiler      i686-w64-mingw32-g++
Objective-C compiler clang
ARFLAGS           rv
CFLAGS            -g 
QEMU_CFLAGS       -I/usr/i686-w64-mingw32/sys-root/mingw/include/pixman-1  -I$(SRC_PATH)/dtc/libfdt -Werror -mms-bitfields -I/usr/i686-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/i686-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/i686-w64-mingw32/sys-root/mingw/include  -m32 -mthreads -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_MEAN -DWINVER=0x501 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/i686-w64-mingw32/sys-root/mingw/include -I/usr/i686-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/i686-w64-mingw32/sys-root/mingw/include  -I/usr/i686-w64-mingw32/sys-root/mingw/include   -I/usr/i686-w64-mingw32/sys-root/mingw/include/libpng16 
LDFLAGS           -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m32 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          i386
host big endian   no
target list       x86_64-softmmu aarch64-softmmu
tcg debug enabled yes
gprof enabled     no
sparse enabled    no
strip binaries    no
profiler          no
static build      no
pixman            system
SDL support       yes (1.2.15)
GTK support       yes (2.24.31)
GTK GL support    no
VTE support       no 
TLS priority      NORMAL
GNUTLS support    yes
GNUTLS rnd        yes
libgcrypt         no
libgcrypt kdf     no
nettle            yes (3.3)
nettle kdf        yes
libtasn1          yes
curses support    no
virgl support     no
curl support      yes
mingw32 support   yes
Audio drivers     dsound
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC SASL support  no
VNC JPEG support  yes
VNC PNG support   yes
xen support       no
brlapi support    no
bluez  support    no
Documentation     no
PIE               no
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support no
Install blobs     yes
KVM support       no
HAX support       yes
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    no
fdatasync         no
madvise           no
posix_madvise     no
libcap-ng support no
vhost-net support no
vhost-scsi support no
vhost-vsock support no
Trace backends    simple
Trace output file trace-<pid>
spice support     no 
rbd support       no
xfsctl support    no
smartcard support no
libusb            no
usb net redir     no
OpenGL support    no
OpenGL dmabufs    no
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
QGA w32 disk info yes
QGA MSI support   no
seccomp support   no
coroutine backend win32
coroutine pool    yes
debug stack usage no
GlusterFS support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   yes
TPM passthrough   no
QOM debugging     yes
lzo support       no
snappy support    no
bzip2 support     yes
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization yes
replication support yes
VxHS block device no
  GEN     x86_64-softmmu/config-devices.mak.tmp
  GEN     qemu-options.def
  GEN     aarch64-softmmu/config-devices.mak.tmp
  GEN     qmp-commands.h
  GEN     qapi-types.h
  GEN     config-host.h
  GEN     qapi-visit.h
	 DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
  GEN     x86_64-softmmu/config-devices.mak
	 DEP /tmp/qemu-test/src/dtc/tests/trees.S
  GEN     qapi-event.h
  GEN     aarch64-softmmu/config-devices.mak
  GEN     qapi-types.c
  GEN     qmp-marshal.c
	 DEP /tmp/qemu-test/src/dtc/tests/testutils.c
  GEN     qapi-visit.c
	 DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
	 DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
	 DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/check_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
	 DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
	 DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
	 DEP /tmp/qemu-test/src/dtc/tests/incbin.c
	 DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
	 DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
	 DEP /tmp/qemu-test/src/dtc/tests/path-references.c
	 DEP /tmp/qemu-test/src/dtc/tests/references.c
	 DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
  GEN     qapi-event.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
	 DEP /tmp/qemu-test/src/dtc/tests/del_node.c
  GEN     qmp-introspect.h
	 DEP /tmp/qemu-test/src/dtc/tests/del_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop.c
  GEN     qmp-introspect.c
	 DEP /tmp/qemu-test/src/dtc/tests/set_name.c
	 DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
	 DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
  GEN     trace/generated-tcg-tracers.h
	 DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
	 DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
  GEN     trace/generated-helpers-wrappers.h
	 DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
  GEN     trace/generated-helpers.h
	 DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
  GEN     trace/generated-helpers.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
  GEN     module_block.h
	 DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
	 DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
	 DEP /tmp/qemu-test/src/dtc/tests/notfound.c
  GEN     tests/test-qapi-types.h
	 DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
  GEN     tests/test-qapi-visit.h
	 DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
  GEN     tests/test-qmp-commands.h
	 DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
  GEN     tests/test-qapi-event.h
	 DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
	 DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
  GEN     tests/test-qmp-introspect.h
  GEN     trace-root.h
	 DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
  GEN     util/trace.h
	 DEP /tmp/qemu-test/src/dtc/tests/get_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
  GEN     crypto/trace.h
	 DEP /tmp/qemu-test/src/dtc/tests/getprop.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_name.c
  GEN     io/trace.h
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
  GEN     migration/trace.h
	 DEP /tmp/qemu-test/src/dtc/tests/find_property.c
  GEN     block/trace.h
	 DEP /tmp/qemu-test/src/dtc/tests/root_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
  GEN     backends/trace.h
  GEN     hw/block/trace.h
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
  GEN     hw/block/dataplane/trace.h
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
  GEN     hw/char/trace.h
  GEN     hw/intc/trace.h
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
  GEN     hw/net/trace.h
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
  GEN     hw/virtio/trace.h
	 DEP /tmp/qemu-test/src/dtc/util.c
	 DEP /tmp/qemu-test/src/dtc/fdtput.c
	 DEP /tmp/qemu-test/src/dtc/fdtget.c
  GEN     hw/audio/trace.h
	 DEP /tmp/qemu-test/src/dtc/fdtdump.c
  GEN     hw/misc/trace.h
	 DEP convert-dtsv0-lexer.lex.c
  GEN     hw/usb/trace.h
  GEN     hw/scsi/trace.h
	 DEP /tmp/qemu-test/src/dtc/srcpos.c
	 DEP dtc-parser.tab.c
  GEN     hw/nvram/trace.h
	 DEP dtc-lexer.lex.c
	 DEP /tmp/qemu-test/src/dtc/treesource.c
	 DEP /tmp/qemu-test/src/dtc/livetree.c
  GEN     hw/display/trace.h
	 DEP /tmp/qemu-test/src/dtc/fstree.c
  GEN     hw/input/trace.h
	 DEP /tmp/qemu-test/src/dtc/dtc.c
	 DEP /tmp/qemu-test/src/dtc/data.c
	 DEP /tmp/qemu-test/src/dtc/flattree.c
  GEN     hw/timer/trace.h
	 DEP /tmp/qemu-test/src/dtc/checks.c
  GEN     hw/dma/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/xen/trace.h
  GEN     ui/trace.h
  GEN     audio/trace.h
  GEN     net/trace.h
  GEN     target/arm/trace.h
  GEN     target/i386/trace.h
  GEN     target/mips/trace.h
  GEN     target/sparc/trace.h
  GEN     target/s390x/trace.h
  GEN     target/ppc/trace.h
  GEN     qom/trace.h
  GEN     linux-user/trace.h
  GEN     qapi/trace.h
  GEN     trace-root.c
  GEN     util/trace.c
  GEN     crypto/trace.c
  GEN     io/trace.c
  GEN     migration/trace.c
  GEN     block/trace.c
  GEN     backends/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/net/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/display/trace.c
  GEN     hw/input/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/ppc/trace.c
	 CC libfdt/fdt_ro.o
	 CC libfdt/fdt.o
	 CC libfdt/fdt_wip.o
  GEN     hw/pci/trace.c
	 CC libfdt/fdt_sw.o
	 CC libfdt/fdt_strerror.o
	 CC libfdt/fdt_rw.o
  GEN     hw/s390x/trace.c
	 CC libfdt/fdt_empty_tree.o
	 CC libfdt/fdt_addresses.o
	 CC libfdt/fdt_overlay.o
  GEN     hw/vfio/trace.c
	 AR libfdt/libfdt.a
  GEN     hw/acpi/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/xen/trace.c
  GEN     ui/trace.c
  GEN     audio/trace.c
  GEN     net/trace.c
  GEN     target/arm/trace.c
i686-w64-mingw32-ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
  GEN     target/i386/trace.c
  GEN     target/mips/trace.c
  GEN     target/sparc/trace.c
  GEN     target/s390x/trace.c
  GEN     target/ppc/trace.c
  GEN     qom/trace.c
  GEN     linux-user/trace.c
  GEN     qapi/trace.c
  GEN     config-all-devices.mak
  RC      version.o
  GEN     qga/qapi-generated/qga-qapi-types.h
  GEN     qga/qapi-generated/qga-qapi-visit.h
  GEN     qga/qapi-generated/qga-qmp-commands.h
  CC      qmp-introspect.o
  CC      qapi-types.o
  GEN     qga/qapi-generated/qga-qapi-types.c
  GEN     qga/qapi-generated/qga-qapi-visit.c
  GEN     qga/qapi-generated/qga-qmp-marshal.c
  CC      qapi-event.o
  CC      qapi-visit.o
  CC      qapi/qapi-visit-core.o
  CC      qapi/qapi-dealloc-visitor.o
  CC      qapi/qobject-input-visitor.o
  CC      qapi/qobject-output-visitor.o
  CC      qapi/qmp-registry.o
  CC      qapi/qmp-dispatch.o
  CC      qapi/opts-visitor.o
  CC      qapi/qapi-clone-visitor.o
  CC      qapi/qmp-event.o
  CC      qapi/string-input-visitor.o
  CC      qapi/string-output-visitor.o
  CC      qapi/qapi-util.o
  CC      qobject/qnull.o
  CC      qobject/qint.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qstring.o
  CC      qobject/qfloat.o
  CC      qobject/qbool.o
  CC      qobject/qjson.o
  CC      qobject/json-lexer.o
  CC      qobject/json-streamer.o
  CC      qobject/json-parser.o
  CC      trace/simple.o
  CC      trace/control.o
  CC      qobject/qobject.o
  CC      trace/qmp.o
  CC      util/osdep.o
  CC      util/cutils.o
  CC      util/unicode.o
  CC      util/qemu-timer-common.o
  CC      util/lockcnt.o
  CC      util/aiocb.o
  CC      util/bufferiszero.o
  CC      util/async.o
  CC      util/thread-pool.o
  CC      util/qemu-timer.o
  CC      util/main-loop.o
  CC      util/iohandler.o
  CC      util/aio-win32.o
  CC      util/event_notifier-win32.o
  CC      util/oslib-win32.o
  CC      util/qemu-thread-win32.o
  CC      util/envlist.o
  CC      util/host-utils.o
  CC      util/module.o
  CC      util/path.o
  CC      util/bitmap.o
  CC      util/bitops.o
  CC      util/hbitmap.o
  CC      util/fifo8.o
  CC      util/acl.o
  CC      util/qemu-error.o
  CC      util/error.o
  CC      util/id.o
  CC      util/iov.o
  CC      util/qemu-config.o
  CC      util/qemu-sockets.o
  CC      util/uri.o
  CC      util/notify.o
  CC      util/qemu-option.o
  CC      util/qemu-progress.o
  CC      util/keyval.o
  CC      util/hexdump.o
  CC      util/crc32c.o
  CC      util/uuid.o
  CC      util/throttle.o
  CC      util/getauxval.o
  CC      util/readline.o
  CC      util/rcu.o
  CC      util/qemu-coroutine.o
  CC      util/qemu-coroutine-lock.o
  CC      util/qemu-coroutine-io.o
  CC      util/coroutine-win32.o
  CC      util/qemu-coroutine-sleep.o
  CC      util/buffer.o
  CC      util/timed-average.o
  CC      util/base64.o
  CC      util/log.o
  CC      util/qht.o
  CC      util/qdist.o
  CC      util/range.o
  CC      util/systemd.o
  CC      trace-root.o
  CC      util/trace.o
  CC      crypto/trace.o
  CC      io/trace.o
  CC      migration/trace.o
  CC      block/trace.o
  CC      backends/trace.o
  CC      hw/block/trace.o
  CC      hw/block/dataplane/trace.o
  CC      hw/char/trace.o
  CC      hw/intc/trace.o
  CC      hw/net/trace.o
  CC      hw/virtio/trace.o
  CC      hw/misc/trace.o
  CC      hw/audio/trace.o
  CC      hw/usb/trace.o
  CC      hw/nvram/trace.o
  CC      hw/display/trace.o
  CC      hw/scsi/trace.o
  CC      hw/input/trace.o
  CC      hw/timer/trace.o
  CC      hw/dma/trace.o
  CC      hw/sparc/trace.o
  CC      hw/sd/trace.o
  CC      hw/isa/trace.o
  CC      hw/mem/trace.o
  CC      hw/i386/trace.o
  CC      hw/i386/xen/trace.o
  CC      hw/9pfs/trace.o
  CC      hw/ppc/trace.o
  CC      hw/pci/trace.o
  CC      hw/s390x/trace.o
  CC      hw/vfio/trace.o
  CC      hw/acpi/trace.o
  CC      hw/alpha/trace.o
  CC      hw/arm/trace.o
  CC      hw/xen/trace.o
  CC      ui/trace.o
  CC      audio/trace.o
  CC      net/trace.o
  CC      target/arm/trace.o
  CC      target/i386/trace.o
  CC      target/mips/trace.o
  CC      target/sparc/trace.o
  CC      target/s390x/trace.o
  CC      target/ppc/trace.o
  CC      qom/trace.o
  CC      linux-user/trace.o
  CC      qapi/trace.o
  CC      crypto/pbkdf-stub.o
  CC      stubs/arch-query-cpu-def.o
  CC      stubs/arch-query-cpu-model-expansion.o
  CC      stubs/arch-query-cpu-model-comparison.o
  CC      stubs/arch-query-cpu-model-baseline.o
  CC      stubs/bdrv-next-monitor-owned.o
  CC      stubs/blk-commit-all.o
  CC      stubs/blockdev-close-all-bdrv-states.o
  CC      stubs/clock-warp.o
  CC      stubs/cpu-get-clock.o
  CC      stubs/cpu-get-icount.o
  CC      stubs/dump.o
  CC      stubs/error-printf.o
  CC      stubs/fdset.o
  CC      stubs/gdbstub.o
  CC      stubs/get-vm-name.o
  CC      stubs/iothread.o
  CC      stubs/iothread-lock.o
  CC      stubs/is-daemonized.o
  CC      stubs/machine-init-done.o
  CC      stubs/migr-blocker.o
  CC      stubs/notify-event.o
  CC      stubs/monitor.o
  CC      stubs/qtest.o
  CC      stubs/replay.o
  CC      stubs/runstate-check.o
  CC      stubs/set-fd-handler.o
  CC      stubs/slirp.o
  CC      stubs/sysbus.o
  CC      stubs/trace-control.o
  CC      stubs/uuid.o
  CC      stubs/vm-stop.o
  CC      stubs/vmstate.o
  CC      stubs/fd-register.o
  CC      stubs/qmp_pc_dimm_device_list.o
  CC      stubs/target-monitor-defs.o
  CC      stubs/target-get-monitor-def.o
  CC      stubs/pc_madt_cpu_entry.o
  CC      stubs/xen-common.o
  CC      stubs/vmgenid.o
  CC      stubs/xen-hvm.o
  GEN     qemu-img-cmds.h
  CC      block.o
  CC      blockjob.o
  CC      qemu-io-cmds.o
  CC      replication.o
  CC      block/raw-format.o
  CC      block/qcow.o
  CC      block/vdi.o
  CC      block/vmdk.o
  CC      block/cloop.o
  CC      block/bochs.o
  CC      block/vvfat.o
  CC      block/vpc.o
  CC      block/dmg.o
  CC      block/qcow2.o
  CC      block/qcow2-refcount.o
  CC      block/qcow2-cluster.o
  CC      block/qcow2-snapshot.o
  CC      block/qed.o
  CC      block/qed-gencb.o
  CC      block/qcow2-cache.o
  CC      block/qed-l2-cache.o
  CC      block/qed-table.o
  CC      block/qed-cluster.o
  CC      block/qed-check.o
  CC      block/vhdx.o
  CC      block/vhdx-endian.o
  CC      block/vhdx-log.o
  CC      block/quorum.o
  CC      block/parallels.o
  CC      block/blkdebug.o
  CC      block/blkverify.o
  CC      block/blkreplay.o
  CC      block/block-backend.o
  CC      block/snapshot.o
  CC      block/qapi.o
  CC      block/file-win32.o
  CC      block/win32-aio.o
  CC      block/null.o
  CC      block/commit.o
  CC      block/mirror.o
  CC      block/io.o
  CC      block/throttle-groups.o
  CC      block/nbd.o
  CC      block/nbd-client.o
  CC      block/sheepdog.o
  CC      block/dirty-bitmap.o
  CC      block/accounting.o
  CC      block/write-threshold.o
  CC      block/backup.o
  CC      block/replication.o
  CC      block/crypto.o
  CC      nbd/server.o
  CC      nbd/client.o
  CC      nbd/common.o
  CC      block/curl.o
  CC      block/ssh.o
  CC      block/dmg-bz2.o
  CC      crypto/init.o
  CC      crypto/hash.o
  CC      crypto/hash-nettle.o
  CC      crypto/hmac.o
  CC      crypto/hmac-nettle.o
  CC      crypto/aes.o
  CC      crypto/desrfb.o
  CC      crypto/cipher.o
  CC      crypto/tlscreds.o
  CC      crypto/tlscredsanon.o
  CC      crypto/tlscredsx509.o
  CC      crypto/tlssession.o
  CC      crypto/secret.o
  CC      crypto/random-gnutls.o
  CC      crypto/pbkdf.o
  CC      crypto/ivgen.o
  CC      crypto/pbkdf-nettle.o
  CC      crypto/ivgen-essiv.o
  CC      crypto/ivgen-plain.o
  CC      crypto/ivgen-plain64.o
  CC      crypto/afsplit.o
  CC      crypto/xts.o
  CC      crypto/block.o
  CC      crypto/block-luks.o
  CC      crypto/block-qcow.o
  CC      io/channel.o
  CC      io/channel-buffer.o
  CC      io/channel-command.o
  CC      io/channel-file.o
  CC      io/channel-socket.o
  CC      io/channel-tls.o
  CC      io/channel-watch.o
  CC      io/channel-websock.o
  CC      io/channel-util.o
  CC      io/dns-resolver.o
  CC      io/task.o
  CC      qom/object.o
  CC      qom/container.o
  CC      qom/qom-qobject.o
  CC      qom/object_interfaces.o
  CC      blockdev.o
  CC      qemu-io.o
  CC      blockdev-nbd.o
  CC      qdev-monitor.o
  CC      iothread.o
  CC      device-hotplug.o
  CC      page_cache.o
  CC      os-win32.o
  CC      accel.o
  CC      bt-vhci.o
  CC      bt-host.o
  CC      dma-helpers.o
  CC      vl.o
  CC      tpm.o
  CC      device_tree.o
  CC      qmp-marshal.o
  CC      qmp.o
  CC      hmp.o
  CC      audio/audio.o
  CC      cpus-common.o
  CC      audio/wavaudio.o
  CC      audio/noaudio.o
  CC      audio/mixeng.o
  CC      audio/sdlaudio.o
  CC      audio/dsoundaudio.o
  CC      audio/audio_win_int.o
  CC      audio/wavcapture.o
  CC      backends/rng-egd.o
  CC      backends/rng.o
  CC      backends/msmouse.o
  CC      backends/wctablet.o
  CC      backends/testdev.o
  CC      backends/tpm.o
  CC      backends/hostmem.o
  CC      backends/hostmem-ram.o
  CC      backends/cryptodev.o
  CC      backends/cryptodev-builtin.o
  CC      block/stream.o
  CC      disas/arm.o
  CXX     disas/arm-a64.o
  CC      disas/i386.o
  CXX     disas/libvixl/vixl/utils.o
  CXX     disas/libvixl/vixl/compiler-intrinsics.o
  CXX     disas/libvixl/vixl/a64/instructions-a64.o
  CXX     disas/libvixl/vixl/a64/decoder-a64.o
  CXX     disas/libvixl/vixl/a64/disasm-a64.o
  CC      hw/acpi/core.o
  CC      hw/acpi/piix4.o
  CC      hw/acpi/pcihp.o
  CC      hw/acpi/ich9.o
  CC      hw/acpi/tco.o
  CC      hw/acpi/cpu_hotplug.o
  CC      hw/acpi/memory_hotplug.o
  CC      hw/acpi/cpu.o
  CC      hw/acpi/nvdimm.o
  CC      hw/acpi/vmgenid.o
  CC      hw/acpi/acpi_interface.o
  CC      hw/acpi/bios-linker-loader.o
  CC      hw/acpi/ipmi.o
  CC      hw/acpi/aml-build.o
  CC      hw/acpi/acpi-stub.o
  CC      hw/acpi/ipmi-stub.o
  CC      hw/audio/sb16.o
  CC      hw/audio/es1370.o
  CC      hw/audio/ac97.o
  CC      hw/audio/fmopl.o
  CC      hw/audio/adlib.o
  CC      hw/audio/gus.o
  CC      hw/audio/gusemu_hal.o
  CC      hw/audio/gusemu_mixer.o
  CC      hw/audio/cs4231a.o
  CC      hw/audio/intel-hda.o
  CC      hw/audio/hda-codec.o
  CC      hw/audio/pcspk.o
  CC      hw/audio/wm8750.o
  CC      hw/audio/pl041.o
  CC      hw/audio/lm4549.o
  CC      hw/audio/marvell_88w8618.o
  CC      hw/block/block.o
  CC      hw/block/cdrom.o
  CC      hw/block/hd-geometry.o
  CC      hw/block/fdc.o
  CC      hw/block/m25p80.o
  CC      hw/block/nand.o
  CC      hw/block/pflash_cfi01.o
  CC      hw/block/pflash_cfi02.o
  CC      hw/block/ecc.o
  CC      hw/block/onenand.o
  CC      hw/block/nvme.o
  CC      hw/bt/l2cap.o
  CC      hw/bt/sdp.o
  CC      hw/bt/hci.o
  CC      hw/bt/hid.o
  CC      hw/bt/core.o
  CC      hw/bt/hci-csr.o
  CC      hw/char/ipoctal232.o
  CC      hw/char/parallel.o
  CC      hw/char/pl011.o
  CC      hw/char/serial.o
  CC      hw/char/serial-isa.o
  CC      hw/char/serial-pci.o
  CC      hw/char/virtio-console.o
  CC      hw/char/cadence_uart.o
  CC      hw/char/debugcon.o
  CC      hw/char/imx_serial.o
  CC      hw/core/qdev.o
  CC      hw/core/qdev-properties.o
  CC      hw/core/bus.o
  CC      hw/core/reset.o
  CC      hw/core/fw-path-provider.o
  CC      hw/core/irq.o
  CC      hw/core/hotplug.o
  CC      hw/core/ptimer.o
  CC      hw/core/sysbus.o
  CC      hw/core/machine.o
  CC      hw/core/loader.o
  CC      hw/core/qdev-properties-system.o
  CC      hw/core/register.o
  CC      hw/core/or-irq.o
  CC      hw/core/platform-bus.o
  CC      hw/display/ads7846.o
  CC      hw/display/cirrus_vga.o
  CC      hw/display/ssd0303.o
  CC      hw/display/pl110.o
  CC      hw/display/ssd0323.o
  CC      hw/display/vga-pci.o
  CC      hw/display/vga-isa.o
  CC      hw/display/vmware_vga.o
  CC      hw/display/blizzard.o
  CC      hw/display/exynos4210_fimd.o
  CC      hw/display/framebuffer.o
  CC      hw/display/tc6393xb.o
  CC      hw/dma/pl080.o
  CC      hw/dma/pl330.o
  CC      hw/dma/i8257.o
  CC      hw/dma/xlnx-zynq-devcfg.o
  CC      hw/gpio/max7310.o
  CC      hw/gpio/pl061.o
  CC      hw/gpio/zaurus.o
  CC      hw/gpio/gpio_key.o
  CC      hw/i2c/core.o
  CC      hw/i2c/smbus.o
  CC      hw/i2c/smbus_eeprom.o
  CC      hw/i2c/i2c-ddc.o
  CC      hw/i2c/smbus_ich9.o
  CC      hw/i2c/versatile_i2c.o
  CC      hw/i2c/pm_smbus.o
  CC      hw/i2c/bitbang_i2c.o
  CC      hw/i2c/exynos4210_i2c.o
  CC      hw/i2c/imx_i2c.o
  CC      hw/i2c/aspeed_i2c.o
  CC      hw/ide/core.o
  CC      hw/ide/atapi.o
  CC      hw/ide/qdev.o
  CC      hw/ide/pci.o
  CC      hw/ide/isa.o
  CC      hw/ide/piix.o
  CC      hw/ide/microdrive.o
  CC      hw/ide/ahci.o
  CC      hw/ide/ich.o
  CC      hw/input/hid.o
  CC      hw/input/lm832x.o
  CC      hw/input/pckbd.o
  CC      hw/input/pl050.o
  CC      hw/input/ps2.o
  CC      hw/input/stellaris_input.o
  CC      hw/input/tsc2005.o
  CC      hw/input/vmmouse.o
  CC      hw/input/virtio-input.o
  CC      hw/input/virtio-input-hid.o
  CC      hw/intc/i8259_common.o
  CC      hw/intc/i8259.o
  CC      hw/intc/pl190.o
  CC      hw/intc/realview_gic.o
  CC      hw/intc/ioapic_common.o
  CC      hw/intc/imx_avic.o
  CC      hw/intc/arm_gic_common.o
  CC      hw/intc/arm_gic.o
  CC      hw/intc/arm_gicv3_common.o
  CC      hw/intc/arm_gicv2m.o
  CC      hw/intc/arm_gicv3.o
  CC      hw/intc/arm_gicv3_dist.o
  CC      hw/intc/arm_gicv3_redist.o
  CC      hw/intc/arm_gicv3_its_common.o
  CC      hw/intc/intc.o
  CC      hw/ipack/ipack.o
  CC      hw/ipack/tpci200.o
  CC      hw/ipmi/ipmi.o
  CC      hw/ipmi/ipmi_bmc_sim.o
  CC      hw/ipmi/ipmi_bmc_extern.o
  CC      hw/ipmi/isa_ipmi_kcs.o
  CC      hw/ipmi/isa_ipmi_bt.o
  CC      hw/isa/isa-bus.o
  CC      hw/isa/apm.o
  CC      hw/mem/pc-dimm.o
  CC      hw/mem/nvdimm.o
  CC      hw/misc/applesmc.o
  CC      hw/misc/max111x.o
  CC      hw/misc/tmp105.o
  CC      hw/misc/debugexit.o
  CC      hw/misc/sga.o
  CC      hw/misc/pc-testdev.o
  CC      hw/misc/pci-testdev.o
  CC      hw/misc/unimp.o
  CC      hw/misc/arm_l2x0.o
  CC      hw/misc/arm_integrator_debug.o
  CC      hw/misc/a9scu.o
  CC      hw/misc/arm11scu.o
  CC      hw/net/ne2000.o
  CC      hw/net/eepro100.o
  CC      hw/net/pcnet-pci.o
  CC      hw/net/pcnet.o
  CC      hw/net/e1000.o
  CC      hw/net/e1000x_common.o
  CC      hw/net/net_tx_pkt.o
  CC      hw/net/net_rx_pkt.o
  CC      hw/net/e1000e.o
  CC      hw/net/e1000e_core.o
  CC      hw/net/rtl8139.o
  CC      hw/net/vmxnet3.o
  CC      hw/net/smc91c111.o
  CC      hw/net/lan9118.o
  CC      hw/net/ne2000-isa.o
  CC      hw/net/xgmac.o
  CC      hw/net/allwinner_emac.o
  CC      hw/net/imx_fec.o
  CC      hw/net/cadence_gem.o
  CC      hw/net/stellaris_enet.o
  CC      hw/net/ftgmac100.o
  CC      hw/net/rocker/rocker.o
  CC      hw/net/rocker/rocker_fp.o
  CC      hw/net/rocker/rocker_desc.o
  CC      hw/net/rocker/rocker_world.o
  CC      hw/net/rocker/rocker_of_dpa.o
  CC      hw/nvram/eeprom93xx.o
  CC      hw/nvram/fw_cfg.o
  CC      hw/nvram/chrp_nvram.o
  CC      hw/pci-bridge/pci_bridge_dev.o
  CC      hw/pci-bridge/pcie_root_port.o
  CC      hw/pci-bridge/gen_pcie_root_port.o
  CC      hw/pci-bridge/pci_expander_bridge.o
  CC      hw/pci-bridge/xio3130_upstream.o
  CC      hw/pci-bridge/xio3130_downstream.o
  CC      hw/pci-bridge/ioh3420.o
  CC      hw/pci-bridge/i82801b11.o
  CC      hw/pci-host/pam.o
  CC      hw/pci-host/versatile.o
  CC      hw/pci-host/piix.o
  CC      hw/pci-host/q35.o
  CC      hw/pci-host/gpex.o
  CC      hw/pci/pci.o
  CC      hw/pci/pci_bridge.o
  CC      hw/pci/msix.o
  CC      hw/pci/msi.o
  CC      hw/pci/shpc.o
  CC      hw/pci/slotid_cap.o
  CC      hw/pci/pci_host.o
  CC      hw/pci/pcie_host.o
  CC      hw/pci/pcie.o
  CC      hw/pci/pcie_aer.o
  CC      hw/pci/pcie_port.o
  CC      hw/pcmcia/pcmcia.o
  CC      hw/pci/pci-stub.o
  CC      hw/scsi/scsi-disk.o
  CC      hw/scsi/scsi-generic.o
  CC      hw/scsi/scsi-bus.o
  CC      hw/scsi/lsi53c895a.o
  CC      hw/scsi/mptsas.o
  CC      hw/scsi/mptconfig.o
  CC      hw/scsi/mptendian.o
  CC      hw/scsi/megasas.o
  CC      hw/scsi/vmw_pvscsi.o
  CC      hw/scsi/esp.o
  CC      hw/scsi/esp-pci.o
  CC      hw/sd/pl181.o
  CC      hw/sd/sd.o
  CC      hw/sd/ssi-sd.o
  CC      hw/sd/core.o
  CC      hw/sd/sdhci.o
  CC      hw/smbios/smbios.o
  CC      hw/smbios/smbios_type_38.o
  CC      hw/smbios/smbios-stub.o
  CC      hw/smbios/smbios_type_38-stub.o
  CC      hw/ssi/pl022.o
  CC      hw/ssi/ssi.o
  CC      hw/ssi/xilinx_spips.o
  CC      hw/ssi/aspeed_smc.o
  CC      hw/timer/arm_timer.o
  CC      hw/ssi/stm32f2xx_spi.o
  CC      hw/timer/arm_mptimer.o
  CC      hw/timer/armv7m_systick.o
  CC      hw/timer/a9gtimer.o
  CC      hw/timer/cadence_ttc.o
  CC      hw/timer/ds1338.o
  CC      hw/timer/hpet.o
  CC      hw/timer/i8254_common.o
  CC      hw/timer/i8254.o
  CC      hw/timer/pl031.o
  CC      hw/timer/twl92230.o
  CC      hw/timer/imx_epit.o
  CC      hw/timer/imx_gpt.o
  CC      hw/timer/stm32f2xx_timer.o
  CC      hw/timer/aspeed_timer.o
  CC      hw/tpm/tpm_tis.o
  CC      hw/usb/core.o
  CC      hw/usb/combined-packet.o
  CC      hw/usb/bus.o
  CC      hw/usb/libhw.o
  CC      hw/usb/desc.o
  CC      hw/usb/desc-msos.o
  CC      hw/usb/hcd-uhci.o
  CC      hw/usb/hcd-ohci.o
  CC      hw/usb/hcd-ehci.o
  CC      hw/usb/hcd-ehci-pci.o
  CC      hw/usb/hcd-xhci.o
  CC      hw/usb/hcd-ehci-sysbus.o
  CC      hw/usb/dev-hub.o
  CC      hw/usb/dev-hid.o
  CC      hw/usb/hcd-musb.o
  CC      hw/usb/dev-wacom.o
  CC      hw/usb/dev-storage.o
  CC      hw/usb/dev-audio.o
  CC      hw/usb/dev-uas.o
  CC      hw/usb/dev-serial.o
  CC      hw/usb/dev-network.o
  CC      hw/usb/dev-bluetooth.o
  CC      hw/usb/dev-smartcard-reader.o
  CC      hw/usb/host-stub.o
  CC      hw/virtio/virtio-rng.o
  CC      hw/virtio/virtio-pci.o
  CC      hw/virtio/virtio-bus.o
  CC      hw/virtio/virtio-mmio.o
  CC      hw/virtio/vhost-stub.o
  CC      hw/watchdog/watchdog.o
  CC      hw/watchdog/wdt_i6300esb.o
  CC      hw/watchdog/wdt_ib700.o
  CC      hw/watchdog/wdt_aspeed.o
  CC      migration/migration.o
  CC      migration/socket.o
  CC      migration/fd.o
  CC      migration/exec.o
  CC      migration/colo-comm.o
  CC      migration/colo.o
  CC      migration/colo-failover.o
  CC      migration/qemu-file.o
  CC      migration/vmstate.o
  CC      migration/qemu-file-channel.o
  CC      migration/xbzrle.o
  CC      migration/postcopy-ram.o
  CC      migration/tls.o
  CC      migration/qjson.o
  CC      migration/block.o
  CC      net/net.o
  CC      net/queue.o
  CC      net/checksum.o
  CC      net/util.o
  CC      net/hub.o
  CC      net/socket.o
  CC      net/dump.o
  CC      net/eth.o
  CC      net/tap-win32.o
  CC      net/slirp.o
  CC      net/filter.o
  CC      net/filter-buffer.o
  CC      net/filter-mirror.o
  CC      net/colo-compare.o
  CC      net/colo.o
  CC      net/filter-rewriter.o
  CC      net/filter-replay.o
  CC      qom/cpu.o
  CC      replay/replay.o
  CC      replay/replay-internal.o
  CC      replay/replay-events.o
  CC      replay/replay-time.o
  CC      replay/replay-input.o
  CC      replay/replay-char.o
  CC      replay/replay-snapshot.o
  CC      replay/replay-net.o
  CC      replay/replay-audio.o
  CC      slirp/cksum.o
  CC      slirp/if.o
  CC      slirp/ip_icmp.o
  CC      slirp/ip6_icmp.o
  CC      slirp/ip6_input.o
  CC      slirp/ip6_output.o
  CC      slirp/ip_output.o
  CC      slirp/ip_input.o
  CC      slirp/dnssearch.o
  CC      slirp/dhcpv6.o
  CC      slirp/slirp.o
  CC      slirp/mbuf.o
  CC      slirp/misc.o
  CC      slirp/sbuf.o
  CC      slirp/socket.o
  CC      slirp/tcp_input.o
  CC      slirp/tcp_output.o
  CC      slirp/tcp_subr.o
  CC      slirp/tcp_timer.o
  CC      slirp/udp.o
  CC      slirp/udp6.o
  CC      slirp/bootp.o
  CC      slirp/tftp.o
  CC      slirp/arp_table.o
  CC      slirp/ndp_table.o
  CC      slirp/ncsi.o
  CC      ui/keymaps.o
  CC      ui/console.o
  CC      ui/cursor.o
  CC      ui/qemu-pixman.o
  CC      ui/input.o
  CC      ui/input-keymap.o
  CC      ui/input-legacy.o
  CC      ui/sdl.o
  CC      ui/sdl_zoom.o
  CC      ui/x_keymap.o
  CC      ui/vnc.o
  CC      ui/vnc-enc-zlib.o
  CC      ui/vnc-enc-hextile.o
  CC      ui/vnc-enc-tight.o
  CC      ui/vnc-palette.o
  CC      ui/vnc-enc-zrle.o
  CC      ui/vnc-auth-vencrypt.o
  CC      ui/vnc-ws.o
  CC      ui/vnc-jobs.o
  CC      ui/gtk.o
  CC      chardev/char.o
  CC      chardev/char-console.o
  CC      chardev/char-fe.o
  CC      chardev/char-file.o
  CC      chardev/char-io.o
/tmp/qemu-test/src/chardev/char.c: In function 'chardev_name_foreach':
/tmp/qemu-test/src/chardev/char.c:546:19: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
     for (i = 0; i < ARRAY_SIZE(chardev_alias_table); i++) {
                   ^
/tmp/qemu-test/src/chardev/char.c: In function 'qemu_chr_new_from_opts':
/tmp/qemu-test/src/chardev/char.c:592:19: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
     for (i = 0; i < ARRAY_SIZE(chardev_alias_table); i++) {
                   ^
cc1: all warnings being treated as errors
/tmp/qemu-test/src/rules.mak:69: recipe for target 'chardev/char.o' failed
make: *** [chardev/char.o] Error 1
make: *** Waiting for unfinished jobs....
tests/docker/Makefile.include:118: recipe for target 'docker-run' failed
make[1]: *** [docker-run] Error 2
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-hqv8w1rj/src'
tests/docker/Makefile.include:149: recipe for target 'docker-run-test-mingw@fedora' failed
make: *** [docker-run-test-mingw@fedora] Error 2
=== OUTPUT END ===

Test command exited with code: 2


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org

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

* Re: [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups
  2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
                   ` (13 preceding siblings ...)
  2017-05-09 12:21 ` [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups no-reply
@ 2017-05-09 12:32 ` no-reply
  14 siblings, 0 replies; 33+ messages in thread
From: no-reply @ 2017-05-09 12:32 UTC (permalink / raw)
  To: marcandre.lureau; +Cc: famz, qemu-devel, pbonzini

Hi,

This series failed build test on s390x host. Please find the details below.

Message-id: 20170509113332.4987-1-marcandre.lureau@redhat.com
Type: series
Subject: [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups

=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
CC=$HOME/bin/cc
INSTALL=$PWD/install
BUILD=$PWD/build
echo -n "Using CC: "
realpath $CC
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --cc=$CC --prefix=$INSTALL
make -j4
# XXX: we need reliable clean up
# make check -j4 V=1
make install
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
8bbbd92 char: make chr_fe_deinit() optionaly delete backend
ed07d77 char: rename functions that are not part of fe
b8c569d Remove/replace chardev/char.h inclusion
3b66c5b char: move CharBackend handling in char-fe unit
9dd62ad char: generalize qemu_chr_write_all()
f5d7e07 be-hci: use backend functions
4705c1e chardev: serial & parallel declaration to own headers
b53b45d chardev: move headers to include/chardev
aed7c0f char-win: close file handle except with console
9e47315 char-win: rename hcom->file
68dd8ad char-win: rename win_chr_init/poll win_chr_serial_init/poll
af0bb4e char-win: remove WinChardev.len
cb6abe0 char-win: simplify win_chr_read()

=== OUTPUT BEGIN ===
=== ENV ===
XDG_SESSION_ID=42773
SHELL=/bin/sh
USER=fam
PATCHEW=/home/fam/patchew/patchew-cli -s http://patchew.org --nodebug
PATH=/usr/bin:/bin
PWD=/var/tmp/patchew-tester-tmp-ppys535z/src
LANG=en_US.UTF-8
HOME=/home/fam
SHLVL=2
LOGNAME=fam
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1012/bus
XDG_RUNTIME_DIR=/run/user/1012
_=/usr/bin/env
=== PACKAGES ===
gpg-pubkey-873529b8-54e386ff
xz-libs-5.2.2-2.fc24.s390x
libxshmfence-1.2-3.fc24.s390x
giflib-4.1.6-15.fc24.s390x
trousers-lib-0.3.13-6.fc24.s390x
ncurses-base-6.0-6.20160709.fc25.noarch
gmp-6.1.1-1.fc25.s390x
libidn-1.33-1.fc25.s390x
slang-2.3.0-7.fc25.s390x
libsemanage-2.5-8.fc25.s390x
pkgconfig-0.29.1-1.fc25.s390x
alsa-lib-1.1.1-2.fc25.s390x
yum-metadata-parser-1.1.4-17.fc25.s390x
python3-slip-dbus-0.6.4-4.fc25.noarch
python2-cssselect-0.9.2-1.fc25.noarch
python-fedora-0.8.0-2.fc25.noarch
createrepo_c-libs-0.10.0-6.fc25.s390x
initscripts-9.69-1.fc25.s390x
wget-1.18-2.fc25.s390x
dhcp-client-4.3.5-1.fc25.s390x
parted-3.2-21.fc25.s390x
flex-2.6.0-3.fc25.s390x
colord-libs-1.3.4-1.fc25.s390x
python-osbs-client-0.33-3.fc25.noarch
perl-Pod-Simple-3.35-1.fc25.noarch
python2-simplejson-3.10.0-1.fc25.s390x
brltty-5.4-2.fc25.s390x
librados2-10.2.4-2.fc25.s390x
tcp_wrappers-7.6-83.fc25.s390x
libcephfs_jni1-10.2.4-2.fc25.s390x
nettle-devel-3.3-1.fc25.s390x
bzip2-devel-1.0.6-21.fc25.s390x
libuuid-2.28.2-2.fc25.s390x
pango-1.40.4-1.fc25.s390x
python3-dnf-1.1.10-6.fc25.noarch
cryptsetup-libs-1.7.4-1.fc25.s390x
texlive-kpathsea-doc-svn41139-33.fc25.1.noarch
netpbm-10.77.00-3.fc25.s390x
openssh-7.4p1-4.fc25.s390x
texlive-kpathsea-bin-svn40473-33.20160520.fc25.1.s390x
texlive-graphics-svn41015-33.fc25.1.noarch
texlive-dvipdfmx-def-svn40328-33.fc25.1.noarch
texlive-mfware-svn40768-33.fc25.1.noarch
texlive-texlive-scripts-svn41433-33.fc25.1.noarch
texlive-euro-svn22191.1.1-33.fc25.1.noarch
texlive-etex-svn37057.0-33.fc25.1.noarch
texlive-iftex-svn29654.0.2-33.fc25.1.noarch
texlive-palatino-svn31835.0-33.fc25.1.noarch
texlive-texlive-docindex-svn41430-33.fc25.1.noarch
texlive-xunicode-svn30466.0.981-33.fc25.1.noarch
texlive-koma-script-svn41508-33.fc25.1.noarch
texlive-pst-grad-svn15878.1.06-33.fc25.1.noarch
texlive-pst-blur-svn15878.2.0-33.fc25.1.noarch
texlive-jknapltx-svn19440.0-33.fc25.1.noarch
netpbm-progs-10.77.00-3.fc25.s390x
texinfo-6.1-4.fc25.s390x
openssl-devel-1.0.2k-1.fc25.s390x
python2-sssdconfig-1.15.2-1.fc25.noarch
gdk-pixbuf2-2.36.6-1.fc25.s390x
mesa-libEGL-13.0.4-3.fc25.s390x
pcre-cpp-8.40-6.fc25.s390x
pcre-utf16-8.40-6.fc25.s390x
glusterfs-extra-xlators-3.10.1-1.fc25.s390x
mesa-libGL-devel-13.0.4-3.fc25.s390x
nss-devel-3.29.3-1.1.fc25.s390x
libaio-0.3.110-6.fc24.s390x
libfontenc-1.1.3-3.fc24.s390x
lzo-2.08-8.fc24.s390x
isl-0.14-5.fc24.s390x
libXau-1.0.8-6.fc24.s390x
linux-atm-libs-2.5.1-14.fc24.s390x
libXext-1.3.3-4.fc24.s390x
libXxf86vm-1.1.4-3.fc24.s390x
bison-3.0.4-4.fc24.s390x
perl-srpm-macros-1-20.fc25.noarch
gawk-4.1.3-8.fc25.s390x
libwayland-client-1.12.0-1.fc25.s390x
perl-Exporter-5.72-366.fc25.noarch
perl-version-0.99.17-1.fc25.s390x
fftw-libs-double-3.3.5-3.fc25.s390x
libssh2-1.8.0-1.fc25.s390x
ModemManager-glib-1.6.4-1.fc25.s390x
newt-python3-0.52.19-2.fc25.s390x
python-munch-2.0.4-3.fc25.noarch
python-bugzilla-1.2.2-4.fc25.noarch
libedit-3.1-16.20160618cvs.fc25.s390x
python-pycurl-7.43.0-4.fc25.s390x
createrepo_c-0.10.0-6.fc25.s390x
device-mapper-multipath-libs-0.4.9-83.fc25.s390x
yum-3.4.3-510.fc25.noarch
dhcp-common-4.3.5-1.fc25.noarch
dracut-config-rescue-044-78.fc25.s390x
teamd-1.26-1.fc25.s390x
mozjs17-17.0.0-16.fc25.s390x
libselinux-2.5-13.fc25.s390x
libgo-devel-6.3.1-1.fc25.s390x
NetworkManager-libnm-1.4.4-3.fc25.s390x
python2-pyparsing-2.1.10-1.fc25.noarch
cairo-gobject-1.14.8-1.fc25.s390x
ethtool-4.8-1.fc25.s390x
xorg-x11-proto-devel-7.7-20.fc25.noarch
brlapi-0.6.5-2.fc25.s390x
librados-devel-10.2.4-2.fc25.s390x
libXinerama-devel-1.1.3-6.fc24.s390x
quota-4.03-7.fc25.s390x
lua-posix-33.3.1-3.fc25.s390x
usbredir-devel-0.7.1-2.fc24.s390x
python-libs-2.7.13-1.fc25.s390x
libX11-devel-1.6.4-4.fc25.s390x
python-devel-2.7.13-1.fc25.s390x
libepoxy-1.4.1-1.fc25.s390x
freetype-devel-2.6.5-3.fc25.s390x
python3-dnf-plugins-core-0.1.21-5.fc25.noarch
perl-macros-5.24.1-385.fc25.s390x
texlive-pdftex-doc-svn41149-33.fc25.1.noarch
mariadb-config-10.1.21-3.fc25.s390x
openssh-clients-7.4p1-4.fc25.s390x
iptables-1.6.0-3.fc25.s390x
texlive-texlive.infra-svn41280-33.fc25.1.noarch
texlive-graphics-cfg-svn40269-33.fc25.1.noarch
texlive-bibtex-svn40768-33.fc25.1.noarch
texlive-mfware-bin-svn40473-33.20160520.fc25.1.s390x
texlive-texlive-scripts-bin-svn29741.0-33.20160520.fc25.1.noarch
texlive-sauerj-svn15878.0-33.fc25.1.noarch
texlive-enctex-svn34957.0-33.fc25.1.noarch
texlive-ifetex-svn24853.1.2-33.fc25.1.noarch
texlive-ntgclass-svn15878.2.1a-33.fc25.1.noarch
texlive-tex-gyre-math-svn41264-33.fc25.1.noarch
texlive-bera-svn20031.0-33.fc25.1.noarch
texlive-ms-svn29849.0-33.fc25.1.noarch
texlive-pst-fill-svn15878.1.01-33.fc25.1.noarch
texlive-ctable-svn38672-33.fc25.1.noarch
texlive-extsizes-svn17263.1.4a-33.fc25.1.noarch
texlive-collection-latexrecommended-svn35765.0-33.20160520.fc25.1.noarch
perl-Filter-1.57-1.fc25.s390x
krb5-workstation-1.14.4-7.fc25.s390x
python2-rpm-macros-3-12.fc25.noarch
audit-libs-2.7.4-1.fc25.s390x
libglvnd-egl-0.2.999-14.20170308git8e6e102.fc25.s390x
libglvnd-opengl-0.2.999-14.20170308git8e6e102.fc25.s390x
pcre-devel-8.40-6.fc25.s390x
gdbm-1.13-1.fc25.s390x
mesa-libGLES-devel-13.0.4-3.fc25.s390x
java-1.8.0-openjdk-1.8.0.121-10.b14.fc25.s390x
gpg-pubkey-efe550f5-5220ba41
gpg-pubkey-81b46521-55b3ca9a
filesystem-3.2-37.fc24.s390x
libffi-3.1-9.fc24.s390x
keyutils-libs-1.5.9-8.fc24.s390x
libnfnetlink-1.0.1-8.fc24.s390x
libtheora-1.1.1-14.fc24.s390x
xml-common-0.6.3-44.fc24.noarch
autoconf-2.69-22.fc24.noarch
libXt-1.1.5-3.fc24.s390x
kbd-legacy-2.0.3-3.fc24.noarch
ghostscript-fonts-5.50-35.fc24.noarch
libXevie-1.0.3-11.fc24.s390x
libcap-2.25-2.fc25.s390x
mpfr-3.1.5-1.fc25.s390x
perl-Carp-1.40-365.fc25.noarch
libmnl-1.0.4-1.fc25.s390x
perl-Unicode-EastAsianWidth-1.33-8.fc25.noarch
libwayland-cursor-1.12.0-1.fc25.s390x
python-krbV-1.0.90-12.fc25.s390x
python2-urllib3-1.15.1-3.fc25.noarch
fipscheck-1.4.1-11.fc25.s390x
libndp-1.6-1.fc25.s390x
gnupg2-2.1.13-2.fc25.s390x
libXfixes-5.0.3-1.fc25.s390x
adwaita-icon-theme-3.22.0-1.fc25.noarch
dconf-0.26.0-1.fc25.s390x
ncurses-devel-6.0-6.20160709.fc25.s390x
dejagnu-1.6-1.fc25.noarch
libstdc++-devel-6.3.1-1.fc25.s390x
python-beautifulsoup4-4.5.3-1.fc25.noarch
device-mapper-1.02.136-3.fc25.s390x
subversion-1.9.5-1.fc25.s390x
libtool-ltdl-2.4.6-13.fc25.s390x
libevent-2.0.22-1.fc25.s390x
atk-devel-2.22.0-1.fc25.s390x
libev-4.24-1.fc25.s390x
xorg-x11-fonts-Type1-7.5-16.fc24.noarch
libtasn1-devel-4.10-1.fc25.s390x
vte291-devel-0.46.1-1.fc25.s390x
brlapi-devel-0.6.5-2.fc25.s390x
pulseaudio-libs-10.0-2.fc25.s390x
libnl3-cli-3.2.29-2.fc25.s390x
perl-libs-5.24.1-385.fc25.s390x
glib2-2.50.3-1.fc25.s390x
python3-firewall-0.4.4.4-1.fc25.noarch
python2-rpm-4.13.0.1-1.fc25.s390x
gnutls-3.5.10-1.fc25.s390x
pango-devel-1.40.4-1.fc25.s390x
dnf-1.1.10-6.fc25.noarch
texlive-metafont-bin-svn40987-33.20160520.fc25.1.s390x
texlive-xkeyval-svn35741.2.7a-33.fc25.1.noarch
texlive-euler-svn17261.2.5-33.fc25.1.noarch
texlive-mptopdf-svn41282-33.fc25.1.noarch
texlive-wasy-svn35831.0-33.fc25.1.noarch
texlive-avantgar-svn31835.0-33.fc25.1.noarch
texlive-eurosym-svn17265.1.4_subrfix-33.fc25.1.noarch
texlive-knuth-lib-svn35820.0-33.fc25.1.noarch
texlive-parallel-svn15878.0-33.fc25.1.noarch
texlive-texlive-msg-translations-svn41431-33.fc25.1.noarch
texlive-latex-svn40218-33.fc25.1.noarch
texlive-lualatex-math-svn40621-33.fc25.1.noarch
texlive-auto-pst-pdf-svn23723.0.6-33.fc25.1.noarch
texlive-powerdot-svn38984-33.fc25.1.noarch
texlive-wasysym-svn15878.2.0-33.fc25.1.noarch
ImageMagick-libs-6.9.3.0-6.fc25.s390x
geoclue2-2.4.5-1.fc25.s390x
perl-IO-Socket-IP-0.39-1.fc25.noarch
gdb-7.12.1-47.fc25.s390x
python2-pyasn1-0.2.3-1.fc25.noarch
libglvnd-0.2.999-14.20170308git8e6e102.fc25.s390x
libglvnd-gles-0.2.999-14.20170308git8e6e102.fc25.s390x
gdk-pixbuf2-devel-2.36.6-1.fc25.s390x
libidn2-2.0.0-1.fc25.s390x
system-python-libs-3.5.3-4.fc25.s390x
GeoIP-1.6.10-1.fc25.s390x
at-spi2-core-devel-2.22.1-1.fc25.s390x
gpg-pubkey-34ec9cba-54e38751
gpg-pubkey-030d5aed-55b577f0
basesystem-11-2.fc24.noarch
libmpc-1.0.2-5.fc24.s390x
libunistring-0.9.4-3.fc24.s390x
libmodman-2.0.1-12.fc24.s390x
lsscsi-0.28-3.fc24.s390x
kbd-misc-2.0.3-3.fc24.noarch
rpmconf-base-1.0.18-2.fc25.noarch
libxml2-2.9.3-4.fc25.s390x
kmod-23-1.fc25.s390x
newt-0.52.19-2.fc25.s390x
perl-Text-Unidecode-1.27-3.fc25.noarch
plymouth-core-libs-0.9.3-0.6.20160620git0e65b86c.fc25.s390x
which-2.21-1.fc25.s390x
python3-slip-0.6.4-4.fc25.noarch
python3-systemd-232-1.fc25.s390x
python-lockfile-0.11.0-4.fc25.noarch
python2-requests-2.10.0-4.fc25.noarch
libarchive-3.2.2-1.fc25.s390x
libnghttp2-1.13.0-2.fc25.s390x
python-urlgrabber-3.10.1-9.fc25.noarch
iputils-20161105-1.fc25.s390x
rest-0.8.0-1.fc25.s390x
adwaita-cursor-theme-3.22.0-1.fc25.noarch
authconfig-6.2.10-14.fc25.s390x
expat-devel-2.2.0-1.fc25.s390x
automake-1.15-7.fc25.noarch
shared-mime-info-1.8-1.fc25.s390x
pigz-2.3.4-1.fc25.s390x
device-mapper-libs-1.02.136-3.fc25.s390x
dnsmasq-2.76-2.fc25.s390x
fedora-packager-0.6.0.1-1.fc25.noarch
gcc-c++-6.3.1-1.fc25.s390x
libwebp-0.5.2-1.fc25.s390x
boost-system-1.60.0-10.fc25.s390x
libasyncns-0.8-10.fc24.s390x
libXau-devel-1.0.8-6.fc24.s390x
libverto-libev-0.2.6-6.fc24.s390x
python3-html5lib-0.999-9.fc25.noarch
ttmkfdir-3.0.9-48.fc24.s390x
pulseaudio-libs-glib2-10.0-2.fc25.s390x
wpa_supplicant-2.6-1.fc25.s390x
texlive-lib-2016-33.20160520.fc25.s390x
libXi-devel-1.7.9-1.fc25.s390x
python3-distro-1.0.3-1.fc25.noarch
rpm-plugin-systemd-inhibit-4.13.0.1-1.fc25.s390x
gnutls-c++-3.5.10-1.fc25.s390x
texlive-texlive-common-doc-svn40682-33.fc25.1.noarch
packagedb-cli-2.14.1-1.fc25.noarch
rpcbind-0.2.4-5.fc25.s390x
texlive-metafont-svn40793-33.fc25.1.noarch
texlive-tools-svn40934-33.fc25.1.noarch
texlive-enumitem-svn24146.3.5.2-33.fc25.1.noarch
texlive-mptopdf-bin-svn18674.0-33.20160520.fc25.1.noarch
texlive-underscore-svn18261.0-33.fc25.1.noarch
texlive-anysize-svn15878.0-33.fc25.1.noarch
texlive-euenc-svn19795.0.1h-33.fc25.1.noarch
texlive-kastrup-svn15878.0-33.fc25.1.noarch
texlive-paralist-svn39247-33.fc25.1.noarch
texlive-texlive-en-svn41185-33.fc25.1.noarch
texlive-tipa-svn29349.1.3-33.fc25.1.noarch
texlive-currfile-svn40725-33.fc25.1.noarch
texlive-pst-node-svn40743-33.fc25.1.noarch
texlive-pst-slpe-svn24391.1.31-33.fc25.1.noarch
texlive-typehtml-svn17134.0-33.fc25.1.noarch
SDL2-devel-2.0.5-3.fc25.s390x
perl-Module-CoreList-5.20170320-1.fc25.noarch
libcroco-0.6.11-3.fc25.s390x
publicsuffix-list-dafsa-20170206-1.fc25.noarch
pcre-8.40-6.fc25.s390x
cups-libs-2.2.0-8.fc25.s390x
gtk-update-icon-cache-3.22.11-1.fc25.s390x
libcurl-7.51.0-6.fc25.s390x
python3-libs-3.5.3-4.fc25.s390x
bluez-libs-devel-5.44-1.fc25.s390x
kernel-4.10.8-200.fc25.s390x
fontpackages-filesystem-1.44-17.fc24.noarch
groff-base-1.22.3-8.fc24.s390x
ilmbase-2.2.0-5.fc24.s390x
OpenEXR-libs-2.2.0-5.fc24.s390x
hesiod-3.2.1-6.fc24.s390x
sysfsutils-2.1.0-19.fc24.s390x
ocaml-srpm-macros-2-4.fc24.noarch
mailx-12.5-19.fc24.s390x
ncurses-libs-6.0-6.20160709.fc25.s390x
ipset-libs-6.29-1.fc25.s390x
gmp-devel-6.1.1-1.fc25.s390x
python-pip-8.1.2-2.fc25.noarch
harfbuzz-1.3.2-1.fc25.s390x
python2-iniparse-0.4-20.fc25.noarch
python3-iniparse-0.4-20.fc25.noarch
python3-kickstart-2.32-1.fc25.noarch
perl-Net-SSLeay-1.78-1.fc25.s390x
drpm-0.3.0-3.fc25.s390x
glib-networking-2.50.0-1.fc25.s390x
webkitgtk3-2.4.11-3.fc25.s390x
libXaw-1.0.13-4.fc25.s390x
xorg-x11-font-utils-7.5-32.fc25.s390x
hardlink-1.1-1.fc25.s390x
libcom_err-1.43.3-1.fc25.s390x
python2-dateutil-2.6.0-1.fc25.noarch
libXpm-3.5.12-1.fc25.s390x
python2-smmap-2.0.1-1.fc25.noarch
poppler-data-0.4.7-6.fc25.noarch
nspr-devel-4.13.1-1.fc25.s390x
librbd1-10.2.4-2.fc25.s390x
libsndfile-1.0.27-1.fc25.s390x
perl-Digest-MD5-2.55-2.fc25.s390x
wayland-protocols-devel-1.7-1.fc25.noarch
libacl-devel-2.2.52-11.fc24.s390x
texi2html-5.0-4.fc24.noarch
libxkbcommon-0.7.1-1.fc25.s390x
freetype-2.6.5-3.fc25.s390x
libuuid-devel-2.28.2-2.fc25.s390x
coreutils-common-8.25-16.fc25.s390x
gdb-headless-7.12.1-47.fc25.s390x
libcacard-2.5.3-1.fc25.s390x
perl-threads-shared-1.55-1.fc25.s390x
python2-rpkg-1.49-2.fc25.noarch
libwmf-lite-0.2.8.4-50.fc25.s390x
unbound-libs-1.6.0-6.fc25.s390x
texlive-tetex-svn41059-33.fc25.1.noarch
texlive-thumbpdf-svn34621.3.16-33.fc25.1.noarch
texlive-carlisle-svn18258.0-33.fc25.1.noarch
texlive-makeindex-bin-svn40473-33.20160520.fc25.1.s390x
texlive-pdftex-svn41149-33.fc25.1.noarch
texlive-csquotes-svn39538-33.fc25.1.noarch
texlive-courier-svn35058.0-33.fc25.1.noarch
texlive-helvetic-svn31835.0-33.fc25.1.noarch
texlive-mfnfss-svn19410.0-33.fc25.1.noarch
texlive-sepnum-svn20186.2.0-33.fc25.1.noarch
texlive-utopia-svn15878.0-33.fc25.1.noarch
texlive-luatexbase-svn38550-33.fc25.1.noarch
texlive-pst-3d-svn17257.1.10-33.fc25.1.noarch
texlive-latex-bin-bin-svn14050.0-33.20160520.fc25.1.noarch
texlive-l3experimental-svn41163-33.fc25.1.noarch
bind99-libs-9.9.9-4.P6.fc25.s390x
net-tools-2.0-0.40.20160329git.fc25.s390x
perl-Pod-Perldoc-3.28-1.fc25.noarch
openssl-1.0.2k-1.fc25.s390x
man-pages-4.06-4.fc25.noarch
libdrm-2.4.77-1.fc25.s390x
p11-kit-0.23.2-3.fc25.s390x
glusterfs-cli-3.10.1-1.fc25.s390x
git-core-2.9.3-3.fc25.s390x
python3-3.5.3-4.fc25.s390x
python3-magic-5.29-4.fc25.noarch
p11-kit-trust-0.23.2-3.fc25.s390x
gpg-pubkey-95a43f54-5284415a
dejavu-fonts-common-2.35-3.fc24.noarch
libSM-1.2.2-4.fc24.s390x
diffutils-3.3-13.fc24.s390x
libogg-1.3.2-5.fc24.s390x
hunspell-en-US-0.20140811.1-5.fc24.noarch
libdaemon-0.14-10.fc24.s390x
patch-2.7.5-3.fc24.s390x
libsysfs-2.1.0-19.fc24.s390x
procmail-3.22-39.fc24.s390x
libXdamage-1.1.4-8.fc24.s390x
libotf-0.9.13-7.fc24.s390x
urw-fonts-2.4-22.fc24.noarch
crontabs-1.11-12.20150630git.fc24.noarch
ppp-2.4.7-9.fc24.s390x
polkit-0.113-5.fc24.s390x
cyrus-sasl-2.1.26-26.2.fc24.s390x
zlib-devel-1.2.8-10.fc24.s390x
time-1.7-49.fc24.s390x
gpg-pubkey-fdb19c98-56fd6333
fedora-release-25-1.noarch
libcap-ng-0.7.8-1.fc25.s390x
binutils-2.26.1-1.fc25.s390x
lcms2-2.8-2.fc25.s390x
libcomps-0.1.7-5.fc25.s390x
less-481-6.fc25.s390x
apr-1.5.2-4.fc25.s390x
perl-constant-1.33-367.fc25.noarch
perl-Data-Dumper-2.161-1.fc25.s390x
ipcalc-0.1.8-1.fc25.s390x
libteam-1.26-1.fc25.s390x
gmp-c++-6.1.1-1.fc25.s390x
fontconfig-2.12.1-1.fc25.s390x
enchant-1.6.0-14.fc25.s390x
pyliblzma-0.5.3-16.fc25.s390x
libsepol-devel-2.5-10.fc25.s390x
python3-ordered-set-2.0.0-4.fc25.noarch
python3-rpmconf-1.0.18-2.fc25.noarch
python-ipaddress-1.0.16-3.fc25.noarch
python2-kerberos-1.2.5-1.fc25.s390x
python2-pysocks-1.5.6-5.fc25.noarch
fipscheck-lib-1.4.1-11.fc25.s390x
libatomic_ops-7.4.4-1.fc25.s390x
net-snmp-agent-libs-5.7.3-13.fc25.s390x
dracut-044-78.fc25.s390x
python2-pygpgme-0.3-18.fc25.s390x
libsoup-2.56.0-2.fc25.s390x
orc-0.4.26-1.fc25.s390x
yum-utils-1.1.31-511.fc25.noarch
libXrender-0.9.10-1.fc25.s390x
libXrandr-1.5.1-1.fc25.s390x
go-srpm-macros-2-7.fc25.noarch
gnupg2-smime-2.1.13-2.fc25.s390x
guile-devel-2.0.13-1.fc25.s390x
uboot-tools-2016.09.01-2.fc25.s390x
pykickstart-2.32-1.fc25.noarch
python-bunch-1.0.1-9.fc25.noarch
perl-generators-1.10-1.fc25.noarch
perl-Mozilla-CA-20160104-3.fc25.noarch
glibc-all-langpacks-2.24-4.fc25.s390x
bzip2-libs-1.0.6-21.fc25.s390x
libpng-1.6.27-1.fc25.s390x
desktop-file-utils-0.23-2.fc25.s390x
python2-cccolutils-1.4-1.fc25.s390x
python2-lxml-3.7.2-1.fc25.s390x
redhat-rpm-config-45-1.fc25.noarch
elfutils-libs-0.168-1.fc25.s390x
device-mapper-event-libs-1.02.136-3.fc25.s390x
lvm2-libs-2.02.167-3.fc25.s390x
elfutils-0.168-1.fc25.s390x
python2-gitdb-2.0.0-1.fc25.noarch
gcc-gfortran-6.3.1-1.fc25.s390x
libselinux-python-2.5-13.fc25.s390x
openjpeg2-2.1.2-3.fc25.s390x
js-jquery-2.2.4-1.fc25.noarch
boost-thread-1.60.0-10.fc25.s390x
json-c-0.12-7.fc24.s390x
librbd-devel-10.2.4-2.fc25.s390x
libXcursor-devel-1.1.14-6.fc24.s390x
python3-beautifulsoup4-4.5.3-1.fc25.noarch
latex2html-2012-7.fc24.noarch
lksctp-tools-1.0.16-5.fc24.s390x
vte291-0.46.1-1.fc25.s390x
libfdt-1.4.2-1.fc25.s390x
libXft-devel-2.3.2-4.fc24.s390x
libattr-devel-2.4.47-16.fc24.s390x
libiscsi-devel-1.15.0-2.fc24.s390x
gettext-0.19.8.1-3.fc25.s390x
libjpeg-turbo-devel-1.5.1-0.fc25.s390x
libX11-1.6.4-4.fc25.s390x
pulseaudio-libs-devel-10.0-2.fc25.s390x
ccache-3.3.3-1.fc25.s390x
systemd-libs-231-14.fc25.s390x
nss-softokn-freebl-3.29.3-1.0.fc25.s390x
libepoxy-devel-1.4.1-1.fc25.s390x
krb5-libs-1.14.4-7.fc25.s390x
libmount-2.28.2-2.fc25.s390x
python3-decorator-4.0.11-1.fc25.noarch
rpm-plugin-selinux-4.13.0.1-1.fc25.s390x
perl-threads-2.15-1.fc25.s390x
tzdata-java-2017b-1.fc25.noarch
python-srpm-macros-3-12.fc25.noarch
libsmartcols-2.28.2-2.fc25.s390x
kernel-core-4.10.5-200.fc25.s390x
kernel-modules-4.10.5-200.fc25.s390x
texlive-kpathsea-svn41139-33.fc25.1.noarch
texlive-amsmath-svn41561-33.fc25.1.noarch
texlive-thumbpdf-bin-svn6898.0-33.20160520.fc25.1.noarch
texlive-psnfss-svn33946.9.2a-33.fc25.1.noarch
texlive-subfig-svn15878.1.3-33.fc25.1.noarch
texlive-fancybox-svn18304.1.4-33.fc25.1.noarch
texlive-lua-alt-getopt-svn29349.0.7.0-33.fc25.1.noarch
texlive-natbib-svn20668.8.31b-33.fc25.1.noarch
texlive-pdftex-bin-svn40987-33.20160520.fc25.1.s390x
texlive-xdvi-svn40768-33.fc25.1.noarch
texlive-crop-svn15878.1.5-33.fc25.1.noarch
texlive-babel-english-svn30264.3.3p-33.fc25.1.noarch
texlive-cmextra-svn32831.0-33.fc25.1.noarch
texlive-fancyhdr-svn15878.3.1-33.fc25.1.noarch
texlive-luatex-svn40963-33.fc25.1.noarch
texlive-knuth-local-svn38627-33.fc25.1.noarch
texlive-mflogo-font-svn36898.1.002-33.fc25.1.noarch
texlive-parskip-svn19963.2.0-33.fc25.1.noarch
texlive-section-svn20180.0-33.fc25.1.noarch
texlive-textcase-svn15878.0-33.fc25.1.noarch
texlive-updmap-map-svn41159-33.fc25.1.noarch
texlive-attachfile-svn38830-33.fc25.1.noarch
nss-3.29.3-1.1.fc25.s390x
glusterfs-client-xlators-3.10.1-1.fc25.s390x
libglvnd-glx-0.2.999-14.20170308git8e6e102.fc25.s390x
libtiff-4.0.7-4.fc25.s390x
dbus-devel-1.11.12-1.fc25.s390x
java-1.8.0-openjdk-headless-1.8.0.121-10.b14.fc25.s390x
pcre2-utf16-10.23-5.fc25.s390x
git-core-doc-2.9.3-3.fc25.s390x
iproute-4.10.0-1.fc25.s390x
nfs-utils-2.1.1-3.rc1.fc25.s390x
libglvnd-core-devel-0.2.999-14.20170308git8e6e102.fc25.s390x
python-magic-5.29-4.fc25.noarch
pcre2-devel-10.23-5.fc25.s390x
p11-kit-devel-0.23.2-3.fc25.s390x
texlive-luaotfload-svn40902-33.fc25.1.noarch
texlive-unicode-math-svn38462-33.fc25.1.noarch
texlive-fancyvrb-svn18492.2.8-33.fc25.1.noarch
texlive-pst-pdf-bin-svn7838.0-33.20160520.fc25.1.noarch
texlive-amscls-svn36804.0-33.fc25.1.noarch
texlive-ltxmisc-svn21927.0-33.fc25.1.noarch
texlive-breqn-svn38099.0.98d-33.fc25.1.noarch
texlive-xetex-def-svn40327-33.fc25.1.noarch
openssh-server-7.4p1-4.fc25.s390x
sendmail-8.15.2-8.fc25.s390x
python-firewall-0.4.4.4-1.fc25.noarch
python3-sssdconfig-1.15.2-1.fc25.noarch
tzdata-2017b-1.fc25.noarch
hunspell-1.4.1-2.fc25.s390x
gpg-pubkey-8e1431d5-53bcbac7
zlib-1.2.8-10.fc24.s390x
sed-4.2.2-15.fc24.s390x
psmisc-22.21-8.fc24.s390x
gpm-libs-1.20.7-9.fc24.s390x
zip-3.0-16.fc24.s390x
hostname-3.15-7.fc24.s390x
libyubikey-1.13-2.fc24.s390x
sg3_utils-libs-1.41-3.fc24.s390x
polkit-pkla-compat-0.1-7.fc24.s390x
passwd-0.79-8.fc24.s390x
trousers-0.3.13-6.fc24.s390x
grubby-8.40-3.fc24.s390x
rootfiles-8.1-19.fc24.noarch
nettle-3.3-1.fc25.s390x
jansson-2.9-1.fc25.s390x
libksba-1.3.5-1.fc25.s390x
perl-Text-ParseWords-3.30-365.fc25.noarch
perl-PathTools-3.63-366.fc25.s390x
perl-File-Temp-0.23.04-365.fc25.noarch
fuse-libs-2.9.7-1.fc25.s390x
perl-Pod-Escapes-1.07-365.fc25.noarch
perl-Term-ANSIColor-4.05-2.fc25.noarch
perl-URI-1.71-5.fc25.noarch
libXfont-1.5.2-1.fc25.s390x
python-six-1.10.0-3.fc25.noarch
dbus-glib-0.108-1.fc25.s390x
gobject-introspection-1.50.0-1.fc25.s390x
libpwquality-1.3.0-6.fc25.s390x
python-gobject-base-3.22.0-1.fc25.s390x
python-html5lib-0.999-9.fc25.noarch
python3-dbus-1.2.4-2.fc25.s390x
python3-chardet-2.3.0-1.fc25.noarch
python3-urllib3-1.15.1-3.fc25.noarch
python-offtrac-0.1.0-7.fc25.noarch
python2-cryptography-1.5.3-3.fc25.s390x
python2-requests-kerberos-0.10.0-2.fc25.noarch
libserf-1.3.9-1.fc25.s390x
libdatrie-0.2.9-3.fc25.s390x
s390utils-base-1.36.0-1.fc25.s390x
kpartx-0.4.9-83.fc25.s390x
s390utils-cpuplugd-1.36.0-1.fc25.s390x
rpmconf-1.0.18-2.fc25.noarch
s390utils-osasnmpd-1.36.0-1.fc25.s390x
python-dnf-plugins-extras-common-0.0.12-4.fc25.noarch
fpc-srpm-macros-1.0-1.fc25.noarch
libuser-0.62-4.fc25.s390x
man-db-2.7.5-3.fc25.s390x
sqlite-3.14.2-1.fc25.s390x
python-systemd-doc-232-1.fc25.s390x
libdb-5.3.28-16.fc25.s390x
lz4-1.7.5-1.fc25.s390x
tar-1.29-3.fc25.s390x
emacs-common-25.1-3.fc25.s390x
unzip-6.0-31.fc25.s390x
bodhi-client-0.9.12.2-6.fc25.noarch
glibc-headers-2.24-4.fc25.s390x
cairo-1.14.8-1.fc25.s390x
ca-certificates-2017.2.11-1.0.fc25.noarch
NetworkManager-glib-1.4.4-3.fc25.s390x
gcc-go-6.3.1-1.fc25.s390x
cracklib-dicts-2.9.6-4.fc25.s390x
libselinux-python3-2.5-13.fc25.s390x
python2-enchant-1.6.8-1.fc25.noarch
boost-iostreams-1.60.0-10.fc25.s390x
userspace-rcu-0.9.2-2.fc25.s390x
libXext-devel-1.3.3-4.fc24.s390x
libXrandr-devel-1.5.1-1.fc25.s390x
perl-XML-XPath-1.39-1.fc25.noarch
python3-lxml-3.7.2-1.fc25.s390x
vte-profile-0.46.1-1.fc25.s390x
sqlite-devel-3.14.2-1.fc25.s390x
libiscsi-1.15.0-2.fc24.s390x
fontconfig-devel-2.12.1-1.fc25.s390x
libfdt-devel-1.4.2-1.fc25.s390x
ceph-devel-compat-10.2.4-2.fc25.s390x
zlib-static-1.2.8-10.fc24.s390x
chrpath-0.16-3.fc24.s390x
python-2.7.13-1.fc25.s390x
kernel-core-4.9.5-200.fc25.s390x
info-6.1-4.fc25.s390x
iptables-libs-1.6.0-3.fc25.s390x
bind-license-9.10.4-4.P6.fc25.noarch
lua-5.3.4-1.fc25.s390x
libfdisk-2.28.2-2.fc25.s390x
dnf-plugins-core-0.1.21-5.fc25.noarch
selinux-policy-3.13.1-225.11.fc25.noarch
perl-Errno-1.25-385.fc25.s390x
perl-Storable-2.56-368.fc25.s390x
python2-decorator-4.0.11-1.fc25.noarch
mariadb-common-10.1.21-3.fc25.s390x
systemtap-client-3.1-2.fc25.s390x
libnetfilter_conntrack-1.0.6-2.fc25.s390x
texlive-texlive.infra-bin-svn40312-33.20160520.fc25.1.s390x
texlive-ifluatex-svn41346-33.fc25.1.noarch
texlive-fp-svn15878.0-33.fc25.1.noarch
texlive-latex-fonts-svn28888.0-33.fc25.1.noarch
texlive-bibtex-bin-svn40473-33.20160520.fc25.1.s390x
texlive-glyphlist-svn28576.0-33.fc25.1.noarch
texlive-marvosym-svn29349.2.2a-33.fc25.1.noarch
texlive-tex-bin-svn40987-33.20160520.fc25.1.s390x
texlive-texconfig-svn40768-33.fc25.1.noarch
texlive-wasy2-ps-svn35830.0-33.fc25.1.noarch
texlive-psfrag-svn15878.3.04-33.fc25.1.noarch
texlive-charter-svn15878.0-33.fc25.1.noarch
texlive-ec-svn25033.1.0-33.fc25.1.noarch
texlive-lineno-svn21442.4.41-33.fc25.1.noarch
texlive-hyphen-base-svn41138-33.fc25.1.noarch
texlive-manfnt-font-svn35799.0-33.fc25.1.noarch
texlive-ncntrsbk-svn31835.0-33.fc25.1.noarch
texlive-pst-math-svn34786.0.63-33.fc25.1.noarch
texlive-symbol-svn31835.0-33.fc25.1.noarch
texlive-environ-svn33821.0.3-33.fc25.1.noarch
texlive-algorithms-svn38085.0.1-33.fc25.1.noarch
glusterfs-libs-3.10.1-1.fc25.s390x
mesa-libwayland-egl-13.0.4-3.fc25.s390x
glusterfs-api-3.10.1-1.fc25.s390x
kernel-core-4.10.8-200.fc25.s390x
mesa-libwayland-egl-devel-13.0.4-3.fc25.s390x
nss-tools-3.29.3-1.1.fc25.s390x
pcre2-10.23-5.fc25.s390x
perl-Git-2.9.3-3.fc25.noarch
gssproxy-0.7.0-3.fc25.s390x
glusterfs-server-3.10.1-1.fc25.s390x
libglvnd-devel-0.2.999-14.20170308git8e6e102.fc25.s390x
python3-hawkey-0.6.4-3.fc25.s390x
vim-enhanced-8.0.514-1.fc25.s390x
mesa-libgbm-devel-13.0.4-3.fc25.s390x
texlive-ifplatform-svn21156.0.4-33.fc25.1.noarch
texlive-eso-pic-svn37925.2.0g-33.fc25.1.noarch
texlive-xcolor-svn41044-33.fc25.1.noarch
texlive-pst-eps-svn15878.1.0-33.fc25.1.noarch
texlive-pst-text-svn15878.1.00-33.fc25.1.noarch
texlive-rotating-svn16832.2.16b-33.fc25.1.noarch
texlive-pdfpages-svn40638-33.fc25.1.noarch
texlive-cm-super-svn15878.0-33.fc25.1.noarch
texlive-xetex-svn41438-33.fc25.1.noarch
dnf-yum-1.1.10-6.fc25.noarch
mariadb-libs-10.1.21-3.fc25.s390x
rpmlint-1.9-8.fc25.noarch
systemtap-sdt-devel-3.1-2.fc25.s390x
libseccomp-devel-2.3.2-1.fc25.s390x
telnet-0.17-67.fc25.s390x
gpgme-1.8.0-10.fc25.s390x
apr-util-1.5.4-3.fc24.s390x
rsync-3.1.2-2.fc24.s390x
jbigkit-libs-2.1-5.fc24.s390x
pixman-0.34.0-2.fc24.s390x
dwz-0.12-2.fc24.s390x
expect-5.45-22.fc24.s390x
libsigsegv-2.10-10.fc24.s390x
fakeroot-libs-1.20.2-4.fc24.s390x
m17n-lib-1.7.0-5.fc24.s390x
libverto-0.2.6-6.fc24.s390x
libXmu-1.1.2-4.fc24.s390x
libXcursor-1.1.14-6.fc24.s390x
python-kitchen-1.2.4-2.fc24.noarch
polkit-libs-0.113-5.fc24.s390x
fakeroot-1.20.2-4.fc24.s390x
blktrace-1.1.0-3.fc24.s390x
usermode-1.111-8.fc24.s390x
kbd-2.0.3-3.fc24.s390x
libaio-devel-0.3.110-6.fc24.s390x
web-assets-filesystem-5-4.fc24.noarch
expat-2.2.0-1.fc25.s390x
libgpg-error-1.24-1.fc25.s390x
libgcrypt-1.6.6-1.fc25.s390x
findutils-4.6.0-8.fc25.s390x
libassuan-2.4.3-1.fc25.s390x
libusbx-1.0.21-1.fc25.s390x
libxslt-1.1.28-13.fc25.s390x
libmetalink-0.1.3-1.fc25.s390x
perl-File-Path-2.12-365.fc25.noarch
perl-MIME-Base64-3.15-365.fc25.s390x
ncurses-6.0-6.20160709.fc25.s390x
libwayland-server-1.12.0-1.fc25.s390x
perl-Fedora-VSP-0.001-4.fc25.noarch
perl-libintl-perl-1.26-1.fc25.s390x
shadow-utils-4.2.1-11.fc25.s390x
atk-2.22.0-1.fc25.s390x
pam-1.3.0-1.fc25.s390x
harfbuzz-icu-1.3.2-1.fc25.s390x
libsecret-0.18.5-2.fc25.s390x
s390utils-iucvterm-1.36.0-1.fc25.s390x
python3-requests-2.10.0-4.fc25.noarch
pyusb-1.0.0-2.fc25.noarch
python-enum34-1.0.4-6.fc25.noarch
pyOpenSSL-16.0.0-2.fc25.noarch
pyxattr-0.5.3-8.fc25.s390x
libbabeltrace-1.4.0-3.fc25.s390x
libthai-0.1.25-1.fc25.s390x
deltarpm-3.6-17.fc25.s390x
s390utils-mon_statd-1.36.0-1.fc25.s390x
device-mapper-multipath-0.4.9-83.fc25.s390x
python3-pygpgme-0.3-18.fc25.s390x
libreport-filesystem-2.8.0-1.fc25.s390x
ghc-srpm-macros-1.4.2-4.fc25.noarch
rpmdevtools-8.9-1.fc25.noarch
python-dnf-plugins-extras-migrate-0.0.12-4.fc25.noarch
perl-IO-Socket-SSL-2.038-1.fc25.noarch
perl-File-ShareDir-1.102-7.fc25.noarch
tcl-8.6.6-1.fc25.s390x
glibc-2.24-4.fc25.s390x
elfutils-libelf-0.168-1.fc25.s390x
perl-Scalar-List-Utils-1.47-1.fc25.s390x
bzip2-1.0.6-21.fc25.s390x
libss-1.43.3-1.fc25.s390x
libselinux-utils-2.5-13.fc25.s390x
koji-1.11.0-1.fc25.noarch
python3-enchant-1.6.8-1.fc25.noarch
python2-dockerfile-parse-0.0.5-7.fc25.noarch
systemd-bootchart-231-2.fc25.s390x
gcc-objc-6.3.1-1.fc25.s390x
e2fsprogs-1.43.3-1.fc25.s390x
libstdc++-static-6.3.1-1.fc25.s390x
libpng-devel-1.6.27-1.fc25.s390x
perl-XML-Parser-2.44-5.fc25.s390x
lttng-ust-2.8.1-2.fc25.s390x
libXfixes-devel-5.0.3-1.fc25.s390x
libXcomposite-devel-0.4.4-8.fc24.s390x
quota-nls-4.03-7.fc25.noarch
python3-javapackages-4.7.0-6.1.fc25.noarch
libcephfs_jni-devel-10.2.4-2.fc25.s390x
keyutils-libs-devel-1.5.9-8.fc24.s390x
libicu-devel-57.1-4.fc25.s390x
harfbuzz-devel-1.3.2-1.fc25.s390x
libidn-devel-1.33-1.fc25.s390x
libnfs-1.9.8-2.fc24.s390x
libssh2-devel-1.8.0-1.fc25.s390x
qemu-sanity-check-nodeps-1.1.5-5.fc24.s390x
alsa-lib-devel-1.1.1-2.fc25.s390x
libnl3-3.2.29-2.fc25.s390x
kernel-modules-4.9.5-200.fc25.s390x
libpsl-0.17.0-1.fc25.s390x
lua-libs-5.3.4-1.fc25.s390x
libseccomp-2.3.2-1.fc25.s390x
nss-softokn-freebl-devel-3.29.3-1.0.fc25.s390x
copy-jdk-configs-2.2-2.fc25.noarch
json-glib-1.2.6-1.fc25.s390x
python2-dnf-1.1.10-6.fc25.noarch
bind-libs-lite-9.10.4-4.P6.fc25.s390x
perl-IO-1.36-385.fc25.s390x
python2-GitPython-2.1.3-1.fc25.noarch
linux-firmware-20170313-72.git695f2d6d.fc25.noarch
systemd-container-231-14.fc25.s390x
gnutls-dane-3.5.10-1.fc25.s390x
texlive-tetex-bin-svn36770.0-33.20160520.fc25.1.noarch
texlive-amsfonts-svn29208.3.04-33.fc25.1.noarch
texlive-babel-svn40706-33.fc25.1.noarch
texlive-colortbl-svn29803.v1.0a-33.fc25.1.noarch
texlive-babelbib-svn25245.1.31-33.fc25.1.noarch
texlive-footmisc-svn23330.5.5b-33.fc25.1.noarch
texlive-makeindex-svn40768-33.fc25.1.noarch
texlive-plain-svn40274-33.fc25.1.noarch
texlive-texconfig-bin-svn29741.0-33.20160520.fc25.1.noarch
texlive-zapfding-svn31835.0-33.fc25.1.noarch
texlive-microtype-svn41127-33.fc25.1.noarch
texlive-bookman-svn31835.0-33.fc25.1.noarch
texlive-dvisvgm-def-svn41011-33.fc25.1.noarch
texlive-finstrut-svn21719.0.5-33.fc25.1.noarch
texlive-hyph-utf8-svn41189-33.fc25.1.noarch
texlive-lualibs-svn40370-33.fc25.1.noarch
glusterfs-3.10.1-1.fc25.s390x
mesa-libglapi-13.0.4-3.fc25.s390x
mesa-libgbm-13.0.4-3.fc25.s390x
kernel-modules-4.10.8-200.fc25.s390x
glusterfs-fuse-3.10.1-1.fc25.s390x
openldap-2.4.44-10.fc25.s390x
pcre-utf32-8.40-6.fc25.s390x
git-2.9.3-3.fc25.s390x
python2-gluster-3.10.1-1.fc25.s390x
glusterfs-devel-3.10.1-1.fc25.s390x
mesa-libEGL-devel-13.0.4-3.fc25.s390x
glusterfs-api-devel-3.10.1-1.fc25.s390x
sudo-1.8.19p2-1.fc25.s390x
python2-hawkey-0.6.4-3.fc25.s390x
texlive-mparhack-svn15878.1.4-33.fc25.1.noarch
texlive-pspicture-svn15878.0-33.fc25.1.noarch
texlive-soul-svn15878.2.4-33.fc25.1.noarch
texlive-trimspaces-svn15878.1.1-33.fc25.1.noarch
texlive-varwidth-svn24104.0.92-33.fc25.1.noarch
texlive-geometry-svn19716.5.6-33.fc25.1.noarch
texlive-memoir-svn41203-33.fc25.1.noarch
texlive-pgf-svn40966-33.fc25.1.noarch
texlive-pst-coil-svn37377.1.07-33.fc25.1.noarch
texlive-pst-plot-svn41242-33.fc25.1.noarch
texlive-latex-bin-svn41438-33.fc25.1.noarch
texlive-ucs-svn35853.2.2-33.fc25.1.noarch
texlive-ae-svn15878.1.4-33.fc25.1.noarch
texlive-xetex-bin-svn41091-33.20160520.fc25.1.s390x
fedora-upgrade-26.1-1.fc25.noarch
fedpkg-1.28-1.fc25.noarch
perl-Thread-Queue-3.12-1.fc25.noarch
gstreamer1-plugins-base-1.10.4-1.fc25.s390x
screen-4.5.1-1.fc25.s390x
strace-4.16-1.fc25.s390x
fedora-repos-25-3.noarch
libacl-2.2.52-11.fc24.s390x
cdparanoia-libs-10.2-21.fc24.s390x
ustr-1.0.4-21.fc24.s390x
libusb-0.1.5-7.fc24.s390x
readline-devel-6.3-8.fc24.s390x
chkconfig-1.8-1.fc25.s390x
avahi-libs-0.6.32-4.fc25.s390x
perl-Unicode-Normalize-1.25-365.fc25.s390x
perl-libnet-3.10-1.fc25.noarch
perl-podlators-4.09-1.fc25.noarch
graphite2-1.3.6-1.fc25.s390x
dbus-python-1.2.4-2.fc25.s390x
libgnome-keyring-3.12.0-7.fc25.s390x
python-backports-1.0-8.fc25.s390x
python-pycparser-2.14-7.fc25.noarch
plymouth-scripts-0.9.3-0.6.20160620git0e65b86c.fc25.s390x
cronie-1.5.1-2.fc25.s390x
python2-librepo-1.7.18-3.fc25.s390x
libXv-1.0.11-1.fc25.s390x
python2-ndg_httpsclient-0.4.0-4.fc25.noarch
btrfs-progs-4.6.1-1.fc25.s390x
libgcc-6.3.1-1.fc25.s390x
libgomp-6.3.1-1.fc25.s390x
perl-Encode-2.88-5.fc25.s390x
cracklib-2.9.6-4.fc25.s390x
libobjc-6.3.1-1.fc25.s390x
gcc-6.3.1-1.fc25.s390x
python3-dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch
NetworkManager-1.4.4-3.fc25.s390x
glibc-static-2.24-4.fc25.s390x
boost-random-1.60.0-10.fc25.s390x
libref_array-0.1.5-29.fc25.s390x
libXrender-devel-0.9.10-1.fc25.s390x
javapackages-tools-4.7.0-6.1.fc25.noarch
keyutils-1.5.9-8.fc24.s390x
libcom_err-devel-1.43.3-1.fc25.s390x
graphite2-devel-1.3.6-1.fc25.s390x
lzo-minilzo-2.08-8.fc24.s390x
libusbx-devel-1.0.21-1.fc25.s390x
virglrenderer-devel-0.5.0-1.20160411git61846f92f.fc25.s390x
acpica-tools-20160831-1.fc25.s390x
grep-2.27-2.fc25.s390x
dnf-conf-1.1.10-6.fc25.noarch
crypto-policies-20160921-4.gitf3018dd.fc25.noarch
rpm-build-libs-4.13.0.1-1.fc25.s390x
libnfsidmap-0.27-1.fc25.s390x
systemtap-devel-3.1-2.fc25.s390x
systemd-231-14.fc25.s390x
SDL2-2.0.5-3.fc25.s390x
texlive-etex-pkg-svn39355-33.fc25.1.noarch
texlive-multido-svn18302.1.42-33.fc25.1.noarch
texlive-gsftopk-svn40768-33.fc25.1.noarch
texlive-pst-ovl-svn40873-33.fc25.1.noarch
texlive-ltabptch-svn17533.1.74d-33.fc25.1.noarch
texlive-cite-svn36428.5.5-33.fc25.1.noarch
texlive-fpl-svn15878.1.002-33.fc25.1.noarch
texlive-mathpazo-svn15878.1.003-33.fc25.1.noarch
texlive-rcs-svn15878.0-33.fc25.1.noarch
texlive-type1cm-svn21820.0-33.fc25.1.noarch
texlive-l3kernel-svn41246-33.fc25.1.noarch
texlive-hyperref-svn41396-33.fc25.1.noarch
texlive-pst-tree-svn24142.1.12-33.fc25.1.noarch
texlive-sansmathaccent-svn30187.0-33.fc25.1.noarch
texlive-dvipdfmx-bin-svn40273-33.20160520.fc25.1.s390x
texlive-zapfchan-svn31835.0-33.fc25.1.noarch
firewalld-0.4.4.4-1.fc25.noarch
glib2-static-2.50.3-1.fc25.s390x
libmicrohttpd-0.9.52-3.fc25.s390x
perl-open-1.10-385.fc25.noarch
bash-completion-2.5-1.fc25.noarch
libsolv-0.6.26-3.fc25.s390x
ghostscript-core-9.20-7.fc25.s390x
nss-util-devel-3.29.3-1.1.fc25.s390x
kernel-headers-4.10.8-200.fc25.s390x
system-python-3.5.3-4.fc25.s390x
iproute-tc-4.10.0-1.fc25.s390x
audit-2.7.4-1.fc25.s390x
gpg-pubkey-a29cb19c-53bcbba6
m4-1.4.17-9.fc24.s390x
liblockfile-1.09-4.fc24.s390x
sg3_utils-1.41-3.fc24.s390x
libXinerama-1.1.3-6.fc24.s390x
libXft-2.3.2-4.fc24.s390x
tcp_wrappers-libs-7.6-83.fc25.s390x
perl-Text-Tabs+Wrap-2013.0523-365.fc25.noarch
perl-Error-0.17024-7.fc25.noarch
perl-Term-Cap-1.17-365.fc25.noarch
perl-Pod-Usage-1.69-1.fc25.noarch
device-mapper-persistent-data-0.6.3-1.fc25.s390x
net-snmp-libs-5.7.3-13.fc25.s390x
libgusb-0.2.9-1.fc25.s390x
python3-six-1.10.0-3.fc25.noarch
python3-pysocks-1.5.6-5.fc25.noarch
python-chardet-2.3.0-1.fc25.noarch
python2-cffi-1.7.0-2.fc25.s390x
gc-devel-7.4.4-1.fc25.s390x
plymouth-0.9.3-0.6.20160620git0e65b86c.fc25.s390x
ebtables-2.0.10-21.fc25.s390x
python3-librepo-1.7.18-3.fc25.s390x
net-snmp-5.7.3-13.fc25.s390x
at-spi2-atk-2.22.0-1.fc25.s390x
avahi-autoipd-0.6.32-4.fc25.s390x
libcrypt-nss-2.24-4.fc25.s390x
libgo-6.3.1-1.fc25.s390x
cpp-6.3.1-1.fc25.s390x
glibc-devel-2.24-4.fc25.s390x
emacs-25.1-3.fc25.s390x
pyparsing-2.1.10-1.fc25.noarch
libproxy-0.4.14-1.fc25.s390x
python3-pyparsing-2.1.10-1.fc25.noarch
libcollection-0.7.0-29.fc25.s390x
libcephfs-devel-10.2.4-2.fc25.s390x
libXdamage-devel-1.1.4-8.fc24.s390x
libverto-devel-0.2.6-6.fc24.s390x
snappy-1.1.3-2.fc24.s390x
cairo-gobject-devel-1.14.8-1.fc25.s390x
cyrus-sasl-devel-2.1.26-26.2.fc24.s390x
kernel-devel-4.9.5-200.fc25.s390x
libXi-1.7.9-1.fc25.s390x
distribution-gpg-keys-1.11-1.fc25.noarch
texlive-base-2016-33.20160520.fc25.noarch
gstreamer1-1.10.4-1.fc25.s390x
python3-rpm-4.13.0.1-1.fc25.s390x
systemtap-runtime-3.1-2.fc25.s390x
perl-SelfLoader-1.23-385.fc25.noarch
bind99-license-9.9.9-4.P6.fc25.noarch
texlive-booktabs-svn40846-33.fc25.1.noarch
texlive-lm-svn28119.2.004-33.fc25.1.noarch
texlive-gsftopk-bin-svn40473-33.20160520.fc25.1.s390x
texlive-tex-svn40793-33.fc25.1.noarch
texlive-fancyref-svn15878.0.9c-33.fc25.1.noarch
texlive-chngcntr-svn17157.1.0a-33.fc25.1.noarch
texlive-fix2col-svn38770-33.fc25.1.noarch
texlive-marginnote-svn41382-33.fc25.1.noarch
texlive-pxfonts-svn15878.0-33.fc25.1.noarch
texlive-txfonts-svn15878.0-33.fc25.1.noarch
texlive-l3packages-svn41246-33.fc25.1.noarch
texlive-oberdiek-svn41346-33.fc25.1.noarch
texlive-pst-tools-svn34067.0.05-33.fc25.1.noarch
texlive-tex-gyre-svn18651.2.004-33.fc25.1.noarch
texlive-dvipdfmx-svn41149-33.fc25.1.noarch
texlive-collection-fontsrecommended-svn35830.0-33.20160520.fc25.1.noarch
gnutls-devel-3.5.10-1.fc25.s390x
libcacard-devel-2.5.3-1.fc25.s390x
selinux-policy-targeted-3.13.1-225.11.fc25.noarch
ykpers-1.18.0-2.fc25.s390x
python2-idna-2.5-1.fc25.noarch
dbus-libs-1.11.12-1.fc25.s390x
ghostscript-x11-9.20-7.fc25.s390x
vim-minimal-8.0.514-1.fc25.s390x
libdrm-devel-2.4.77-1.fc25.s390x
file-libs-5.29-4.fc25.s390x
gtk3-devel-3.22.11-1.fc25.s390x
policycoreutils-2.5-20.fc25.s390x
python-async-0.6.1-9.fc22.s390x
dejavu-sans-mono-fonts-2.35-3.fc24.noarch
popt-1.16-7.fc24.s390x
cyrus-sasl-lib-2.1.26-26.2.fc24.s390x
xz-5.2.2-2.fc24.s390x
libpipeline-1.4.1-2.fc24.s390x
pinentry-0.9.7-2.fc24.s390x
pth-2.0.7-27.fc24.s390x
libsepol-2.5-10.fc25.s390x
sqlite-libs-3.14.2-1.fc25.s390x
libxcb-1.12-1.fc25.s390x
libicu-57.1-4.fc25.s390x
perl-Getopt-Long-2.49.1-1.fc25.noarch
avahi-glib-0.6.32-4.fc25.s390x
python3-pip-8.1.2-2.fc25.noarch
python3-libcomps-0.1.7-5.fc25.s390x
python-slip-0.6.4-4.fc25.noarch
python2-libcomps-0.1.7-5.fc25.s390x
gc-7.4.4-1.fc25.s390x
s390utils-cmsfs-1.36.0-1.fc25.s390x
newt-python-0.52.19-2.fc25.s390x
valgrind-3.12.0-1.fc25.s390x
emacs-filesystem-25.1-3.fc25.noarch
libdb-utils-5.3.28-16.fc25.s390x
qt5-srpm-macros-5.7.1-1.fc25.noarch
elfutils-default-yama-scope-0.168-1.fc25.noarch
device-mapper-event-1.02.136-3.fc25.s390x
perl-Class-Inspector-1.31-2.fc25.noarch
poppler-0.45.0-2.fc25.s390x
libbasicobjects-0.1.1-29.fc25.s390x
libradosstriper1-10.2.4-2.fc25.s390x
libXxf86vm-devel-1.1.4-3.fc24.s390x
gsm-1.0.16-1.fc25.s390x
zziplib-0.13.62-7.fc24.s390x
libpaper-1.1.24-12.fc24.s390x
libini_config-1.3.0-29.fc25.s390x
snappy-devel-1.1.3-2.fc24.s390x
libcap-ng-devel-0.7.8-1.fc25.s390x
libxkbcommon-devel-0.7.1-1.fc25.s390x
kernel-4.9.5-200.fc25.s390x
nss-softokn-3.29.3-1.0.fc25.s390x
openssl-libs-1.0.2k-1.fc25.s390x
libkadm5-1.14.4-7.fc25.s390x
rpm-libs-4.13.0.1-1.fc25.s390x
perl-5.24.1-385.fc25.s390x
util-linux-2.28.2-2.fc25.s390x
libICE-1.0.9-8.fc25.s390x
texlive-etoolbox-svn38031.2.2a-33.fc25.1.noarch
texlive-dvips-svn41149-33.fc25.1.noarch
texlive-latexconfig-svn40274-33.fc25.1.noarch
texlive-tex-ini-files-svn40533-33.fc25.1.noarch
texlive-qstest-svn15878.0-33.fc25.1.noarch
texlive-cmap-svn41168-33.fc25.1.noarch
texlive-luatex-bin-svn41091-33.20160520.fc25.1.s390x
texlive-mflogo-svn38628-33.fc25.1.noarch
texlive-sansmath-svn17997.1.1-33.fc25.1.noarch
texlive-unicode-data-svn39808-33.fc25.1.noarch
texlive-luaotfload-bin-svn34647.0-33.20160520.fc25.1.noarch
texlive-listings-svn37534.1.6-33.fc25.1.noarch
texlive-pstricks-svn41321-33.fc25.1.noarch
texlive-metalogo-svn18611.0.12-33.fc25.1.noarch
texlive-collection-latex-svn41011-33.20160520.fc25.1.noarch
kernel-4.10.5-200.fc25.s390x
python2-dnf-plugins-core-0.1.21-5.fc25.noarch
xkeyboard-config-2.20-2.fc25.noarch
nss-util-3.29.3-1.1.fc25.s390x
dbus-1.11.12-1.fc25.s390x
ghostscript-9.20-7.fc25.s390x
vim-filesystem-8.0.514-1.fc25.s390x
jasper-libs-1.900.13-3.fc25.s390x
file-5.29-4.fc25.s390x
curl-7.51.0-6.fc25.s390x
perl-Test-Harness-3.39-1.fc25.noarch
libattr-2.4.47-16.fc24.s390x
acl-2.2.52-11.fc24.s390x
libvisual-0.4.0-20.fc24.s390x
libpcap-1.7.4-2.fc24.s390x
libutempter-1.1.6-8.fc24.s390x
libgudev-230-3.fc24.s390x
popt-devel-1.16-7.fc24.s390x
make-4.1-5.fc24.s390x
hicolor-icon-theme-0.15-3.fc24.noarch
setup-2.10.4-1.fc25.noarch
bash-4.3.43-4.fc25.s390x
nspr-4.13.1-1.fc25.s390x
libjpeg-turbo-1.5.1-0.fc25.s390x
perl-Socket-2.024-1.fc25.s390x
perl-HTTP-Tiny-0.070-1.fc25.noarch
ipset-6.29-1.fc25.s390x
python2-setuptools-25.1.1-1.fc25.noarch
gsettings-desktop-schemas-3.22.0-1.fc25.s390x
python3-setuptools-25.1.1-1.fc25.noarch
python-slip-dbus-0.6.4-4.fc25.noarch
python2-ply-3.8-2.fc25.noarch
dtc-1.4.2-1.fc25.s390x
guile-2.0.13-1.fc25.s390x
cronie-anacron-1.5.1-2.fc25.s390x
libXtst-1.2.3-1.fc25.s390x
iso-codes-3.70-1.fc25.noarch
s390utils-1.36.0-1.fc25.s390x
python-backports-ssl_match_hostname-3.5.0.1-3.fc25.noarch
fedora-cert-0.6.0.1-1.fc25.noarch
libstdc++-6.3.1-1.fc25.s390x
subversion-libs-1.9.5-1.fc25.s390x
libgfortran-6.3.1-1.fc25.s390x
libtasn1-4.10-1.fc25.s390x
dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch
lvm2-2.02.167-3.fc25.s390x
libselinux-devel-2.5-13.fc25.s390x
perl-Time-Local-1.250-1.fc25.noarch
libtirpc-1.0.1-3.rc3.fc25.s390x
libradosstriper-devel-10.2.4-2.fc25.s390x
flac-libs-1.3.2-1.fc25.s390x
perl-Digest-1.17-366.fc25.noarch
teckit-2.5.1-15.fc24.s390x
libpath_utils-0.2.1-29.fc25.s390x
attr-2.4.47-16.fc24.s390x
usbredir-0.7.1-2.fc24.s390x
cairo-devel-1.14.8-1.fc25.s390x
lzo-devel-2.08-8.fc24.s390x
libcap-devel-2.25-2.fc25.s390x
opus-1.1.3-2.fc25.s390x
firewalld-filesystem-0.4.4.4-1.fc25.noarch
coreutils-8.25-16.fc25.s390x
krb5-devel-1.14.4-7.fc25.s390x
rpm-4.13.0.1-1.fc25.s390x
kernel-devel-4.10.5-200.fc25.s390x
systemd-pam-231-14.fc25.s390x
libbsd-0.8.3-1.fc25.s390x
texlive-url-svn32528.3.4-33.fc25.1.noarch
texlive-dvips-bin-svn40987-33.20160520.fc25.1.s390x
texlive-index-svn24099.4.1beta-33.fc25.1.noarch
texlive-setspace-svn24881.6.7a-33.fc25.1.noarch
texlive-mathtools-svn38833-33.fc25.1.noarch
texlive-cm-svn32865.0-33.fc25.1.noarch
texlive-graphics-def-svn41879-33.fc25.1.noarch
texlive-mdwtools-svn15878.1.05.4-33.fc25.1.noarch
texlive-rsfs-svn15878.0-33.fc25.1.noarch
texlive-ucharcat-svn38907-33.fc25.1.noarch
texlive-fontspec-svn41262-33.fc25.1.noarch
texlive-showexpl-svn32737.v0.3l-33.fc25.1.noarch
texlive-pstricks-add-svn40744-33.fc25.1.noarch
texlive-beamer-svn36461.3.36-33.fc25.1.noarch
texlive-collection-basic-svn41149-33.20160520.fc25.1.noarch
mock-1.3.4-1.fc25.noarch
rpm-build-4.13.0.1-1.fc25.s390x
xemacs-filesystem-21.5.34-20.20170124hgf412e9f093d4.fc25.noarch
nss-sysinit-3.29.3-1.1.fc25.s390x
hawkey-0.6.4-3.fc25.s390x
mesa-libGLES-13.0.4-3.fc25.s390x
vim-common-8.0.514-1.fc25.s390x
gdk-pixbuf2-modules-2.36.6-1.fc25.s390x
bluez-libs-5.44-1.fc25.s390x
libcurl-devel-7.51.0-6.fc25.s390x
mc-4.8.19-1.fc25.s390x
gpg-pubkey-a0a7badb-52844296
readline-6.3-8.fc24.s390x
cpio-2.12-3.fc24.s390x
qrencode-libs-3.4.2-6.fc24.s390x
libXcomposite-0.4.4-8.fc24.s390x
procps-ng-3.3.10-11.fc24.s390x
GConf2-3.2.6-16.fc24.s390x
xz-devel-5.2.2-2.fc24.s390x
fedora-logos-22.0.0-3.fc24.s390x
gpg-pubkey-e372e838-56fd7943
kmod-libs-23-1.fc25.s390x
perl-parent-0.236-1.fc25.noarch
perl-TermReadKey-2.37-1.fc25.s390x
dhcp-libs-4.3.5-1.fc25.s390x
ncurses-c++-libs-6.0-6.20160709.fc25.s390x
gzip-1.8-1.fc25.s390x
python3-gobject-base-3.22.0-1.fc25.s390x
python2-yubico-1.3.2-3.fc25.noarch
s390utils-ziomon-1.36.0-1.fc25.s390x
librepo-1.7.18-3.fc25.s390x
librsvg2-2.40.16-2.fc25.s390x
gnat-srpm-macros-4-1.fc25.noarch
python-decoratortools-1.8-12.fc25.noarch
m17n-db-1.7.0-7.fc25.noarch
glibc-common-2.24-4.fc25.s390x
e2fsprogs-libs-1.43.3-1.fc25.s390x
libvorbis-1.3.5-1.fc25.s390x
gcc-gdb-plugin-6.3.1-1.fc25.s390x
perl-Time-HiRes-1.9741-1.fc25.s390x
npth-1.3-1.fc25.s390x
libcephfs1-10.2.4-2.fc25.s390x
wayland-devel-1.12.0-1.fc25.s390x
libxcb-devel-1.12-1.fc25.s390x
perl-encoding-2.19-5.fc25.s390x
python3-cssselect-0.9.2-1.fc25.noarch
gettext-libs-0.19.8.1-3.fc25.s390x
at-spi2-atk-devel-2.22.0-1.fc25.s390x
virglrenderer-0.5.0-1.20160411git61846f92f.fc25.s390x
pixman-devel-0.34.0-2.fc24.s390x
libnfs-devel-1.9.8-2.fc24.s390x
libX11-common-1.6.4-4.fc25.noarch
nss-softokn-devel-3.29.3-1.0.fc25.s390x
libblkid-2.28.2-2.fc25.s390x
bind-libs-9.10.4-4.P6.fc25.s390x
glib2-devel-2.50.3-1.fc25.s390x
systemd-udev-231-14.fc25.s390x
texlive-ifxetex-svn19685.0.5-33.fc25.1.noarch
texlive-caption-svn41409-33.fc25.1.noarch
texlive-float-svn15878.1.3d-33.fc25.1.noarch
texlive-pdftex-def-svn22653.0.06d-33.fc25.1.noarch
texlive-xdvi-bin-svn40750-33.20160520.fc25.1.s390x
texlive-beton-svn15878.0-33.fc25.1.noarch
texlive-filecontents-svn24250.1.3-33.fc25.1.noarch
texlive-lm-math-svn36915.1.959-33.fc25.1.noarch
texlive-pslatex-svn16416.0-33.fc25.1.noarch
texlive-times-svn35058.0-33.fc25.1.noarch
texlive-breakurl-svn29901.1.40-33.fc25.1.noarch
texlive-filehook-svn24280.0.5d-33.fc25.1.noarch
texlive-pst-pdf-svn31660.1.1v-33.fc25.1.noarch
texlive-seminar-svn34011.1.62-33.fc25.1.noarch
texlive-xetexconfig-svn41133-33.fc25.1.noarch
systemtap-3.1-2.fc25.s390x
python-rpm-macros-3-12.fc25.noarch
rpm-devel-4.13.0.1-1.fc25.s390x
nss-pem-1.0.3-3.fc25.s390x
mesa-libGL-13.0.4-3.fc25.s390x
at-spi2-core-2.22.1-1.fc25.s390x
pcre2-utf32-10.23-5.fc25.s390x
gtk3-3.22.11-1.fc25.s390x
GeoIP-GeoLite-data-2017.04-1.fc25.noarch
pcre-static-8.40-6.fc25.s390x
kernel-devel-4.10.8-200.fc25.s390x
=== TEST BEGIN ===
Using CC: /home/fam/bin/cc
Install prefix    /var/tmp/patchew-tester-tmp-ppys535z/src/install
BIOS directory    /var/tmp/patchew-tester-tmp-ppys535z/src/install/share/qemu
binary directory  /var/tmp/patchew-tester-tmp-ppys535z/src/install/bin
library directory /var/tmp/patchew-tester-tmp-ppys535z/src/install/lib
module directory  /var/tmp/patchew-tester-tmp-ppys535z/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-ppys535z/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-ppys535z/src/install/include
config directory  /var/tmp/patchew-tester-tmp-ppys535z/src/install/etc
local state directory   /var/tmp/patchew-tester-tmp-ppys535z/src/install/var
Manual directory  /var/tmp/patchew-tester-tmp-ppys535z/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /var/tmp/patchew-tester-tmp-ppys535z/src
C compiler        /home/fam/bin/cc
Host C compiler   cc
C++ compiler      c++
Objective-C compiler /home/fam/bin/cc
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g 
QEMU_CFLAGS       -I/usr/include/pixman-1  -Werror -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -D_GNU_SOURCE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1    -I/usr/include/libpng16 -I/usr/include/libdrm  -I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libusb-1.0 
LDFLAGS           -Wl,--warn-common -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          s390x
host big endian   yes
target list        aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
tcg debug enabled no
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
pixman            system
SDL support       yes (2.0.5)
GTK support       yes (3.22.11)
GTK GL support    yes
VTE support       yes (0.46.1)
TLS priority      NORMAL
GNUTLS support    yes
GNUTLS rnd        yes
libgcrypt         no
libgcrypt kdf     no
nettle            yes (3.3)
nettle kdf        yes
libtasn1          yes
curses support    yes
virgl support     yes
curl support      yes
mingw32 support   no
Audio drivers     oss
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    yes
VNC support       yes
VNC SASL support  yes
VNC JPEG support  yes
VNC PNG support   yes
xen support       no
brlapi support    yes
bluez  support    yes
Documentation     yes
PIE               no
vde support       no
netmap support    no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs     yes
KVM support       yes
HAX support       no
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    yes
fdatasync         yes
madvise           yes
posix_madvise     yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
Trace backends    log
spice support     no 
rbd support       yes
xfsctl support    no
smartcard support yes
libusb            yes
usb net redir     yes
OpenGL support    yes
OpenGL dmabufs    yes
libiscsi support  yes
libnfs support    yes
build guest agent yes
QGA VSS support   no
QGA w32 disk info no
QGA MSI support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
debug stack usage no
GlusterFS support yes
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   yes
TPM passthrough   no
QOM debugging     yes
lzo support       yes
snappy support    yes
bzip2 support     yes
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization no
replication support yes
VxHS block device no
  GEN     aarch64-softmmu/config-devices.mak.tmp
  GEN     arm-softmmu/config-devices.mak.tmp
  GEN     cris-softmmu/config-devices.mak.tmp
  GEN     alpha-softmmu/config-devices.mak.tmp
  GEN     cris-softmmu/config-devices.mak
  GEN     i386-softmmu/config-devices.mak.tmp
  GEN     alpha-softmmu/config-devices.mak
  GEN     arm-softmmu/config-devices.mak
  GEN     lm32-softmmu/config-devices.mak.tmp
  GEN     m68k-softmmu/config-devices.mak.tmp
  GEN     aarch64-softmmu/config-devices.mak
  GEN     microblazeel-softmmu/config-devices.mak.tmp
  GEN     i386-softmmu/config-devices.mak
  GEN     m68k-softmmu/config-devices.mak
  GEN     lm32-softmmu/config-devices.mak
  GEN     microblaze-softmmu/config-devices.mak.tmp
  GEN     mips64el-softmmu/config-devices.mak.tmp
  GEN     mips64-softmmu/config-devices.mak.tmp
  GEN     microblazeel-softmmu/config-devices.mak
  GEN     mipsel-softmmu/config-devices.mak.tmp
  GEN     microblaze-softmmu/config-devices.mak
  GEN     mips-softmmu/config-devices.mak.tmp
  GEN     mips64-softmmu/config-devices.mak
  GEN     mips64el-softmmu/config-devices.mak
  GEN     nios2-softmmu/config-devices.mak.tmp
  GEN     moxie-softmmu/config-devices.mak.tmp
  GEN     mipsel-softmmu/config-devices.mak
  GEN     or1k-softmmu/config-devices.mak.tmp
  GEN     moxie-softmmu/config-devices.mak
  GEN     ppc64-softmmu/config-devices.mak.tmp
  GEN     nios2-softmmu/config-devices.mak
  GEN     mips-softmmu/config-devices.mak
  GEN     ppcemb-softmmu/config-devices.mak.tmp
  GEN     ppc-softmmu/config-devices.mak.tmp
  GEN     or1k-softmmu/config-devices.mak
  GEN     s390x-softmmu/config-devices.mak.tmp
  GEN     ppc64-softmmu/config-devices.mak
  GEN     ppcemb-softmmu/config-devices.mak
  GEN     s390x-softmmu/config-devices.mak
  GEN     sh4eb-softmmu/config-devices.mak.tmp
  GEN     sparc64-softmmu/config-devices.mak.tmp
  GEN     sh4-softmmu/config-devices.mak.tmp
  GEN     ppc-softmmu/config-devices.mak
  GEN     sparc-softmmu/config-devices.mak.tmp
  GEN     sparc64-softmmu/config-devices.mak
  GEN     sh4-softmmu/config-devices.mak
  GEN     sh4eb-softmmu/config-devices.mak
  GEN     tricore-softmmu/config-devices.mak.tmp
  GEN     unicore32-softmmu/config-devices.mak.tmp
  GEN     x86_64-softmmu/config-devices.mak.tmp
  GEN     sparc-softmmu/config-devices.mak
  GEN     xtensaeb-softmmu/config-devices.mak.tmp
  GEN     tricore-softmmu/config-devices.mak
  GEN     unicore32-softmmu/config-devices.mak
  GEN     aarch64-linux-user/config-devices.mak.tmp
  GEN     xtensa-softmmu/config-devices.mak.tmp
  GEN     x86_64-softmmu/config-devices.mak
  GEN     alpha-linux-user/config-devices.mak.tmp
  GEN     xtensaeb-softmmu/config-devices.mak
  GEN     xtensa-softmmu/config-devices.mak
  GEN     arm-linux-user/config-devices.mak.tmp
  GEN     armeb-linux-user/config-devices.mak.tmp
  GEN     aarch64-linux-user/config-devices.mak
  GEN     cris-linux-user/config-devices.mak.tmp
  GEN     alpha-linux-user/config-devices.mak
  GEN     hppa-linux-user/config-devices.mak.tmp
  GEN     armeb-linux-user/config-devices.mak
  GEN     arm-linux-user/config-devices.mak
  GEN     cris-linux-user/config-devices.mak
  GEN     i386-linux-user/config-devices.mak.tmp
  GEN     m68k-linux-user/config-devices.mak.tmp
  GEN     microblazeel-linux-user/config-devices.mak.tmp
  GEN     hppa-linux-user/config-devices.mak
  GEN     m68k-linux-user/config-devices.mak
  GEN     microblazeel-linux-user/config-devices.mak
  GEN     i386-linux-user/config-devices.mak
  GEN     microblaze-linux-user/config-devices.mak.tmp
  GEN     mips64el-linux-user/config-devices.mak.tmp
  GEN     mips64-linux-user/config-devices.mak.tmp
  GEN     mipsel-linux-user/config-devices.mak.tmp
  GEN     mips64el-linux-user/config-devices.mak
  GEN     microblaze-linux-user/config-devices.mak
  GEN     mips64-linux-user/config-devices.mak
  GEN     mipsel-linux-user/config-devices.mak
  GEN     mipsn32el-linux-user/config-devices.mak.tmp
  GEN     mips-linux-user/config-devices.mak.tmp
  GEN     mipsn32-linux-user/config-devices.mak.tmp
  GEN     nios2-linux-user/config-devices.mak.tmp
  GEN     mipsn32el-linux-user/config-devices.mak
  GEN     mips-linux-user/config-devices.mak
  GEN     mipsn32-linux-user/config-devices.mak
  GEN     or1k-linux-user/config-devices.mak.tmp
  GEN     ppc64abi32-linux-user/config-devices.mak.tmp
  GEN     nios2-linux-user/config-devices.mak
  GEN     ppc64le-linux-user/config-devices.mak.tmp
  GEN     ppc64-linux-user/config-devices.mak.tmp
  GEN     ppc64le-linux-user/config-devices.mak
  GEN     ppc64abi32-linux-user/config-devices.mak
  GEN     or1k-linux-user/config-devices.mak
  GEN     ppc-linux-user/config-devices.mak.tmp
  GEN     ppc64-linux-user/config-devices.mak
  GEN     s390x-linux-user/config-devices.mak.tmp
  GEN     sh4eb-linux-user/config-devices.mak.tmp
  GEN     sh4-linux-user/config-devices.mak.tmp
  GEN     s390x-linux-user/config-devices.mak
  GEN     ppc-linux-user/config-devices.mak
  GEN     sparc32plus-linux-user/config-devices.mak.tmp
  GEN     sh4eb-linux-user/config-devices.mak
  GEN     sparc64-linux-user/config-devices.mak.tmp
  GEN     sh4-linux-user/config-devices.mak
  GEN     sparc-linux-user/config-devices.mak.tmp
  GEN     tilegx-linux-user/config-devices.mak.tmp
  GEN     sparc32plus-linux-user/config-devices.mak
  GEN     sparc64-linux-user/config-devices.mak
  GEN     tilegx-linux-user/config-devices.mak
  GEN     x86_64-linux-user/config-devices.mak.tmp
  GEN     sparc-linux-user/config-devices.mak
  GEN     config-host.h
  GEN     qemu-options.def
  GEN     x86_64-linux-user/config-devices.mak
  GEN     qapi-types.h
  GEN     qmp-commands.h
  GEN     qapi-visit.h
  GEN     qapi-event.h
  GEN     qmp-marshal.c
  GEN     qapi-types.c
  GEN     qapi-visit.c
  GEN     qapi-event.c
  GEN     qmp-introspect.h
  GEN     qmp-introspect.c
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers.c
  GEN     trace/generated-helpers.h
  GEN     module_block.h
  GEN     tests/test-qapi-types.h
  GEN     tests/test-qapi-visit.h
  GEN     tests/test-qmp-commands.h
  GEN     tests/test-qapi-event.h
  GEN     tests/test-qmp-introspect.h
  GEN     trace-root.h
  GEN     util/trace.h
  GEN     crypto/trace.h
  GEN     io/trace.h
  GEN     migration/trace.h
  GEN     block/trace.h
  GEN     backends/trace.h
  GEN     hw/block/trace.h
  GEN     hw/char/trace.h
  GEN     hw/block/dataplane/trace.h
  GEN     hw/intc/trace.h
  GEN     hw/net/trace.h
  GEN     hw/virtio/trace.h
  GEN     hw/audio/trace.h
  GEN     hw/misc/trace.h
  GEN     hw/usb/trace.h
  GEN     hw/scsi/trace.h
  GEN     hw/nvram/trace.h
  GEN     hw/display/trace.h
  GEN     hw/input/trace.h
  GEN     hw/timer/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/dma/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/xen/trace.h
  GEN     ui/trace.h
  GEN     audio/trace.h
  GEN     net/trace.h
  GEN     target/arm/trace.h
  GEN     target/i386/trace.h
  GEN     target/sparc/trace.h
  GEN     target/mips/trace.h
  GEN     target/s390x/trace.h
  GEN     target/ppc/trace.h
  GEN     qom/trace.h
  GEN     linux-user/trace.h
  GEN     qapi/trace.h
  GEN     trace-root.c
  GEN     util/trace.c
  GEN     crypto/trace.c
  GEN     io/trace.c
  GEN     migration/trace.c
  GEN     block/trace.c
  GEN     backends/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/net/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/display/trace.c
  GEN     hw/input/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/ppc/trace.c
  GEN     hw/pci/trace.c
  GEN     hw/s390x/trace.c
  GEN     hw/vfio/trace.c
  GEN     hw/acpi/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/xen/trace.c
  GEN     ui/trace.c
  GEN     audio/trace.c
  GEN     net/trace.c
  GEN     target/arm/trace.c
  GEN     target/i386/trace.c
  GEN     target/sparc/trace.c
  GEN     target/mips/trace.c
  GEN     target/s390x/trace.c
  GEN     qom/trace.c
  GEN     target/ppc/trace.c
  GEN     linux-user/trace.c
  GEN     qapi/trace.c
  GEN     config-all-devices.mak
  CC      tests/qemu-iotests/socket_scm_helper.o
  GEN     qemu-img-cmds.texi
  GEN     qemu-monitor.texi
  GEN     qemu-options.texi
  GEN     qemu-monitor-info.texi
  GEN     qemu-img.1
  GEN     qemu-nbd.8
  GEN     qemu-ga.8
  GEN     docs/version.texi
  GEN     docs/qemu-qmp-qapi.texi
  GEN     docs/qemu-ga-qapi.texi
  GEN     fsdev/virtfs-proxy-helper.1
  GEN     qga/qapi-generated/qga-qapi-types.h
  GEN     qga/qapi-generated/qga-qapi-visit.h
  GEN     qga/qapi-generated/qga-qmp-commands.h
  GEN     qga/qapi-generated/qga-qapi-types.c
  GEN     qga/qapi-generated/qga-qapi-visit.c
  GEN     qga/qapi-generated/qga-qmp-marshal.c
  CC      qmp-introspect.o
  CC      qapi-types.o
  CC      qapi-visit.o
  CC      qapi-event.o
  CC      qapi/qapi-visit-core.o
  CC      qapi/qapi-dealloc-visitor.o
  CC      qapi/qobject-input-visitor.o
  CC      qapi/qobject-output-visitor.o
  CC      qapi/qmp-registry.o
  CC      qapi/qmp-dispatch.o
  CC      qapi/string-input-visitor.o
  CC      qapi/string-output-visitor.o
  CC      qapi/opts-visitor.o
  CC      qapi/qapi-clone-visitor.o
  CC      qapi/qmp-event.o
  CC      qapi/qapi-util.o
  CC      qobject/qnull.o
  CC      qobject/qint.o
  CC      qobject/qstring.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qfloat.o
  CC      qobject/qbool.o
  CC      qobject/qjson.o
  CC      qobject/qobject.o
  CC      qobject/json-lexer.o
  CC      qobject/json-streamer.o
  CC      qobject/json-parser.o
  CC      trace/control.o
  CC      trace/qmp.o
  CC      util/osdep.o
  CC      util/cutils.o
  CC      util/unicode.o
  CC      util/qemu-timer-common.o
  CC      util/bufferiszero.o
  CC      util/lockcnt.o
  CC      util/aiocb.o
  CC      util/async.o
  CC      util/thread-pool.o
  CC      util/qemu-timer.o
  CC      util/main-loop.o
  CC      util/iohandler.o
  CC      util/aio-posix.o
  CC      util/compatfd.o
  CC      util/event_notifier-posix.o
  CC      util/mmap-alloc.o
  CC      util/oslib-posix.o
  CC      util/qemu-openpty.o
  CC      util/qemu-thread-posix.o
  CC      util/memfd.o
  CC      util/envlist.o
  CC      util/path.o
  CC      util/module.o
  CC      util/host-utils.o
  CC      util/bitmap.o
  CC      util/hbitmap.o
  CC      util/fifo8.o
  CC      util/bitops.o
  CC      util/acl.o
  CC      util/error.o
  CC      util/qemu-error.o
  CC      util/iov.o
  CC      util/id.o
  CC      util/qemu-config.o
  CC      util/qemu-sockets.o
  CC      util/uri.o
  CC      util/notify.o
  CC      util/qemu-option.o
  CC      util/qemu-progress.o
  CC      util/keyval.o
  CC      util/hexdump.o
  CC      util/crc32c.o
  CC      util/uuid.o
  CC      util/throttle.o
  CC      util/getauxval.o
  CC      util/readline.o
  CC      util/rcu.o
  CC      util/qemu-coroutine.o
  CC      util/qemu-coroutine-lock.o
  CC      util/qemu-coroutine-io.o
  CC      util/qemu-coroutine-sleep.o
  CC      util/coroutine-ucontext.o
  CC      util/buffer.o
  CC      util/timed-average.o
  CC      util/base64.o
  CC      util/log.o
  CC      util/qht.o
  CC      util/qdist.o
  CC      util/range.o
  CC      util/systemd.o
  CC      trace-root.o
  CC      util/trace.o
  CC      crypto/trace.o
  CC      io/trace.o
  CC      migration/trace.o
  CC      block/trace.o
  CC      backends/trace.o
  CC      hw/block/trace.o
  CC      hw/block/dataplane/trace.o
  CC      hw/char/trace.o
  CC      hw/intc/trace.o
  CC      hw/net/trace.o
  CC      hw/virtio/trace.o
  CC      hw/audio/trace.o
  CC      hw/misc/trace.o
  CC      hw/usb/trace.o
  CC      hw/scsi/trace.o
  CC      hw/nvram/trace.o
  CC      hw/display/trace.o
  CC      hw/input/trace.o
  CC      hw/timer/trace.o
  CC      hw/dma/trace.o
  CC      hw/sparc/trace.o
  CC      hw/sd/trace.o
  CC      hw/mem/trace.o
  CC      hw/isa/trace.o
  CC      hw/i386/trace.o
  CC      hw/i386/xen/trace.o
  CC      hw/9pfs/trace.o
  CC      hw/ppc/trace.o
  CC      hw/s390x/trace.o
  CC      hw/pci/trace.o
  CC      hw/vfio/trace.o
  CC      hw/acpi/trace.o
  CC      hw/arm/trace.o
  CC      hw/alpha/trace.o
  CC      hw/xen/trace.o
  CC      ui/trace.o
  CC      audio/trace.o
  CC      net/trace.o
  CC      target/arm/trace.o
  CC      target/i386/trace.o
  CC      target/mips/trace.o
  CC      target/sparc/trace.o
  CC      target/s390x/trace.o
  CC      target/ppc/trace.o
  CC      qom/trace.o
  CC      linux-user/trace.o
  CC      qapi/trace.o
  CC      crypto/pbkdf-stub.o
  CC      stubs/arch-query-cpu-model-expansion.o
  CC      stubs/arch-query-cpu-def.o
  CC      stubs/arch-query-cpu-model-comparison.o
  CC      stubs/arch-query-cpu-model-baseline.o
  CC      stubs/bdrv-next-monitor-owned.o
  CC      stubs/blk-commit-all.o
  CC      stubs/blockdev-close-all-bdrv-states.o
  CC      stubs/clock-warp.o
  CC      stubs/cpu-get-clock.o
  CC      stubs/cpu-get-icount.o
  CC      stubs/dump.o
  CC      stubs/error-printf.o
  CC      stubs/fdset.o
  CC      stubs/gdbstub.o
  CC      stubs/get-vm-name.o
  CC      stubs/iothread.o
  CC      stubs/iothread-lock.o
  CC      stubs/is-daemonized.o
  CC      stubs/linux-aio.o
  CC      stubs/machine-init-done.o
  CC      stubs/migr-blocker.o
  CC      stubs/monitor.o
  CC      stubs/notify-event.o
  CC      stubs/qtest.o
  CC      stubs/replay.o
  CC      stubs/runstate-check.o
  CC      stubs/set-fd-handler.o
  CC      stubs/slirp.o
  CC      stubs/sysbus.o
  CC      stubs/trace-control.o
  CC      stubs/uuid.o
  CC      stubs/vm-stop.o
  CC      stubs/vmstate.o
  CC      stubs/qmp_pc_dimm_device_list.o
  CC      stubs/target-monitor-defs.o
  CC      stubs/target-get-monitor-def.o
  CC      stubs/pc_madt_cpu_entry.o
  CC      stubs/vmgenid.o
  CC      stubs/xen-common.o
  CC      stubs/xen-hvm.o
  CC      contrib/ivshmem-client/ivshmem-client.o
  CC      contrib/ivshmem-client/main.o
  CC      contrib/ivshmem-server/ivshmem-server.o
  CC      contrib/ivshmem-server/main.o
  CC      qemu-nbd.o
  CC      block.o
  CC      blockjob.o
  CC      qemu-io-cmds.o
  CC      replication.o
  CC      block/raw-format.o
  CC      block/qcow.o
  CC      block/vdi.o
  CC      block/vmdk.o
  CC      block/cloop.o
  CC      block/bochs.o
  CC      block/vpc.o
  CC      block/vvfat.o
  CC      block/dmg.o
  CC      block/qcow2.o
  CC      block/qcow2-refcount.o
  CC      block/qcow2-cluster.o
  CC      block/qcow2-snapshot.o
  CC      block/qcow2-cache.o
  CC      block/qed.o
  CC      block/qed-gencb.o
  CC      block/qed-l2-cache.o
  CC      block/qed-table.o
  CC      block/qed-cluster.o
  CC      block/vhdx.o
  CC      block/qed-check.o
  CC      block/vhdx-endian.o
  CC      block/vhdx-log.o
  CC      block/quorum.o
  CC      block/parallels.o
  CC      block/blkdebug.o
  CC      block/blkreplay.o
  CC      block/blkverify.o
  CC      block/block-backend.o
  CC      block/snapshot.o
  CC      block/qapi.o
  CC      block/file-posix.o
  CC      block/linux-aio.o
  CC      block/null.o
  CC      block/mirror.o
  CC      block/commit.o
  CC      block/io.o
  CC      block/throttle-groups.o
  CC      block/nbd.o
  CC      block/nbd-client.o
  CC      block/sheepdog.o
  CC      block/iscsi-opts.o
  CC      block/accounting.o
  CC      block/dirty-bitmap.o
  CC      block/write-threshold.o
  CC      block/backup.o
  CC      block/replication.o
  CC      block/crypto.o
  CC      nbd/server.o
  CC      nbd/client.o
  CC      nbd/common.o
  CC      block/iscsi.o
  CC      block/nfs.o
  CC      block/curl.o
  CC      block/rbd.o
  CC      block/ssh.o
  CC      block/gluster.o
  CC      block/dmg-bz2.o
  CC      crypto/init.o
  CC      crypto/hash.o
  CC      crypto/hash-nettle.o
  CC      crypto/hmac.o
  CC      crypto/hmac-nettle.o
  CC      crypto/aes.o
  CC      crypto/desrfb.o
  CC      crypto/cipher.o
  CC      crypto/tlscreds.o
  CC      crypto/tlscredsanon.o
  CC      crypto/tlscredsx509.o
  CC      crypto/tlssession.o
  CC      crypto/secret.o
  CC      crypto/random-gnutls.o
  CC      crypto/pbkdf.o
  CC      crypto/pbkdf-nettle.o
  CC      crypto/ivgen.o
  CC      crypto/ivgen-essiv.o
  CC      crypto/ivgen-plain.o
  CC      crypto/ivgen-plain64.o
  CC      crypto/afsplit.o
  CC      crypto/xts.o
  CC      crypto/block.o
  CC      crypto/block-qcow.o
  CC      crypto/block-luks.o
  CC      io/channel.o
  CC      io/channel-buffer.o
  CC      io/channel-command.o
  CC      io/channel-file.o
  CC      io/channel-socket.o
  CC      io/channel-watch.o
  CC      io/channel-tls.o
  CC      io/channel-websock.o
  CC      io/channel-util.o
  CC      io/dns-resolver.o
  CC      io/task.o
  CC      qom/object.o
  CC      qom/qom-qobject.o
  CC      qom/container.o
  CC      qom/object_interfaces.o
  GEN     qemu-img-cmds.h
  CC      qemu-io.o
  CC      fsdev/virtfs-proxy-helper.o
  CC      fsdev/9p-marshal.o
  CC      fsdev/9p-iov-marshal.o
  CC      qemu-bridge-helper.o
  CC      blockdev.o
  CC      blockdev-nbd.o
  CC      qdev-monitor.o
  CC      iothread.o
  CC      device-hotplug.o
  CC      page_cache.o
  CC      os-posix.o
  CC      accel.o
  CC      bt-host.o
  CC      bt-vhci.o
  CC      dma-helpers.o
  CC      vl.o
  CC      tpm.o
  CC      device_tree.o
  CC      qmp-marshal.o
  CC      qmp.o
  CC      hmp.o
  CC      cpus-common.o
  CC      audio/audio.o
  CC      audio/noaudio.o
  CC      audio/wavaudio.o
  CC      audio/mixeng.o
  CC      audio/sdlaudio.o
  CC      audio/ossaudio.o
  CC      audio/wavcapture.o
  CC      backends/rng.o
  CC      backends/rng-egd.o
  CC      backends/rng-random.o
  CC      backends/msmouse.o
  CC      backends/wctablet.o
  CC      backends/testdev.o
  CC      backends/baum.o
  CC      backends/tpm.o
  CC      backends/hostmem.o
  CC      backends/hostmem-ram.o
  CC      backends/hostmem-file.o
  CC      backends/cryptodev.o
  CC      backends/cryptodev-builtin.o
  CC      block/stream.o
  CC      disas/alpha.o
  CC      disas/arm.o
  CXX     disas/arm-a64.o
  CC      disas/cris.o
  CC      disas/hppa.o
  CC      disas/i386.o
  CC      disas/m68k.o
  CC      disas/microblaze.o
  CC      disas/mips.o
  CC      disas/nios2.o
  CC      disas/moxie.o
  CC      disas/ppc.o
  CC      disas/s390.o
  CC      disas/sh4.o
  CC      disas/sparc.o
  CC      disas/lm32.o
  CXX     disas/libvixl/vixl/utils.o
  CXX     disas/libvixl/vixl/compiler-intrinsics.o
  CXX     disas/libvixl/vixl/a64/instructions-a64.o
  CXX     disas/libvixl/vixl/a64/decoder-a64.o
  CXX     disas/libvixl/vixl/a64/disasm-a64.o
  CC      fsdev/qemu-fsdev.o
  CC      fsdev/qemu-fsdev-opts.o
  CC      fsdev/qemu-fsdev-throttle.o
  CC      fsdev/qemu-fsdev-dummy.o
  CC      hw/9pfs/9p.o
  CC      hw/9pfs/9p-util.o
  CC      hw/9pfs/9p-local.o
  CC      hw/9pfs/9p-xattr.o
  CC      hw/9pfs/9p-xattr-user.o
  CC      hw/9pfs/9p-posix-acl.o
  CC      hw/9pfs/coth.o
  CC      hw/9pfs/cofs.o
  CC      hw/9pfs/codir.o
  CC      hw/9pfs/cofile.o
  CC      hw/9pfs/coxattr.o
  CC      hw/9pfs/9p-synth.o
  CC      hw/9pfs/9p-handle.o
  CC      hw/9pfs/9p-proxy.o
  CC      hw/acpi/core.o
  CC      hw/acpi/piix4.o
  CC      hw/acpi/ich9.o
  CC      hw/acpi/pcihp.o
  CC      hw/acpi/tco.o
  CC      hw/acpi/cpu_hotplug.o
  CC      hw/acpi/memory_hotplug.o
  CC      hw/acpi/cpu.o
  CC      hw/acpi/nvdimm.o
  CC      hw/acpi/vmgenid.o
  CC      hw/acpi/acpi_interface.o
  CC      hw/acpi/bios-linker-loader.o
  CC      hw/acpi/aml-build.o
  CC      hw/acpi/ipmi.o
  CC      hw/acpi/acpi-stub.o
  CC      hw/acpi/ipmi-stub.o
  CC      hw/audio/sb16.o
  CC      hw/audio/es1370.o
  CC      hw/audio/ac97.o
  CC      hw/audio/fmopl.o
  CC      hw/audio/adlib.o
  CC      hw/audio/gus.o
  CC      hw/audio/gusemu_hal.o
  CC      hw/audio/gusemu_mixer.o
  CC      hw/audio/cs4231a.o
  CC      hw/audio/intel-hda.o
  CC      hw/audio/hda-codec.o
  CC      hw/audio/pcspk.o
  CC      hw/audio/wm8750.o
  CC      hw/audio/pl041.o
  CC      hw/audio/lm4549.o
  CC      hw/audio/cs4231.o
  CC      hw/audio/marvell_88w8618.o
  CC      hw/audio/milkymist-ac97.o
  CC      hw/block/block.o
  CC      hw/block/cdrom.o
  CC      hw/block/hd-geometry.o
  CC      hw/block/fdc.o
  CC      hw/block/m25p80.o
  CC      hw/block/nand.o
  CC      hw/block/pflash_cfi01.o
  CC      hw/block/pflash_cfi02.o
  CC      hw/block/ecc.o
  CC      hw/block/onenand.o
  CC      hw/block/nvme.o
  CC      hw/bt/core.o
  CC      hw/bt/l2cap.o
  CC      hw/bt/sdp.o
  CC      hw/bt/hci.o
  CC      hw/bt/hid.o
  CC      hw/bt/hci-csr.o
  CC      hw/char/ipoctal232.o
  CC      hw/char/escc.o
  CC      hw/char/parallel.o
  CC      hw/char/pl011.o
  CC      hw/char/serial.o
  CC      hw/char/serial-isa.o
  CC      hw/char/serial-pci.o
  CC      hw/char/virtio-console.o
  CC      hw/char/xilinx_uartlite.o
  CC      hw/char/cadence_uart.o
  CC      hw/char/etraxfs_ser.o
  CC      hw/char/grlib_apbuart.o
  CC      hw/char/imx_serial.o
  CC      hw/char/debugcon.o
  CC      hw/char/lm32_juart.o
  CC      hw/char/lm32_uart.o
  CC      hw/char/milkymist-uart.o
  CC      hw/char/sclpconsole.o
  CC      hw/char/sclpconsole-lm.o
  CC      hw/core/qdev.o
  CC      hw/core/qdev-properties.o
  CC      hw/core/bus.o
  CC      hw/core/reset.o
  CC      hw/core/fw-path-provider.o
  CC      hw/core/irq.o
  CC      hw/core/hotplug.o
  CC      hw/core/empty_slot.o
  CC      hw/core/stream.o
  CC      hw/core/ptimer.o
  CC      hw/core/sysbus.o
  CC      hw/core/machine.o
  CC      hw/core/loader.o
  CC      hw/core/loader-fit.o
  CC      hw/core/qdev-properties-system.o
  CC      hw/core/register.o
  CC      hw/core/or-irq.o
  CC      hw/core/platform-bus.o
  CC      hw/display/ads7846.o
  CC      hw/display/cirrus_vga.o
  CC      hw/display/jazz_led.o
  CC      hw/display/g364fb.o
  CC      hw/display/pl110.o
  CC      hw/display/ssd0303.o
  CC      hw/display/ssd0323.o
  CC      hw/display/vga-pci.o
  CC      hw/display/vga-isa.o
  CC      hw/display/vmware_vga.o
  CC      hw/display/vga-isa-mm.o
  CC      hw/display/blizzard.o
  CC      hw/display/exynos4210_fimd.o
  CC      hw/display/framebuffer.o
  CC      hw/display/milkymist-vgafb.o
  CC      hw/display/tc6393xb.o
  CC      hw/display/milkymist-tmu2.o
  CC      hw/dma/puv3_dma.o
  CC      hw/dma/rc4030.o
  CC      hw/dma/pl080.o
  CC      hw/dma/pl330.o
  CC      hw/dma/i82374.o
  CC      hw/dma/i8257.o
  CC      hw/dma/xilinx_axidma.o
  CC      hw/dma/xlnx-zynq-devcfg.o
  CC      hw/dma/etraxfs_dma.o
  CC      hw/dma/sparc32_dma.o
  CC      hw/dma/sun4m_iommu.o
  CC      hw/gpio/max7310.o
  CC      hw/gpio/pl061.o
  CC      hw/gpio/puv3_gpio.o
  CC      hw/gpio/zaurus.o
  CC      hw/gpio/mpc8xxx.o
  CC      hw/gpio/gpio_key.o
  CC      hw/i2c/core.o
  CC      hw/i2c/smbus.o
  CC      hw/i2c/smbus_eeprom.o
  CC      hw/i2c/i2c-ddc.o
  CC      hw/i2c/versatile_i2c.o
  CC      hw/i2c/smbus_ich9.o
  CC      hw/i2c/pm_smbus.o
  CC      hw/i2c/bitbang_i2c.o
  CC      hw/i2c/exynos4210_i2c.o
  CC      hw/i2c/imx_i2c.o
  CC      hw/i2c/aspeed_i2c.o
  CC      hw/ide/core.o
  CC      hw/ide/atapi.o
  CC      hw/ide/qdev.o
  CC      hw/ide/pci.o
  CC      hw/ide/isa.o
  CC      hw/ide/piix.o
  CC      hw/ide/cmd646.o
  CC      hw/ide/mmio.o
  CC      hw/ide/macio.o
  CC      hw/ide/via.o
  CC      hw/ide/microdrive.o
  CC      hw/ide/ahci.o
  CC      hw/ide/ich.o
  CC      hw/input/adb.o
  CC      hw/input/hid.o
  CC      hw/input/lm832x.o
  CC      hw/input/pl050.o
  CC      hw/input/pckbd.o
  CC      hw/input/ps2.o
  CC      hw/input/stellaris_input.o
  CC      hw/input/tsc2005.o
  CC      hw/input/vmmouse.o
  CC      hw/input/virtio-input.o
  CC      hw/input/virtio-input-hid.o
  CC      hw/input/virtio-input-host.o
  CC      hw/intc/heathrow_pic.o
  CC      hw/intc/i8259_common.o
  CC      hw/intc/i8259.o
  CC      hw/intc/puv3_intc.o
  CC      hw/intc/xilinx_intc.o
  CC      hw/intc/pl190.o
  CC      hw/intc/etraxfs_pic.o
  CC      hw/intc/imx_avic.o
  CC      hw/intc/lm32_pic.o
  CC      hw/intc/realview_gic.o
  CC      hw/intc/slavio_intctl.o
  CC      hw/intc/ioapic_common.o
  CC      hw/intc/arm_gic_common.o
  CC      hw/intc/arm_gic.o
  CC      hw/intc/arm_gicv2m.o
  CC      hw/intc/arm_gicv3_common.o
  CC      hw/intc/arm_gicv3.o
  CC      hw/intc/arm_gicv3_dist.o
  CC      hw/intc/arm_gicv3_its_common.o
  CC      hw/intc/openpic.o
  CC      hw/intc/arm_gicv3_redist.o
  CC      hw/intc/intc.o
  CC      hw/ipack/ipack.o
  CC      hw/ipack/tpci200.o
  CC      hw/ipmi/ipmi.o
  CC      hw/ipmi/ipmi_bmc_sim.o
  CC      hw/ipmi/ipmi_bmc_extern.o
  CC      hw/ipmi/isa_ipmi_kcs.o
  CC      hw/ipmi/isa_ipmi_bt.o
  CC      hw/isa/isa-bus.o
  CC      hw/isa/i82378.o
  CC      hw/isa/apm.o
  CC      hw/isa/pc87312.o
  CC      hw/isa/piix4.o
  CC      hw/isa/vt82c686.o
  CC      hw/mem/pc-dimm.o
  CC      hw/mem/nvdimm.o
  CC      hw/misc/applesmc.o
  CC      hw/misc/max111x.o
  CC      hw/misc/debugexit.o
  CC      hw/misc/tmp105.o
  CC      hw/misc/sga.o
  CC      hw/misc/pc-testdev.o
  CC      hw/misc/pci-testdev.o
  CC      hw/misc/unimp.o
  CC      hw/misc/arm_l2x0.o
  CC      hw/misc/arm_integrator_debug.o
  CC      hw/misc/a9scu.o
  CC      hw/misc/arm11scu.o
  CC      hw/misc/puv3_pm.o
  CC      hw/misc/macio/macio.o
  CC      hw/misc/macio/cuda.o
  CC      hw/misc/macio/mac_dbdma.o
  CC      hw/net/dp8393x.o
  CC      hw/net/ne2000.o
  CC      hw/net/eepro100.o
  CC      hw/net/pcnet-pci.o
  CC      hw/net/pcnet.o
  CC      hw/net/e1000.o
  CC      hw/net/e1000x_common.o
  CC      hw/net/net_tx_pkt.o
  CC      hw/net/net_rx_pkt.o
  CC      hw/net/e1000e.o
  CC      hw/net/e1000e_core.o
  CC      hw/net/rtl8139.o
  CC      hw/net/vmxnet3.o
  CC      hw/net/smc91c111.o
  CC      hw/net/lan9118.o
  CC      hw/net/ne2000-isa.o
  CC      hw/net/opencores_eth.o
  CC      hw/net/xgmac.o
  CC      hw/net/mipsnet.o
  CC      hw/net/xilinx_axienet.o
  CC      hw/net/allwinner_emac.o
  CC      hw/net/imx_fec.o
  CC      hw/net/cadence_gem.o
  CC      hw/net/stellaris_enet.o
  CC      hw/net/lance.o
  CC      hw/net/ftgmac100.o
  CC      hw/net/rocker/rocker.o
  CC      hw/net/rocker/rocker_fp.o
  CC      hw/net/rocker/rocker_desc.o
  CC      hw/net/rocker/rocker_world.o
  CC      hw/net/rocker/rocker_of_dpa.o
  CC      hw/nvram/ds1225y.o
  CC      hw/nvram/eeprom93xx.o
  CC      hw/nvram/fw_cfg.o
  CC      hw/nvram/chrp_nvram.o
  CC      hw/nvram/mac_nvram.o
  CC      hw/pci-bridge/pci_bridge_dev.o
  CC      hw/pci-bridge/pcie_root_port.o
  CC      hw/pci-bridge/gen_pcie_root_port.o
  CC      hw/pci-bridge/pci_expander_bridge.o
  CC      hw/pci-bridge/xio3130_upstream.o
  CC      hw/pci-bridge/xio3130_downstream.o
  CC      hw/pci-bridge/ioh3420.o
  CC      hw/pci-bridge/i82801b11.o
  CC      hw/pci-bridge/dec.o
  CC      hw/pci-host/pam.o
  CC      hw/pci-host/prep.o
  CC      hw/pci-host/grackle.o
  CC      hw/pci-host/uninorth.o
  CC      hw/pci-host/ppce500.o
  CC      hw/pci-host/versatile.o
  CC      hw/pci-host/bonito.o
  CC      hw/pci-host/apb.o
  CC      hw/pci-host/piix.o
  CC      hw/pci-host/q35.o
  CC      hw/pci-host/gpex.o
  CC      hw/pci-host/xilinx-pcie.o
  CC      hw/pci/pci.o
  CC      hw/pci/pci_bridge.o
  CC      hw/pci/msi.o
  CC      hw/pci/msix.o
  CC      hw/pci/shpc.o
  CC      hw/pci/slotid_cap.o
  CC      hw/pci/pci_host.o
  CC      hw/pci/pcie_host.o
  CC      hw/pci/pcie.o
  CC      hw/pci/pcie_aer.o
  CC      hw/pci/pcie_port.o
  CC      hw/pci/pci-stub.o
  CC      hw/pcmcia/pcmcia.o
  CC      hw/scsi/scsi-disk.o
  CC      hw/scsi/scsi-generic.o
  CC      hw/scsi/scsi-bus.o
  CC      hw/scsi/lsi53c895a.o
  CC      hw/scsi/mptconfig.o
  CC      hw/scsi/mptsas.o
  CC      hw/scsi/mptendian.o
  CC      hw/scsi/megasas.o
  CC      hw/scsi/vmw_pvscsi.o
  CC      hw/scsi/esp.o
  CC      hw/scsi/esp-pci.o
  CC      hw/sd/pl181.o
  CC      hw/sd/ssi-sd.o
  CC      hw/sd/sd.o
  CC      hw/sd/core.o
  CC      hw/sd/sdhci.o
  CC      hw/smbios/smbios.o
  CC      hw/smbios/smbios_type_38.o
  CC      hw/smbios/smbios-stub.o
  CC      hw/smbios/smbios_type_38-stub.o
  CC      hw/ssi/pl022.o
  CC      hw/ssi/ssi.o
  CC      hw/ssi/xilinx_spi.o
  CC      hw/ssi/xilinx_spips.o
  CC      hw/ssi/aspeed_smc.o
  CC      hw/ssi/stm32f2xx_spi.o
  CC      hw/timer/arm_timer.o
  CC      hw/timer/arm_mptimer.o
  CC      hw/timer/armv7m_systick.o
  CC      hw/timer/a9gtimer.o
  CC      hw/timer/cadence_ttc.o
  CC      hw/timer/hpet.o
  CC      hw/timer/ds1338.o
  CC      hw/timer/i8254_common.o
  CC      hw/timer/i8254.o
  CC      hw/timer/m48t59.o
  CC      hw/timer/m48t59-isa.o
  CC      hw/timer/pl031.o
  CC      hw/timer/puv3_ost.o
  CC      hw/timer/twl92230.o
  CC      hw/timer/xilinx_timer.o
  CC      hw/timer/slavio_timer.o
  CC      hw/timer/etraxfs_timer.o
  CC      hw/timer/grlib_gptimer.o
  CC      hw/timer/imx_epit.o
  CC      hw/timer/imx_gpt.o
  CC      hw/timer/lm32_timer.o
  CC      hw/timer/milkymist-sysctl.o
  CC      hw/timer/stm32f2xx_timer.o
  CC      hw/timer/aspeed_timer.o
  CC      hw/timer/sun4v-rtc.o
  CC      hw/tpm/tpm_tis.o
  CC      hw/usb/core.o
  CC      hw/usb/combined-packet.o
  CC      hw/usb/bus.o
  CC      hw/usb/libhw.o
  CC      hw/usb/desc.o
  CC      hw/usb/desc-msos.o
  CC      hw/usb/hcd-uhci.o
  CC      hw/usb/hcd-ohci.o
  CC      hw/usb/hcd-ehci.o
  CC      hw/usb/hcd-ehci-pci.o
  CC      hw/usb/hcd-ehci-sysbus.o
  CC      hw/usb/hcd-xhci.o
  CC      hw/usb/hcd-musb.o
  CC      hw/usb/dev-hub.o
  CC      hw/usb/dev-hid.o
  CC      hw/usb/dev-wacom.o
  CC      hw/usb/dev-storage.o
  CC      hw/usb/dev-uas.o
  CC      hw/usb/dev-audio.o
  CC      hw/usb/dev-serial.o
  CC      hw/usb/dev-network.o
  CC      hw/usb/dev-bluetooth.o
  CC      hw/usb/dev-smartcard-reader.o
  CC      hw/usb/ccid-card-passthru.o
  CC      hw/usb/ccid-card-emulated.o
  CC      hw/usb/dev-mtp.o
  CC      hw/usb/redirect.o
  CC      hw/usb/quirks.o
  CC      hw/usb/host-libusb.o
  CC      hw/usb/host-legacy.o
  CC      hw/virtio/virtio-rng.o
  CC      hw/virtio/virtio-pci.o
  CC      hw/virtio/virtio-bus.o
  CC      hw/virtio/virtio-mmio.o
  CC      hw/virtio/vhost-stub.o
  CC      hw/watchdog/watchdog.o
  CC      hw/watchdog/wdt_i6300esb.o
  CC      hw/watchdog/wdt_ib700.o
  CC      hw/watchdog/wdt_diag288.o
  CC      hw/watchdog/wdt_aspeed.o
  CC      migration/migration.o
  CC      migration/socket.o
  CC      migration/fd.o
  CC      migration/exec.o
  CC      migration/tls.o
  CC      migration/colo-comm.o
  CC      migration/colo.o
  CC      migration/colo-failover.o
  CC      migration/vmstate.o
  CC      migration/qemu-file.o
  CC      migration/qemu-file-channel.o
  CC      migration/xbzrle.o
  CC      migration/qjson.o
  CC      migration/postcopy-ram.o
  CC      migration/block.o
  CC      net/net.o
  CC      net/queue.o
  CC      net/checksum.o
  CC      net/util.o
  CC      net/hub.o
  CC      net/socket.o
  CC      net/dump.o
  CC      net/eth.o
  CC      net/l2tpv3.o
  CC      net/tap.o
  CC      net/vhost-user.o
  CC      net/tap-linux.o
  CC      net/slirp.o
  CC      net/filter.o
  CC      net/filter-buffer.o
  CC      net/filter-mirror.o
  CC      net/colo-compare.o
  CC      net/colo.o
  CC      net/filter-rewriter.o
  CC      net/filter-replay.o
  CC      qom/cpu.o
  CC      replay/replay.o
  CC      replay/replay-internal.o
  CC      replay/replay-events.o
  CC      replay/replay-time.o
  CC      replay/replay-input.o
  CC      replay/replay-char.o
  CC      replay/replay-snapshot.o
  CC      replay/replay-net.o
  CC      replay/replay-audio.o
  CC      slirp/cksum.o
  CC      slirp/if.o
  CC      slirp/ip6_icmp.o
  CC      slirp/ip_icmp.o
  CC      slirp/ip6_input.o
  CC      slirp/ip6_output.o
  CC      slirp/ip_input.o
  CC      slirp/ip_output.o
  CC      slirp/dnssearch.o
  CC      slirp/dhcpv6.o
  CC      slirp/slirp.o
  CC      slirp/mbuf.o
  CC      slirp/misc.o
  CC      slirp/sbuf.o
  CC      slirp/socket.o
  CC      slirp/tcp_input.o
  CC      slirp/tcp_output.o
  CC      slirp/tcp_subr.o
  CC      slirp/tcp_timer.o
  CC      slirp/udp.o
  CC      slirp/bootp.o
  CC      slirp/udp6.o
  CC      slirp/tftp.o
  CC      slirp/arp_table.o
  CC      slirp/ndp_table.o
  CC      slirp/ncsi.o
  CC      ui/keymaps.o
  CC      ui/cursor.o
  CC      ui/console.o
  CC      ui/qemu-pixman.o
  CC      ui/input.o
  CC      ui/input-keymap.o
  CC      ui/input-legacy.o
  CC      ui/input-linux.o
  CC      ui/sdl2.o
  CC      ui/sdl2-input.o
  CC      ui/sdl2-2d.o
  CC      ui/sdl2-gl.o
  CC      ui/x_keymap.o
  CC      ui/curses.o
  CC      ui/vnc.o
  CC      ui/vnc-enc-zlib.o
  CC      ui/vnc-enc-hextile.o
  CC      ui/vnc-enc-tight.o
  CC      ui/vnc-palette.o
  CC      ui/vnc-enc-zrle.o
  CC      ui/vnc-auth-vencrypt.o
  CC      ui/vnc-auth-sasl.o
  CC      ui/vnc-ws.o
  CC      ui/vnc-jobs.o
  CC      ui/gtk.o
  CC      ui/shader.o
  VERT    ui/shader/texture-blit-vert.h
  FRAG    ui/shader/texture-blit-frag.h
  CC      ui/egl-helpers.o
  CC      ui/egl-context.o
  CC      chardev/char.o
  CC      ui/gtk-gl-area.o
  CC      chardev/char-fd.o
  CC      chardev/char-fe.o
  CC      chardev/char-file.o
  CC      chardev/char-io.o
  CC      chardev/char-mux.o
  CC      chardev/char-null.o
  CC      chardev/char-parallel.o
  CC      chardev/char-pipe.o
  CC      chardev/char-ringbuf.o
  CC      chardev/char-pty.o
  CC      chardev/char-serial.o
  CC      chardev/char-socket.o
  CC      chardev/char-stdio.o
  CC      chardev/char-udp.o
  LINK    tests/qemu-iotests/socket_scm_helper
  GEN     qemu-doc.html
  CCAS    s390-ccw/start.o
  CC      s390-ccw/main.o
  GEN     qemu-doc.txt
  CC      s390-ccw/bootmap.o
  GEN     qemu.1
  GEN     docs/qemu-qmp-ref.html
  CC      s390-ccw/sclp.o
  CC      s390-ccw/virtio.o
  GEN     docs/qemu-qmp-ref.txt
  CC      s390-ccw/virtio-scsi.o
  GEN     docs/qemu-qmp-ref.7
  BUILD   s390-ccw/s390-ccw.elf
  STRIP   s390-ccw/s390-ccw.img
  GEN     docs/qemu-ga-ref.html
  GEN     docs/qemu-ga-ref.txt
  GEN     docs/qemu-ga-ref.7
  CC      qga/commands.o
  CC      qga/guest-agent-command-state.o
  CC      qga/main.o
  CC      qga/commands-posix.o
  CC      qga/channel-posix.o
  CC      qga/qapi-generated/qga-qapi-types.o
  CC      qga/qapi-generated/qga-qapi-visit.o
  CC      qga/qapi-generated/qga-qmp-marshal.o
  AR      libqemuutil.a
  AR      libqemustub.a
  CC      qemu-img.o
  LINK    qemu-io
  LINK    fsdev/virtfs-proxy-helper
  LINK    qemu-bridge-helper
  CC      ui/console-gl.o
  LINK    qemu-ga
  LINK    ivshmem-client
  LINK    ivshmem-server
  LINK    qemu-nbd
  GEN     aarch64-softmmu/hmp-commands.h
  GEN     cris-softmmu/hmp-commands.h
  GEN     alpha-softmmu/hmp-commands.h
  GEN     aarch64-softmmu/hmp-commands-info.h
  GEN     alpha-softmmu/hmp-commands-info.h
  GEN     cris-softmmu/hmp-commands-info.h
  GEN     aarch64-softmmu/config-target.h
  GEN     alpha-softmmu/config-target.h
  GEN     cris-softmmu/config-target.h
  CC      alpha-softmmu/exec.o
  CC      aarch64-softmmu/exec.o
  CC      cris-softmmu/exec.o
  GEN     arm-softmmu/hmp-commands.h
  GEN     arm-softmmu/hmp-commands-info.h
  GEN     arm-softmmu/config-target.h
  CC      arm-softmmu/exec.o
  CC      alpha-softmmu/translate-all.o
  CC      cris-softmmu/translate-all.o
  CC      aarch64-softmmu/translate-all.o
  CC      cris-softmmu/cpu-exec.o
  CC      alpha-softmmu/cpu-exec.o
  CC      cris-softmmu/translate-common.o
  CC      aarch64-softmmu/cpu-exec.o
  CC      arm-softmmu/translate-all.o
  CC      cris-softmmu/cpu-exec-common.o
  CC      alpha-softmmu/translate-common.o
  CC      cris-softmmu/tcg/tcg.o
  CC      alpha-softmmu/cpu-exec-common.o
  CC      arm-softmmu/cpu-exec.o
  CC      alpha-softmmu/tcg/tcg.o
  CC      aarch64-softmmu/translate-common.o
  CC      aarch64-softmmu/cpu-exec-common.o
  CC      arm-softmmu/translate-common.o
  CC      aarch64-softmmu/tcg/tcg.o
  CC      cris-softmmu/tcg/tcg-op.o
  CC      arm-softmmu/cpu-exec-common.o
  CC      arm-softmmu/tcg/tcg.o
  CC      alpha-softmmu/tcg/tcg-op.o
  CC      aarch64-softmmu/tcg/tcg-op.o
  CC      cris-softmmu/tcg/optimize.o
  CC      arm-softmmu/tcg/tcg-op.o
  CC      cris-softmmu/tcg/tcg-common.o
  CC      alpha-softmmu/tcg/optimize.o
  CC      cris-softmmu/fpu/softfloat.o
  CC      aarch64-softmmu/tcg/optimize.o
  CC      alpha-softmmu/tcg/tcg-common.o
  CC      alpha-softmmu/fpu/softfloat.o
  CC      aarch64-softmmu/tcg/tcg-common.o
  CC      arm-softmmu/tcg/optimize.o
  CC      aarch64-softmmu/fpu/softfloat.o
  CC      arm-softmmu/tcg/tcg-common.o
  CC      cris-softmmu/disas.o
  CC      arm-softmmu/fpu/softfloat.o
  CC      cris-softmmu/tcg-runtime.o
  CC      alpha-softmmu/disas.o
  CC      cris-softmmu/hax-stub.o
  CC      alpha-softmmu/tcg-runtime.o
  CC      cris-softmmu/kvm-stub.o
  CC      cris-softmmu/arch_init.o
  CC      alpha-softmmu/hax-stub.o
  CC      cris-softmmu/cpus.o
  CC      alpha-softmmu/kvm-stub.o
  CC      aarch64-softmmu/disas.o
  CC      cris-softmmu/monitor.o
  CC      alpha-softmmu/arch_init.o
  CC      aarch64-softmmu/tcg-runtime.o
  CC      alpha-softmmu/cpus.o
  CC      arm-softmmu/disas.o
  GEN     aarch64-softmmu/gdbstub-xml.c
  CC      arm-softmmu/tcg-runtime.o
  CC      alpha-softmmu/monitor.o
  GEN     arm-softmmu/gdbstub-xml.c
  CC      arm-softmmu/hax-stub.o
  CC      aarch64-softmmu/hax-stub.o
  CC      cris-softmmu/gdbstub.o
  CC      aarch64-softmmu/kvm-stub.o
  CC      arm-softmmu/kvm-stub.o
  CC      aarch64-softmmu/arch_init.o
  CC      arm-softmmu/arch_init.o
  CC      cris-softmmu/balloon.o
  CC      arm-softmmu/cpus.o
  CC      alpha-softmmu/gdbstub.o
  CC      aarch64-softmmu/cpus.o
  CC      cris-softmmu/ioport.o
  CC      arm-softmmu/monitor.o
  CC      alpha-softmmu/balloon.o
  CC      cris-softmmu/numa.o
  CC      aarch64-softmmu/monitor.o
  CC      alpha-softmmu/ioport.o
  CC      cris-softmmu/qtest.o
  CC      alpha-softmmu/numa.o
  CC      cris-softmmu/bootdevice.o
  CC      arm-softmmu/gdbstub.o
  CC      alpha-softmmu/qtest.o
  CC      cris-softmmu/memory.o
  CC      aarch64-softmmu/gdbstub.o
  CC      alpha-softmmu/bootdevice.o
  CC      arm-softmmu/balloon.o
  CC      alpha-softmmu/memory.o
  CC      arm-softmmu/ioport.o
  CC      aarch64-softmmu/balloon.o
  CC      arm-softmmu/numa.o
  CC      aarch64-softmmu/ioport.o
  CC      cris-softmmu/cputlb.o
  CC      arm-softmmu/qtest.o
  CC      aarch64-softmmu/numa.o
  CC      alpha-softmmu/cputlb.o
  CC      aarch64-softmmu/qtest.o
  CC      arm-softmmu/bootdevice.o
  CC      arm-softmmu/memory.o
  CC      cris-softmmu/memory_mapping.o
  CC      aarch64-softmmu/bootdevice.o
  CC      cris-softmmu/dump.o
  CC      aarch64-softmmu/memory.o
  CC      alpha-softmmu/memory_mapping.o
  CC      arm-softmmu/cputlb.o
  CC      cris-softmmu/migration/ram.o
  CC      alpha-softmmu/dump.o
  CC      aarch64-softmmu/cputlb.o
  CC      cris-softmmu/migration/savevm.o
  CC      alpha-softmmu/migration/ram.o
  CC      arm-softmmu/memory_mapping.o
  CC      cris-softmmu/hw/core/nmi.o
  CC      alpha-softmmu/migration/savevm.o
  CC      arm-softmmu/dump.o
  CC      cris-softmmu/hw/core/generic-loader.o
  CC      aarch64-softmmu/memory_mapping.o
  CC      cris-softmmu/hw/core/null-machine.o
  CC      aarch64-softmmu/dump.o
  CC      arm-softmmu/migration/ram.o
  CC      cris-softmmu/hw/cpu/core.o
  CC      alpha-softmmu/hw/9pfs/virtio-9p-device.o
  CC      cris-softmmu/hw/net/etraxfs_eth.o
  CC      alpha-softmmu/hw/block/virtio-blk.o
  CC      aarch64-softmmu/migration/ram.o
  CC      cris-softmmu/hw/net/vhost_net.o
  CC      arm-softmmu/migration/savevm.o
  CC      alpha-softmmu/hw/block/dataplane/virtio-blk.o
  CC      cris-softmmu/hw/net/rocker/qmp-norocker.o
  CC      alpha-softmmu/hw/char/virtio-serial-bus.o
  CC      cris-softmmu/hw/vfio/common.o
  CC      aarch64-softmmu/migration/savevm.o
  CC      arm-softmmu/hw/9pfs/virtio-9p-device.o
  CC      alpha-softmmu/hw/core/nmi.o
  CC      arm-softmmu/hw/adc/stm32f2xx_adc.o
  CC      alpha-softmmu/hw/core/generic-loader.o
  CC      cris-softmmu/hw/vfio/platform.o
  CC      arm-softmmu/hw/block/virtio-blk.o
  CC      alpha-softmmu/hw/core/null-machine.o
  CC      aarch64-softmmu/hw/9pfs/virtio-9p-device.o
  CC      alpha-softmmu/hw/cpu/core.o
  CC      arm-softmmu/hw/block/dataplane/virtio-blk.o
  CC      cris-softmmu/hw/vfio/spapr.o
  CC      alpha-softmmu/hw/display/vga.o
  CC      aarch64-softmmu/hw/adc/stm32f2xx_adc.o
  CC      arm-softmmu/hw/char/exynos4210_uart.o
  CC      aarch64-softmmu/hw/block/virtio-blk.o
  CC      cris-softmmu/hw/cris/boot.o
  CC      arm-softmmu/hw/char/omap_uart.o
  CC      cris-softmmu/hw/cris/axis_dev88.o
  CC      arm-softmmu/hw/char/digic-uart.o
  CC      aarch64-softmmu/hw/block/dataplane/virtio-blk.o
  CC      arm-softmmu/hw/char/stm32f2xx_usart.o
  CC      alpha-softmmu/hw/display/virtio-gpu.o
  CC      cris-softmmu/target/cris/translate.o
  CC      aarch64-softmmu/hw/char/exynos4210_uart.o
  CC      arm-softmmu/hw/char/bcm2835_aux.o
  CC      aarch64-softmmu/hw/char/omap_uart.o
  CC      alpha-softmmu/hw/display/virtio-gpu-3d.o
  CC      arm-softmmu/hw/char/virtio-serial-bus.o
  CC      aarch64-softmmu/hw/char/digic-uart.o
  CC      arm-softmmu/hw/core/nmi.o
  CC      aarch64-softmmu/hw/char/stm32f2xx_usart.o
  CC      alpha-softmmu/hw/display/virtio-gpu-pci.o
  CC      cris-softmmu/target/cris/op_helper.o
  CC      arm-softmmu/hw/core/generic-loader.o
  CC      aarch64-softmmu/hw/char/bcm2835_aux.o
  CC      alpha-softmmu/hw/misc/ivshmem.o
  CC      aarch64-softmmu/hw/char/virtio-serial-bus.o
  CC      cris-softmmu/target/cris/helper.o
  CC      arm-softmmu/hw/core/null-machine.o
  CC      alpha-softmmu/hw/misc/edu.o
  CC      arm-softmmu/hw/cpu/arm11mpcore.o
  CC      cris-softmmu/target/cris/cpu.o
  CC      aarch64-softmmu/hw/core/nmi.o
  CC      alpha-softmmu/hw/net/virtio-net.o
  CC      arm-softmmu/hw/cpu/realview_mpcore.o
  CC      cris-softmmu/target/cris/gdbstub.o
  CC      aarch64-softmmu/hw/core/generic-loader.o
  CC      arm-softmmu/hw/cpu/a9mpcore.o
  CC      aarch64-softmmu/hw/core/null-machine.o
  CC      cris-softmmu/target/cris/mmu.o
  CC      arm-softmmu/hw/cpu/a15mpcore.o
  CC      alpha-softmmu/hw/net/vhost_net.o
  CC      aarch64-softmmu/hw/cpu/arm11mpcore.o
  CC      cris-softmmu/target/cris/machine.o
  CC      alpha-softmmu/hw/scsi/virtio-scsi.o
  CC      arm-softmmu/hw/cpu/core.o
  CC      aarch64-softmmu/hw/cpu/realview_mpcore.o
  GEN     trace/generated-helpers.c
  CC      cris-softmmu/trace/control-target.o
  CC      arm-softmmu/hw/display/omap_dss.o
  CC      alpha-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      aarch64-softmmu/hw/cpu/a9mpcore.o
  CC      cris-softmmu/trace/generated-helpers.o
  CC      aarch64-softmmu/hw/cpu/a15mpcore.o
  CC      alpha-softmmu/hw/scsi/vhost-scsi.o
  LINK    cris-softmmu/qemu-system-cris
  CC      arm-softmmu/hw/display/omap_lcdc.o
  CC      aarch64-softmmu/hw/cpu/core.o
  CC      alpha-softmmu/hw/timer/mc146818rtc.o
  CC      aarch64-softmmu/hw/display/omap_dss.o
  CC      arm-softmmu/hw/display/pxa2xx_lcd.o
  CC      alpha-softmmu/hw/vfio/common.o
  CC      aarch64-softmmu/hw/display/omap_lcdc.o
  CC      alpha-softmmu/hw/vfio/pci.o
  CC      arm-softmmu/hw/display/bcm2835_fb.o
  CC      aarch64-softmmu/hw/display/pxa2xx_lcd.o
  GEN     i386-softmmu/hmp-commands.h
  CC      arm-softmmu/hw/display/vga.o
  GEN     i386-softmmu/hmp-commands-info.h
  CC      alpha-softmmu/hw/vfio/pci-quirks.o
  GEN     i386-softmmu/config-target.h
  CC      i386-softmmu/exec.o
  CC      alpha-softmmu/hw/vfio/platform.o
  CC      aarch64-softmmu/hw/display/bcm2835_fb.o
  CC      alpha-softmmu/hw/vfio/spapr.o
  CC      arm-softmmu/hw/display/virtio-gpu.o
  CC      alpha-softmmu/hw/virtio/virtio.o
  CC      aarch64-softmmu/hw/display/vga.o
  CC      arm-softmmu/hw/display/virtio-gpu-3d.o
  CC      i386-softmmu/translate-all.o
  CC      alpha-softmmu/hw/virtio/virtio-balloon.o
  CC      arm-softmmu/hw/display/virtio-gpu-pci.o
  CC      aarch64-softmmu/hw/display/virtio-gpu.o
  CC      i386-softmmu/cpu-exec.o
  CC      alpha-softmmu/hw/virtio/vhost.o
  CC      arm-softmmu/hw/dma/omap_dma.o
  CC      i386-softmmu/translate-common.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-3d.o
  CC      i386-softmmu/cpu-exec-common.o
  CC      arm-softmmu/hw/dma/soc_dma.o
  CC      alpha-softmmu/hw/virtio/vhost-backend.o
  CC      i386-softmmu/tcg/tcg.o
  CC      arm-softmmu/hw/dma/pxa2xx_dma.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-pci.o
  CC      alpha-softmmu/hw/virtio/vhost-user.o
  CC      aarch64-softmmu/hw/display/dpcd.o
  CC      arm-softmmu/hw/dma/bcm2835_dma.o
  CC      alpha-softmmu/hw/virtio/vhost-vsock.o
  CC      arm-softmmu/hw/gpio/omap_gpio.o
  CC      aarch64-softmmu/hw/display/xlnx_dp.o
  CC      alpha-softmmu/hw/virtio/virtio-crypto.o
  CC      arm-softmmu/hw/gpio/imx_gpio.o
  CC      aarch64-softmmu/hw/dma/xlnx_dpdma.o
  CC      arm-softmmu/hw/gpio/bcm2835_gpio.o
  CC      i386-softmmu/tcg/tcg-op.o
  CC      alpha-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      arm-softmmu/hw/i2c/omap_i2c.o
  CC      alpha-softmmu/hw/alpha/dp264.o
  CC      aarch64-softmmu/hw/dma/omap_dma.o
  CC      arm-softmmu/hw/input/pxa2xx_keypad.o
  CC      alpha-softmmu/hw/alpha/pci.o
  CC      alpha-softmmu/hw/alpha/typhoon.o
  CC      aarch64-softmmu/hw/dma/soc_dma.o
  CC      arm-softmmu/hw/input/tsc210x.o
  CC      alpha-softmmu/target/alpha/machine.o
  CC      aarch64-softmmu/hw/dma/pxa2xx_dma.o
  CC      alpha-softmmu/target/alpha/translate.o
  CC      arm-softmmu/hw/intc/armv7m_nvic.o
  CC      aarch64-softmmu/hw/dma/bcm2835_dma.o
  CC      aarch64-softmmu/hw/gpio/omap_gpio.o
  CC      i386-softmmu/tcg/optimize.o
  CC      arm-softmmu/hw/intc/exynos4210_gic.o
  CC      arm-softmmu/hw/intc/exynos4210_combiner.o
  CC      aarch64-softmmu/hw/gpio/imx_gpio.o
  CC      alpha-softmmu/target/alpha/helper.o
  CC      arm-softmmu/hw/intc/omap_intc.o
  CC      aarch64-softmmu/hw/gpio/bcm2835_gpio.o
  CC      alpha-softmmu/target/alpha/cpu.o
  CC      i386-softmmu/tcg/tcg-common.o
  CC      aarch64-softmmu/hw/i2c/omap_i2c.o
  CC      arm-softmmu/hw/intc/bcm2835_ic.o
  CC      i386-softmmu/fpu/softfloat.o
  CC      alpha-softmmu/target/alpha/int_helper.o
  CC      arm-softmmu/hw/intc/bcm2836_control.o
  CC      aarch64-softmmu/hw/input/pxa2xx_keypad.o
  CC      alpha-softmmu/target/alpha/fpu_helper.o
  CC      arm-softmmu/hw/intc/allwinner-a10-pic.o
  CC      aarch64-softmmu/hw/input/tsc210x.o
  CC      alpha-softmmu/target/alpha/vax_helper.o
  CC      arm-softmmu/hw/intc/aspeed_vic.o
  CC      arm-softmmu/hw/intc/arm_gicv3_cpuif.o
  CC      aarch64-softmmu/hw/intc/armv7m_nvic.o
  CC      alpha-softmmu/target/alpha/sys_helper.o
  CC      aarch64-softmmu/hw/intc/exynos4210_gic.o
  CC      alpha-softmmu/target/alpha/mem_helper.o
  CC      aarch64-softmmu/hw/intc/exynos4210_combiner.o
  CC      alpha-softmmu/target/alpha/gdbstub.o
  CC      arm-softmmu/hw/misc/ivshmem.o
  CC      aarch64-softmmu/hw/intc/omap_intc.o
  GEN     trace/generated-helpers.c
  CC      alpha-softmmu/trace/control-target.o
  CC      i386-softmmu/disas.o
  CC      arm-softmmu/hw/misc/arm_sysctl.o
  CC      alpha-softmmu/trace/generated-helpers.o
  CC      i386-softmmu/tcg-runtime.o
  CC      aarch64-softmmu/hw/intc/bcm2835_ic.o
  LINK    alpha-softmmu/qemu-system-alpha
  CC      aarch64-softmmu/hw/intc/bcm2836_control.o
  CC      arm-softmmu/hw/misc/cbus.o
  CC      i386-softmmu/hax-stub.o
  CC      arm-softmmu/hw/misc/exynos4210_pmu.o
  CC      aarch64-softmmu/hw/intc/allwinner-a10-pic.o
  CC      i386-softmmu/kvm-stub.o
  CC      arm-softmmu/hw/misc/exynos4210_clk.o
  CC      i386-softmmu/arch_init.o
  CC      aarch64-softmmu/hw/intc/aspeed_vic.o
  CC      arm-softmmu/hw/misc/imx_ccm.o
  CC      i386-softmmu/cpus.o
  CC      aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
  CC      arm-softmmu/hw/misc/imx31_ccm.o
  CC      i386-softmmu/monitor.o
  CC      arm-softmmu/hw/misc/imx25_ccm.o
  CC      arm-softmmu/hw/misc/imx6_ccm.o
  CC      aarch64-softmmu/hw/misc/ivshmem.o
  CC      arm-softmmu/hw/misc/imx6_src.o
  CC      aarch64-softmmu/hw/misc/arm_sysctl.o
  CC      i386-softmmu/gdbstub.o
  CC      arm-softmmu/hw/misc/mst_fpga.o
  CC      aarch64-softmmu/hw/misc/cbus.o
  CC      arm-softmmu/hw/misc/omap_clk.o
  CC      aarch64-softmmu/hw/misc/exynos4210_pmu.o
  CC      i386-softmmu/balloon.o
  CC      arm-softmmu/hw/misc/omap_gpmc.o
  CC      aarch64-softmmu/hw/misc/exynos4210_clk.o
  GEN     lm32-softmmu/hmp-commands.h
  CC      i386-softmmu/ioport.o
  GEN     lm32-softmmu/hmp-commands-info.h
  GEN     lm32-softmmu/config-target.h
  CC      arm-softmmu/hw/misc/omap_l4.o
  CC      aarch64-softmmu/hw/misc/imx_ccm.o
  CC      lm32-softmmu/exec.o
  CC      i386-softmmu/numa.o
  CC      aarch64-softmmu/hw/misc/imx31_ccm.o
  CC      arm-softmmu/hw/misc/omap_sdrc.o
  CC      aarch64-softmmu/hw/misc/imx25_ccm.o
  CC      arm-softmmu/hw/misc/omap_tap.o
  CC      aarch64-softmmu/hw/misc/imx6_ccm.o
  CC      i386-softmmu/qtest.o
  CC      aarch64-softmmu/hw/misc/imx6_src.o
  CC      arm-softmmu/hw/misc/bcm2835_mbox.o
  CC      aarch64-softmmu/hw/misc/mst_fpga.o
  CC      i386-softmmu/bootdevice.o
  CC      arm-softmmu/hw/misc/bcm2835_property.o
  CC      aarch64-softmmu/hw/misc/omap_clk.o
  CC      i386-softmmu/memory.o
  CC      aarch64-softmmu/hw/misc/omap_gpmc.o
  CC      lm32-softmmu/translate-all.o
  CC      arm-softmmu/hw/misc/bcm2835_rng.o
  CC      aarch64-softmmu/hw/misc/omap_l4.o
  CC      lm32-softmmu/cpu-exec.o
  CC      arm-softmmu/hw/misc/zynq_slcr.o
  CC      aarch64-softmmu/hw/misc/omap_sdrc.o
  CC      lm32-softmmu/translate-common.o
  CC      i386-softmmu/cputlb.o
  CC      arm-softmmu/hw/misc/zynq-xadc.o
  CC      aarch64-softmmu/hw/misc/omap_tap.o
  CC      lm32-softmmu/cpu-exec-common.o
  CC      aarch64-softmmu/hw/misc/bcm2835_mbox.o
  CC      lm32-softmmu/tcg/tcg.o
  CC      arm-softmmu/hw/misc/stm32f2xx_syscfg.o
  CC      arm-softmmu/hw/misc/edu.o
  CC      aarch64-softmmu/hw/misc/bcm2835_property.o
  CC      arm-softmmu/hw/misc/aspeed_scu.o
  CC      aarch64-softmmu/hw/misc/bcm2835_rng.o
  CC      i386-softmmu/memory_mapping.o
  CC      aarch64-softmmu/hw/misc/zynq_slcr.o
  CC      arm-softmmu/hw/misc/aspeed_sdmc.o
  CC      arm-softmmu/hw/net/virtio-net.o
  CC      lm32-softmmu/tcg/tcg-op.o
  CC      i386-softmmu/dump.o
  CC      aarch64-softmmu/hw/misc/zynq-xadc.o
  CC      aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
  CC      arm-softmmu/hw/net/vhost_net.o
  CC      i386-softmmu/migration/ram.o
  CC      arm-softmmu/hw/pcmcia/pxa2xx.o
  CC      aarch64-softmmu/hw/misc/edu.o
  CC      arm-softmmu/hw/scsi/virtio-scsi.o
  CC      aarch64-softmmu/hw/misc/auxbus.o
  CC      aarch64-softmmu/hw/misc/aspeed_scu.o
  CC      arm-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      i386-softmmu/migration/savevm.o
  CC      lm32-softmmu/tcg/optimize.o
  CC      arm-softmmu/hw/scsi/vhost-scsi.o
  CC      aarch64-softmmu/hw/misc/aspeed_sdmc.o
  CC      aarch64-softmmu/hw/net/virtio-net.o
  CC      arm-softmmu/hw/sd/omap_mmc.o
  CC      i386-softmmu/hw/9pfs/virtio-9p-device.o
  CC      lm32-softmmu/tcg/tcg-common.o
  CC      arm-softmmu/hw/sd/pxa2xx_mmci.o
  CC      i386-softmmu/hw/block/virtio-blk.o
  CC      lm32-softmmu/fpu/softfloat.o
  CC      arm-softmmu/hw/sd/bcm2835_sdhost.o
  CC      aarch64-softmmu/hw/net/vhost_net.o
  CC      aarch64-softmmu/hw/pcmcia/pxa2xx.o
  CC      i386-softmmu/hw/block/dataplane/virtio-blk.o
  CC      arm-softmmu/hw/ssi/omap_spi.o
  CC      aarch64-softmmu/hw/scsi/virtio-scsi.o
  CC      i386-softmmu/hw/char/virtio-serial-bus.o
  CC      arm-softmmu/hw/ssi/imx_spi.o
  CC      aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      arm-softmmu/hw/timer/exynos4210_mct.o
  CC      i386-softmmu/hw/core/nmi.o
  CC      i386-softmmu/hw/core/generic-loader.o
  CC      aarch64-softmmu/hw/scsi/vhost-scsi.o
  CC      arm-softmmu/hw/timer/exynos4210_pwm.o
  CC      i386-softmmu/hw/core/null-machine.o
  CC      aarch64-softmmu/hw/sd/omap_mmc.o
  CC      i386-softmmu/hw/cpu/core.o
  CC      arm-softmmu/hw/timer/exynos4210_rtc.o
  CC      i386-softmmu/hw/display/vga.o
  CC      aarch64-softmmu/hw/sd/pxa2xx_mmci.o
  CC      lm32-softmmu/disas.o
  CC      arm-softmmu/hw/timer/omap_gptimer.o
  CC      aarch64-softmmu/hw/sd/bcm2835_sdhost.o
  CC      lm32-softmmu/tcg-runtime.o
  CC      arm-softmmu/hw/timer/omap_synctimer.o
  CC      arm-softmmu/hw/timer/pxa2xx_timer.o
  CC      aarch64-softmmu/hw/ssi/omap_spi.o
  CC      lm32-softmmu/hax-stub.o
  CC      i386-softmmu/hw/display/virtio-gpu.o
  CC      arm-softmmu/hw/timer/digic-timer.o
  CC      lm32-softmmu/kvm-stub.o
  CC      aarch64-softmmu/hw/ssi/imx_spi.o
  CC      arm-softmmu/hw/timer/allwinner-a10-pit.o
  CC      lm32-softmmu/arch_init.o
  CC      aarch64-softmmu/hw/timer/exynos4210_mct.o
  CC      arm-softmmu/hw/usb/tusb6010.o
  CC      lm32-softmmu/cpus.o
  CC      i386-softmmu/hw/display/virtio-gpu-3d.o
  CC      aarch64-softmmu/hw/timer/exynos4210_pwm.o
  CC      arm-softmmu/hw/vfio/common.o
  CC      aarch64-softmmu/hw/timer/exynos4210_rtc.o
  CC      i386-softmmu/hw/display/virtio-gpu-pci.o
  CC      lm32-softmmu/monitor.o
  CC      aarch64-softmmu/hw/timer/omap_gptimer.o
  CC      i386-softmmu/hw/display/virtio-vga.o
  CC      arm-softmmu/hw/vfio/pci.o
  CC      aarch64-softmmu/hw/timer/omap_synctimer.o
  CC      i386-softmmu/hw/intc/apic.o
  CC      aarch64-softmmu/hw/timer/pxa2xx_timer.o
  CC      lm32-softmmu/gdbstub.o
  CC      arm-softmmu/hw/vfio/pci-quirks.o
  CC      aarch64-softmmu/hw/timer/digic-timer.o
  CC      i386-softmmu/hw/intc/apic_common.o
  CC      aarch64-softmmu/hw/timer/allwinner-a10-pit.o
  CC      lm32-softmmu/balloon.o
  CC      i386-softmmu/hw/intc/ioapic.o
  CC      arm-softmmu/hw/vfio/platform.o
  CC      aarch64-softmmu/hw/usb/tusb6010.o
  CC      lm32-softmmu/ioport.o
  CC      i386-softmmu/hw/isa/lpc_ich9.o
  CC      aarch64-softmmu/hw/vfio/common.o
  CC      arm-softmmu/hw/vfio/calxeda-xgmac.o
  CC      lm32-softmmu/numa.o
  CC      arm-softmmu/hw/vfio/amd-xgbe.o
  CC      i386-softmmu/hw/misc/vmport.o
  CC      aarch64-softmmu/hw/vfio/pci.o
  CC      arm-softmmu/hw/vfio/spapr.o
  CC      i386-softmmu/hw/misc/ivshmem.o
  CC      lm32-softmmu/qtest.o
  CC      arm-softmmu/hw/virtio/virtio.o
  CC      lm32-softmmu/bootdevice.o
  CC      i386-softmmu/hw/misc/pvpanic.o
  CC      aarch64-softmmu/hw/vfio/pci-quirks.o
  CC      lm32-softmmu/memory.o
  CC      arm-softmmu/hw/virtio/virtio-balloon.o
  CC      i386-softmmu/hw/misc/edu.o
  CC      arm-softmmu/hw/virtio/vhost.o
  CC      aarch64-softmmu/hw/vfio/platform.o
  CC      i386-softmmu/hw/net/virtio-net.o
  CC      lm32-softmmu/cputlb.o
  CC      aarch64-softmmu/hw/vfio/calxeda-xgmac.o
  CC      arm-softmmu/hw/virtio/vhost-backend.o
  CC      aarch64-softmmu/hw/vfio/amd-xgbe.o
  CC      arm-softmmu/hw/virtio/vhost-user.o
  CC      aarch64-softmmu/hw/vfio/spapr.o
  CC      i386-softmmu/hw/net/vhost_net.o
  CC      aarch64-softmmu/hw/virtio/virtio.o
  CC      arm-softmmu/hw/virtio/vhost-vsock.o
  CC      i386-softmmu/hw/scsi/virtio-scsi.o
  CC      arm-softmmu/hw/virtio/virtio-crypto.o
  CC      i386-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      aarch64-softmmu/hw/virtio/virtio-balloon.o
  CC      i386-softmmu/hw/scsi/vhost-scsi.o
  CC      arm-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      lm32-softmmu/memory_mapping.o
  CC      aarch64-softmmu/hw/virtio/vhost.o
  CC      lm32-softmmu/dump.o
  CC      i386-softmmu/hw/timer/mc146818rtc.o
  CC      arm-softmmu/hw/arm/boot.o
  CC      lm32-softmmu/migration/ram.o
  CC      aarch64-softmmu/hw/virtio/vhost-backend.o
  CC      i386-softmmu/hw/vfio/common.o
  CC      arm-softmmu/hw/arm/collie.o
  CC      aarch64-softmmu/hw/virtio/vhost-user.o
  CC      arm-softmmu/hw/arm/exynos4_boards.o
  CC      i386-softmmu/hw/vfio/pci.o
  CC      lm32-softmmu/migration/savevm.o
  CC      aarch64-softmmu/hw/virtio/vhost-vsock.o
  CC      arm-softmmu/hw/arm/gumstix.o
  CC      aarch64-softmmu/hw/virtio/virtio-crypto.o
  CC      arm-softmmu/hw/arm/highbank.o
  CC      arm-softmmu/hw/arm/digic_boards.o
  CC      lm32-softmmu/hw/core/nmi.o
  CC      i386-softmmu/hw/vfio/pci-quirks.o
  CC      lm32-softmmu/hw/core/generic-loader.o
  CC      aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      arm-softmmu/hw/arm/integratorcp.o
  CC      lm32-softmmu/hw/core/null-machine.o
  CC      arm-softmmu/hw/arm/mainstone.o
  CC      aarch64-softmmu/hw/arm/boot.o
  CC      lm32-softmmu/hw/cpu/core.o
  CC      i386-softmmu/hw/vfio/platform.o
  CC      arm-softmmu/hw/arm/musicpal.o
  CC      lm32-softmmu/hw/input/milkymist-softusb.o
  CC      aarch64-softmmu/hw/arm/collie.o
  CC      i386-softmmu/hw/vfio/spapr.o
  CC      aarch64-softmmu/hw/arm/exynos4_boards.o
  CC      lm32-softmmu/hw/misc/milkymist-hpdmc.o
  CC      i386-softmmu/hw/virtio/virtio.o
  CC      arm-softmmu/hw/arm/nseries.o
  CC      aarch64-softmmu/hw/arm/gumstix.o
  CC      lm32-softmmu/hw/misc/milkymist-pfpu.o
  CC      lm32-softmmu/hw/net/milkymist-minimac2.o
  CC      aarch64-softmmu/hw/arm/highbank.o
  CC      arm-softmmu/hw/arm/omap_sx1.o
  CC      lm32-softmmu/hw/net/vhost_net.o
  CC      i386-softmmu/hw/virtio/virtio-balloon.o
  CC      aarch64-softmmu/hw/arm/digic_boards.o
  CC      lm32-softmmu/hw/net/rocker/qmp-norocker.o
  CC      arm-softmmu/hw/arm/palm.o
  CC      i386-softmmu/hw/virtio/vhost.o
  CC      lm32-softmmu/hw/sd/milkymist-memcard.o
  CC      aarch64-softmmu/hw/arm/integratorcp.o
  CC      arm-softmmu/hw/arm/realview.o
  CC      lm32-softmmu/hw/vfio/common.o
  CC      i386-softmmu/hw/virtio/vhost-backend.o
  CC      aarch64-softmmu/hw/arm/mainstone.o
  CC      arm-softmmu/hw/arm/spitz.o
  CC      aarch64-softmmu/hw/arm/musicpal.o
  CC      i386-softmmu/hw/virtio/vhost-user.o
  CC      lm32-softmmu/hw/vfio/platform.o
  CC      i386-softmmu/hw/virtio/vhost-vsock.o
  CC      arm-softmmu/hw/arm/stellaris.o
  CC      i386-softmmu/hw/virtio/virtio-crypto.o
  CC      lm32-softmmu/hw/vfio/spapr.o
  CC      aarch64-softmmu/hw/arm/nseries.o
  CC      lm32-softmmu/hw/lm32/lm32_boards.o
  CC      i386-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      arm-softmmu/hw/arm/tosa.o
  CC      aarch64-softmmu/hw/arm/omap_sx1.o
  CC      lm32-softmmu/hw/lm32/milkymist.o
  CC      arm-softmmu/hw/arm/versatilepb.o
  CC      i386-softmmu/hw/i386/multiboot.o
  CC      aarch64-softmmu/hw/arm/palm.o
  CC      lm32-softmmu/target/lm32/translate.o
  CC      i386-softmmu/hw/i386/pc.o
  CC      arm-softmmu/hw/arm/vexpress.o
  CC      aarch64-softmmu/hw/arm/realview.o
  CC      arm-softmmu/hw/arm/virt.o
  CC      lm32-softmmu/target/lm32/op_helper.o
  CC      i386-softmmu/hw/i386/pc_piix.o
  CC      aarch64-softmmu/hw/arm/spitz.o
  CC      lm32-softmmu/target/lm32/helper.o
  CC      arm-softmmu/hw/arm/xilinx_zynq.o
  CC      lm32-softmmu/target/lm32/cpu.o
  CC      i386-softmmu/hw/i386/pc_q35.o
  CC      aarch64-softmmu/hw/arm/stellaris.o
  CC      arm-softmmu/hw/arm/z2.o
  CC      lm32-softmmu/target/lm32/gdbstub.o
  CC      i386-softmmu/hw/i386/pc_sysfw.o
  CC      lm32-softmmu/target/lm32/lm32-semi.o
  CC      aarch64-softmmu/hw/arm/tosa.o
  CC      aarch64-softmmu/hw/arm/versatilepb.o
  CC      arm-softmmu/hw/arm/virt-acpi-build.o
  CC      i386-softmmu/hw/i386/x86-iommu.o
  CC      lm32-softmmu/target/lm32/machine.o
  GEN     trace/generated-helpers.c
  CC      i386-softmmu/hw/i386/intel_iommu.o
  CC      lm32-softmmu/trace/control-target.o
  CC      aarch64-softmmu/hw/arm/vexpress.o
  CC      arm-softmmu/hw/arm/netduino2.o
  CC      lm32-softmmu/trace/generated-helpers.o
  CC      aarch64-softmmu/hw/arm/virt.o
  CC      arm-softmmu/hw/arm/sysbus-fdt.o
  LINK    lm32-softmmu/qemu-system-lm32
  CC      i386-softmmu/hw/i386/amd_iommu.o
  CC      arm-softmmu/hw/arm/armv7m.o
  CC      aarch64-softmmu/hw/arm/xilinx_zynq.o
  CC      arm-softmmu/hw/arm/exynos4210.o
  CC      i386-softmmu/hw/i386/kvmvapic.o
  CC      aarch64-softmmu/hw/arm/z2.o
  GEN     m68k-softmmu/hmp-commands.h
  GEN     m68k-softmmu/hmp-commands-info.h
  GEN     m68k-softmmu/config-target.h
  CC      m68k-softmmu/exec.o
  CC      arm-softmmu/hw/arm/pxa2xx.o
  CC      i386-softmmu/hw/i386/acpi-build.o
  CC      aarch64-softmmu/hw/arm/virt-acpi-build.o
  CC      aarch64-softmmu/hw/arm/netduino2.o
  CC      arm-softmmu/hw/arm/pxa2xx_gpio.o
  CC      i386-softmmu/hw/i386/pci-assign-load-rom.o
  CC      aarch64-softmmu/hw/arm/sysbus-fdt.o
  CC      arm-softmmu/hw/arm/pxa2xx_pic.o
  CC      i386-softmmu/target/i386/translate.o
  CC      aarch64-softmmu/hw/arm/armv7m.o
  CC      arm-softmmu/hw/arm/digic.o
  CC      aarch64-softmmu/hw/arm/exynos4210.o
  CC      m68k-softmmu/translate-all.o
  CC      arm-softmmu/hw/arm/omap1.o
  CC      aarch64-softmmu/hw/arm/pxa2xx.o
  CC      m68k-softmmu/cpu-exec.o
  CC      m68k-softmmu/translate-common.o
  CC      arm-softmmu/hw/arm/omap2.o
  CC      aarch64-softmmu/hw/arm/pxa2xx_gpio.o
  CC      m68k-softmmu/cpu-exec-common.o
  CC      aarch64-softmmu/hw/arm/pxa2xx_pic.o
  CC      m68k-softmmu/tcg/tcg.o
  CC      aarch64-softmmu/hw/arm/digic.o
  CC      arm-softmmu/hw/arm/strongarm.o
  CC      arm-softmmu/hw/arm/allwinner-a10.o
  CC      aarch64-softmmu/hw/arm/omap1.o
  CC      arm-softmmu/hw/arm/cubieboard.o
  CC      m68k-softmmu/tcg/tcg-op.o
  CC      arm-softmmu/hw/arm/bcm2835_peripherals.o
  CC      aarch64-softmmu/hw/arm/omap2.o
  CC      arm-softmmu/hw/arm/bcm2836.o
  CC      aarch64-softmmu/hw/arm/strongarm.o
  CC      arm-softmmu/hw/arm/raspi.o
  CC      i386-softmmu/target/i386/helper.o
  CC      arm-softmmu/hw/arm/stm32f205_soc.o
  CC      arm-softmmu/hw/arm/fsl-imx25.o
  CC      m68k-softmmu/tcg/optimize.o
  CC      i386-softmmu/target/i386/cpu.o
  CC      aarch64-softmmu/hw/arm/allwinner-a10.o
  CC      arm-softmmu/hw/arm/imx25_pdk.o
  CC      arm-softmmu/hw/arm/fsl-imx31.o
  CC      aarch64-softmmu/hw/arm/cubieboard.o
  CC      aarch64-softmmu/hw/arm/bcm2835_peripherals.o
  CC      i386-softmmu/target/i386/bpt_helper.o
  CC      arm-softmmu/hw/arm/kzm.o
  CC      m68k-softmmu/tcg/tcg-common.o
  CC      i386-softmmu/target/i386/excp_helper.o
  CC      arm-softmmu/hw/arm/fsl-imx6.o
  CC      aarch64-softmmu/hw/arm/bcm2836.o
  CC      m68k-softmmu/fpu/softfloat.o
  CC      i386-softmmu/target/i386/fpu_helper.o
  CC      arm-softmmu/hw/arm/sabrelite.o
  CC      aarch64-softmmu/hw/arm/raspi.o
  CC      aarch64-softmmu/hw/arm/stm32f205_soc.o
  CC      arm-softmmu/hw/arm/aspeed_soc.o
  CC      aarch64-softmmu/hw/arm/xlnx-zynqmp.o
  CC      arm-softmmu/hw/arm/aspeed.o
  CC      aarch64-softmmu/hw/arm/xlnx-ep108.o
  CC      arm-softmmu/target/arm/arm-semi.o
  CC      arm-softmmu/target/arm/machine.o
  CC      m68k-softmmu/disas.o
  CC      arm-softmmu/target/arm/psci.o
  CC      aarch64-softmmu/hw/arm/fsl-imx25.o
  CC      m68k-softmmu/tcg-runtime.o
  CC      arm-softmmu/target/arm/arch_dump.o
  GEN     m68k-softmmu/gdbstub-xml.c
  CC      aarch64-softmmu/hw/arm/imx25_pdk.o
  CC      i386-softmmu/target/i386/cc_helper.o
  CC      m68k-softmmu/hax-stub.o
  CC      arm-softmmu/target/arm/monitor.o
  CC      aarch64-softmmu/hw/arm/fsl-imx31.o
  CC      m68k-softmmu/kvm-stub.o
  CC      arm-softmmu/target/arm/kvm-stub.o
  CC      i386-softmmu/target/i386/int_helper.o
  CC      aarch64-softmmu/hw/arm/kzm.o
  CC      m68k-softmmu/arch_init.o
  CC      arm-softmmu/target/arm/translate.o
  CC      i386-softmmu/target/i386/svm_helper.o
  CC      aarch64-softmmu/hw/arm/fsl-imx6.o
  CC      m68k-softmmu/cpus.o
  CC      aarch64-softmmu/hw/arm/sabrelite.o
  CC      i386-softmmu/target/i386/smm_helper.o
  CC      aarch64-softmmu/hw/arm/aspeed_soc.o
  CC      i386-softmmu/target/i386/misc_helper.o
  CC      m68k-softmmu/monitor.o
  CC      i386-softmmu/target/i386/mem_helper.o
  CC      aarch64-softmmu/hw/arm/aspeed.o
  CC      i386-softmmu/target/i386/seg_helper.o
  CC      aarch64-softmmu/target/arm/arm-semi.o
  CC      aarch64-softmmu/target/arm/machine.o
  CC      m68k-softmmu/gdbstub.o
  CC      aarch64-softmmu/target/arm/psci.o
  CC      m68k-softmmu/balloon.o
  CC      aarch64-softmmu/target/arm/arch_dump.o
  CC      m68k-softmmu/ioport.o
  CC      aarch64-softmmu/target/arm/monitor.o
  CC      m68k-softmmu/numa.o
  CC      i386-softmmu/target/i386/mpx_helper.o
  CC      aarch64-softmmu/target/arm/kvm-stub.o
  CC      aarch64-softmmu/target/arm/translate.o
  CC      m68k-softmmu/qtest.o
  CC      arm-softmmu/target/arm/op_helper.o
  CC      i386-softmmu/target/i386/gdbstub.o
  CC      m68k-softmmu/bootdevice.o
  CC      i386-softmmu/target/i386/machine.o
  CC      m68k-softmmu/memory.o
  CC      i386-softmmu/target/i386/arch_memory_mapping.o
  CC      arm-softmmu/target/arm/helper.o
  CC      i386-softmmu/target/i386/arch_dump.o
  CC      m68k-softmmu/cputlb.o
  CC      i386-softmmu/target/i386/monitor.o
  CC      i386-softmmu/target/i386/kvm-stub.o
  GEN     trace/generated-helpers.c
  CC      i386-softmmu/trace/control-target.o
  CC      m68k-softmmu/memory_mapping.o
  CC      m68k-softmmu/dump.o
  CC      i386-softmmu/trace/generated-helpers.o
  CC      arm-softmmu/target/arm/cpu.o
  CC      m68k-softmmu/migration/ram.o
  LINK    i386-softmmu/qemu-system-i386
  CC      aarch64-softmmu/target/arm/op_helper.o
  CC      arm-softmmu/target/arm/neon_helper.o
  CC      m68k-softmmu/migration/savevm.o
  CC      m68k-softmmu/hw/char/mcf_uart.o
  CC      aarch64-softmmu/target/arm/helper.o
  CC      m68k-softmmu/hw/core/nmi.o
  GEN     microblazeel-softmmu/hmp-commands.h
  GEN     microblazeel-softmmu/hmp-commands-info.h
  GEN     microblazeel-softmmu/config-target.h
  CC      microblazeel-softmmu/exec.o
  CC      arm-softmmu/target/arm/iwmmxt_helper.o
  CC      m68k-softmmu/hw/core/generic-loader.o
  CC      m68k-softmmu/hw/core/null-machine.o
  CC      arm-softmmu/target/arm/gdbstub.o
  CC      m68k-softmmu/hw/cpu/core.o
  CC      arm-softmmu/target/arm/crypto_helper.o
  CC      m68k-softmmu/hw/net/mcf_fec.o
  CC      arm-softmmu/target/arm/arm-powerctl.o
  CC      microblazeel-softmmu/translate-all.o
  CC      m68k-softmmu/hw/net/vhost_net.o
  GEN     trace/generated-helpers.c
  CC      arm-softmmu/trace/control-target.o
  CC      microblazeel-softmmu/cpu-exec.o
  CC      m68k-softmmu/hw/net/rocker/qmp-norocker.o
  CC      arm-softmmu/gdbstub-xml.o
  CC      aarch64-softmmu/target/arm/cpu.o
  CC      arm-softmmu/trace/generated-helpers.o
  CC      m68k-softmmu/hw/vfio/common.o
  CC      microblazeel-softmmu/translate-common.o
  LINK    arm-softmmu/qemu-system-arm
  CC      microblazeel-softmmu/cpu-exec-common.o
  CC      m68k-softmmu/hw/vfio/platform.o
  CC      aarch64-softmmu/target/arm/neon_helper.o
  CC      microblazeel-softmmu/tcg/tcg.o
  CC      m68k-softmmu/hw/vfio/spapr.o
  CC      m68k-softmmu/hw/m68k/an5206.o
  CC      m68k-softmmu/hw/m68k/mcf5208.o
  CC      aarch64-softmmu/target/arm/iwmmxt_helper.o
  CC      aarch64-softmmu/target/arm/gdbstub.o
  CC      microblazeel-softmmu/tcg/tcg-op.o
  CC      aarch64-softmmu/target/arm/cpu64.o
  CC      m68k-softmmu/hw/m68k/mcf5206.o
  CC      m68k-softmmu/hw/m68k/mcf_intc.o
  CC      aarch64-softmmu/target/arm/translate-a64.o
  GEN     microblaze-softmmu/hmp-commands.h
  GEN     microblaze-softmmu/hmp-commands-info.h
  CC      m68k-softmmu/target/m68k/m68k-semi.o
  GEN     microblaze-softmmu/config-target.h
  CC      microblaze-softmmu/exec.o
  CC      m68k-softmmu/target/m68k/translate.o
  CC      microblazeel-softmmu/tcg/optimize.o
  CC      microblaze-softmmu/translate-all.o
  CC      microblazeel-softmmu/tcg/tcg-common.o
  CC      microblazeel-softmmu/fpu/softfloat.o
  CC      m68k-softmmu/target/m68k/op_helper.o
  CC      microblaze-softmmu/cpu-exec.o
  CC      aarch64-softmmu/target/arm/helper-a64.o
  CC      m68k-softmmu/target/m68k/helper.o
  CC      microblaze-softmmu/translate-common.o
  CC      aarch64-softmmu/target/arm/gdbstub64.o
  CC      m68k-softmmu/target/m68k/cpu.o
  CC      microblaze-softmmu/cpu-exec-common.o
  CC      aarch64-softmmu/target/arm/crypto_helper.o
  CC      m68k-softmmu/target/m68k/gdbstub.o
  CC      microblaze-softmmu/tcg/tcg.o
  CC      aarch64-softmmu/target/arm/arm-powerctl.o
  GEN     trace/generated-helpers.c
  CC      m68k-softmmu/trace/control-target.o
  GEN     trace/generated-helpers.c
  CC      aarch64-softmmu/trace/control-target.o
  CC      m68k-softmmu/gdbstub-xml.o
  CC      m68k-softmmu/trace/generated-helpers.o
  CC      aarch64-softmmu/gdbstub-xml.o
  LINK    m68k-softmmu/qemu-system-m68k
  CC      microblazeel-softmmu/disas.o
  CC      aarch64-softmmu/trace/generated-helpers.o
  CC      microblaze-softmmu/tcg/tcg-op.o
  CC      microblazeel-softmmu/tcg-runtime.o
  CC      microblazeel-softmmu/hax-stub.o
  LINK    aarch64-softmmu/qemu-system-aarch64
  CC      microblazeel-softmmu/arch_init.o
  CC      microblazeel-softmmu/kvm-stub.o
  CC      microblazeel-softmmu/cpus.o
  GEN     mips64el-softmmu/hmp-commands.h
  CC      microblazeel-softmmu/monitor.o
  GEN     mips64el-softmmu/hmp-commands-info.h
  CC      microblaze-softmmu/tcg/optimize.o
  GEN     mips64el-softmmu/config-target.h
  CC      microblazeel-softmmu/gdbstub.o
  CC      mips64el-softmmu/exec.o
  CC      microblaze-softmmu/tcg/tcg-common.o
  CC      microblaze-softmmu/fpu/softfloat.o
  CC      microblazeel-softmmu/balloon.o
  GEN     mips64-softmmu/hmp-commands.h
  GEN     mips64-softmmu/hmp-commands-info.h
  GEN     mips64-softmmu/config-target.h
  CC      mips64-softmmu/exec.o
  CC      microblazeel-softmmu/ioport.o
  CC      microblazeel-softmmu/numa.o
  CC      mips64el-softmmu/translate-all.o
  CC      microblazeel-softmmu/qtest.o
  CC      mips64el-softmmu/cpu-exec.o
  CC      mips64-softmmu/translate-all.o
  CC      microblazeel-softmmu/bootdevice.o
  CC      microblaze-softmmu/disas.o
  CC      mips64el-softmmu/translate-common.o
  CC      mips64-softmmu/cpu-exec.o
  CC      microblazeel-softmmu/memory.o
  CC      microblaze-softmmu/tcg-runtime.o
  CC      mips64el-softmmu/cpu-exec-common.o
  CC      mips64-softmmu/translate-common.o
  CC      microblaze-softmmu/hax-stub.o
  CC      mips64el-softmmu/tcg/tcg.o
  CC      mips64-softmmu/cpu-exec-common.o
  CC      microblaze-softmmu/kvm-stub.o
  CC      microblazeel-softmmu/cputlb.o
  CC      mips64-softmmu/tcg/tcg.o
  CC      microblaze-softmmu/arch_init.o
  CC      microblaze-softmmu/cpus.o
  CC      microblaze-softmmu/monitor.o
  CC      mips64el-softmmu/tcg/tcg-op.o
  CC      microblazeel-softmmu/memory_mapping.o
  CC      mips64-softmmu/tcg/tcg-op.o
  CC      microblazeel-softmmu/dump.o
  CC      microblaze-softmmu/gdbstub.o
  CC      microblazeel-softmmu/migration/ram.o
  CC      microblazeel-softmmu/migration/savevm.o
  CC      microblaze-softmmu/balloon.o
  CC      mips64el-softmmu/tcg/optimize.o
  CC      microblaze-softmmu/ioport.o
  CC      microblazeel-softmmu/hw/core/nmi.o
  CC      mips64-softmmu/tcg/optimize.o
  CC      microblaze-softmmu/numa.o
  CC      microblazeel-softmmu/hw/core/generic-loader.o
  CC      microblazeel-softmmu/hw/core/null-machine.o
  CC      microblazeel-softmmu/hw/cpu/core.o
  CC      mips64el-softmmu/tcg/tcg-common.o
  CC      microblaze-softmmu/qtest.o
  CC      microblazeel-softmmu/hw/net/xilinx_ethlite.o
  CC      mips64-softmmu/tcg/tcg-common.o
  CC      mips64el-softmmu/fpu/softfloat.o
  CC      mips64-softmmu/fpu/softfloat.o
  CC      microblazeel-softmmu/hw/net/vhost_net.o
  CC      microblaze-softmmu/bootdevice.o
  CC      microblazeel-softmmu/hw/net/rocker/qmp-norocker.o
  CC      microblaze-softmmu/memory.o
  CC      microblazeel-softmmu/hw/vfio/common.o
  CC      microblaze-softmmu/cputlb.o
  CC      microblazeel-softmmu/hw/vfio/platform.o
  CC      mips64el-softmmu/disas.o
  CC      microblazeel-softmmu/hw/vfio/spapr.o
  CC      mips64el-softmmu/tcg-runtime.o
  CC      mips64-softmmu/disas.o
  CC      microblazeel-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
  CC      mips64-softmmu/tcg-runtime.o
  CC      microblaze-softmmu/memory_mapping.o
  CC      microblazeel-softmmu/hw/microblaze/petalogix_ml605_mmu.o
  CC      mips64el-softmmu/hax-stub.o
  CC      microblazeel-softmmu/hw/microblaze/boot.o
  CC      mips64el-softmmu/kvm-stub.o
  CC      mips64-softmmu/hax-stub.o
  CC      microblaze-softmmu/dump.o
  CC      microblazeel-softmmu/target/microblaze/translate.o
  CC      mips64el-softmmu/arch_init.o
  CC      mips64-softmmu/kvm-stub.o
  CC      mips64-softmmu/arch_init.o
  CC      mips64el-softmmu/cpus.o
  CC      microblaze-softmmu/migration/ram.o
  CC      mips64-softmmu/cpus.o
  CC      microblazeel-softmmu/target/microblaze/op_helper.o
  CC      mips64el-softmmu/monitor.o
  CC      mips64-softmmu/monitor.o
  CC      microblazeel-softmmu/target/microblaze/helper.o
  CC      microblaze-softmmu/migration/savevm.o
  CC      microblazeel-softmmu/target/microblaze/cpu.o
  CC      microblazeel-softmmu/target/microblaze/gdbstub.o
  CC      microblaze-softmmu/hw/core/nmi.o
  CC      microblazeel-softmmu/target/microblaze/mmu.o
  CC      mips64el-softmmu/gdbstub.o
  CC      mips64-softmmu/gdbstub.o
  CC      microblaze-softmmu/hw/core/generic-loader.o
  GEN     trace/generated-helpers.c
  CC      microblazeel-softmmu/trace/control-target.o
  CC      microblazeel-softmmu/trace/generated-helpers.o
  CC      mips64el-softmmu/balloon.o
  CC      microblaze-softmmu/hw/core/null-machine.o
  CC      mips64el-softmmu/ioport.o
  LINK    microblazeel-softmmu/qemu-system-microblazeel
  CC      mips64-softmmu/balloon.o
  CC      microblaze-softmmu/hw/cpu/core.o
  CC      mips64el-softmmu/numa.o
  CC      microblaze-softmmu/hw/net/xilinx_ethlite.o
  CC      mips64-softmmu/ioport.o
  CC      microblaze-softmmu/hw/net/vhost_net.o
  CC      mips64el-softmmu/qtest.o
  CC      mips64-softmmu/numa.o
  CC      mips64-softmmu/qtest.o
  CC      microblaze-softmmu/hw/net/rocker/qmp-norocker.o
  CC      microblaze-softmmu/hw/vfio/common.o
  CC      mips64el-softmmu/bootdevice.o
  CC      mips64-softmmu/bootdevice.o
  CC      mips64-softmmu/memory.o
  CC      mips64el-softmmu/memory.o
  CC      mips64-softmmu/cputlb.o
  CC      microblaze-softmmu/hw/vfio/platform.o
  CC      microblaze-softmmu/hw/vfio/spapr.o
  CC      mips64el-softmmu/cputlb.o
  CC      microblaze-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
  CC      mips64-softmmu/memory_mapping.o
  CC      microblaze-softmmu/hw/microblaze/petalogix_ml605_mmu.o
  CC      mips64-softmmu/dump.o
  CC      microblaze-softmmu/hw/microblaze/boot.o
  CC      microblaze-softmmu/target/microblaze/translate.o
  GEN     mipsel-softmmu/hmp-commands.h
  GEN     mipsel-softmmu/hmp-commands-info.h
  GEN     mipsel-softmmu/config-target.h
  CC      mips64-softmmu/migration/ram.o
  CC      mipsel-softmmu/exec.o
  CC      mips64el-softmmu/memory_mapping.o
  CC      microblaze-softmmu/target/microblaze/op_helper.o
  CC      mips64el-softmmu/dump.o
  CC      mips64-softmmu/migration/savevm.o
  CC      mips64el-softmmu/migration/ram.o
  CC      microblaze-softmmu/target/microblaze/helper.o
  CC      microblaze-softmmu/target/microblaze/cpu.o
  CC      mips64-softmmu/hw/9pfs/virtio-9p-device.o
  CC      microblaze-softmmu/target/microblaze/gdbstub.o
  CC      mipsel-softmmu/translate-all.o
  CC      mips64-softmmu/hw/block/virtio-blk.o
  CC      mips64el-softmmu/migration/savevm.o
  CC      microblaze-softmmu/target/microblaze/mmu.o
  CC      mipsel-softmmu/cpu-exec.o
  CC      mips64-softmmu/hw/block/dataplane/virtio-blk.o
  GEN     trace/generated-helpers.c
  CC      microblaze-softmmu/trace/control-target.o
  CC      mips64-softmmu/hw/char/virtio-serial-bus.o
  CC      mipsel-softmmu/translate-common.o
  CC      microblaze-softmmu/trace/generated-helpers.o
  CC      mips64el-softmmu/hw/9pfs/virtio-9p-device.o
  CC      mipsel-softmmu/cpu-exec-common.o
  CC      mips64-softmmu/hw/core/nmi.o
  LINK    microblaze-softmmu/qemu-system-microblaze
  CC      mips64el-softmmu/hw/block/virtio-blk.o
  CC      mipsel-softmmu/tcg/tcg.o
  CC      mips64-softmmu/hw/core/generic-loader.o
  CC      mips64-softmmu/hw/core/null-machine.o
  CC      mips64el-softmmu/hw/block/dataplane/virtio-blk.o
  CC      mipsel-softmmu/tcg/tcg-op.o
  CC      mips64-softmmu/hw/cpu/core.o
  CC      mips64el-softmmu/hw/char/virtio-serial-bus.o
  CC      mips64-softmmu/hw/display/vga.o
  CC      mips64el-softmmu/hw/core/nmi.o
  CC      mips64-softmmu/hw/display/virtio-gpu.o
  CC      mips64el-softmmu/hw/core/generic-loader.o
  CC      mips64el-softmmu/hw/core/null-machine.o
  CC      mips64-softmmu/hw/display/virtio-gpu-3d.o
  CC      mipsel-softmmu/tcg/optimize.o
  CC      mips64el-softmmu/hw/cpu/core.o
  CC      mips64el-softmmu/hw/display/vga.o
  CC      mips64-softmmu/hw/display/virtio-gpu-pci.o
  GEN     mips-softmmu/hmp-commands.h
  GEN     mips-softmmu/hmp-commands-info.h
  GEN     mips-softmmu/config-target.h
  CC      mips-softmmu/exec.o
  CC      mipsel-softmmu/tcg/tcg-common.o
  CC      mips64-softmmu/hw/intc/mips_gic.o
  CC      mips64el-softmmu/hw/display/virtio-gpu.o
  CC      mipsel-softmmu/fpu/softfloat.o
  CC      mips64-softmmu/hw/misc/ivshmem.o
  CC      mips64-softmmu/hw/misc/mips_cmgcr.o
  CC      mips64-softmmu/hw/misc/mips_cpc.o
  CC      mips64el-softmmu/hw/display/virtio-gpu-3d.o
  CC      mips64-softmmu/hw/misc/mips_itu.o
  CC      mips-softmmu/translate-all.o
  CC      mips64el-softmmu/hw/display/virtio-gpu-pci.o
  CC      mips64-softmmu/hw/misc/edu.o
  CC      mips64-softmmu/hw/net/virtio-net.o
  CC      mips-softmmu/cpu-exec.o
  CC      mips64el-softmmu/hw/intc/mips_gic.o
  CC      mipsel-softmmu/disas.o
  CC      mips-softmmu/translate-common.o
  CC      mips64-softmmu/hw/net/vhost_net.o
  CC      mipsel-softmmu/tcg-runtime.o
  CC      mips64el-softmmu/hw/misc/ivshmem.o
  CC      mips-softmmu/cpu-exec-common.o
  CC      mips64-softmmu/hw/scsi/virtio-scsi.o
  CC      mipsel-softmmu/hax-stub.o
  CC      mips-softmmu/tcg/tcg.o
  CC      mips64el-softmmu/hw/misc/mips_cmgcr.o
  CC      mips64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      mipsel-softmmu/kvm-stub.o
  CC      mips64el-softmmu/hw/misc/mips_cpc.o
  CC      mips64-softmmu/hw/scsi/vhost-scsi.o
  CC      mipsel-softmmu/arch_init.o
  CC      mips64el-softmmu/hw/misc/mips_itu.o
  CC      mipsel-softmmu/cpus.o
  CC      mips64-softmmu/hw/timer/mips_gictimer.o
  CC      mips64-softmmu/hw/timer/mc146818rtc.o
  CC      mips64el-softmmu/hw/misc/edu.o
  CC      mipsel-softmmu/monitor.o
  CC      mips64el-softmmu/hw/net/virtio-net.o
  CC      mips-softmmu/tcg/tcg-op.o
  CC      mips64-softmmu/hw/vfio/common.o
  CC      mips64el-softmmu/hw/net/vhost_net.o
  CC      mips64-softmmu/hw/vfio/pci.o
  CC      mips64el-softmmu/hw/scsi/virtio-scsi.o
  CC      mipsel-softmmu/gdbstub.o
  CC      mipsel-softmmu/balloon.o
  CC      mips64-softmmu/hw/vfio/pci-quirks.o
  CC      mips64el-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      mipsel-softmmu/ioport.o
  CC      mips64el-softmmu/hw/scsi/vhost-scsi.o
  CC      mipsel-softmmu/numa.o
  CC      mips64el-softmmu/hw/timer/mips_gictimer.o
  CC      mipsel-softmmu/qtest.o
  CC      mips64-softmmu/hw/vfio/platform.o
  CC      mips64el-softmmu/hw/timer/mc146818rtc.o
  CC      mips-softmmu/tcg/optimize.o
  CC      mips64-softmmu/hw/vfio/spapr.o
  CC      mipsel-softmmu/bootdevice.o
  CC      mips64el-softmmu/hw/vfio/common.o
  CC      mips64-softmmu/hw/virtio/virtio.o
  CC      mipsel-softmmu/memory.o
  CC      mips64el-softmmu/hw/vfio/pci.o
  CC      mips-softmmu/tcg/tcg-common.o
  CC      mips64-softmmu/hw/virtio/virtio-balloon.o
  CC      mips-softmmu/fpu/softfloat.o
  CC      mips64el-softmmu/hw/vfio/pci-quirks.o
  CC      mipsel-softmmu/cputlb.o
  CC      mips64-softmmu/hw/virtio/vhost.o
  CC      mips64el-softmmu/hw/vfio/platform.o
  CC      mips64-softmmu/hw/virtio/vhost-backend.o
  CC      mips64el-softmmu/hw/vfio/spapr.o
  CC      mips64-softmmu/hw/virtio/vhost-user.o
  CC      mipsel-softmmu/memory_mapping.o
  CC      mips64el-softmmu/hw/virtio/virtio.o
  CC      mips64-softmmu/hw/virtio/vhost-vsock.o
  CC      mipsel-softmmu/dump.o
  CC      mips-softmmu/disas.o
  CC      mips-softmmu/tcg-runtime.o
  CC      mips64-softmmu/hw/virtio/virtio-crypto.o
  CC      mips64el-softmmu/hw/virtio/virtio-balloon.o
  CC      mipsel-softmmu/migration/ram.o
  CC      mips-softmmu/hax-stub.o
  CC      mips64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      mips64el-softmmu/hw/virtio/vhost.o
  CC      mips-softmmu/kvm-stub.o
  CC      mips64-softmmu/hw/mips/mips_r4k.o
  CC      mips-softmmu/arch_init.o
  CC      mipsel-softmmu/migration/savevm.o
  CC      mips64el-softmmu/hw/virtio/vhost-backend.o
  CC      mips-softmmu/cpus.o
  CC      mips64-softmmu/hw/mips/mips_malta.o
  CC      mips64el-softmmu/hw/virtio/vhost-user.o
  CC      mips64-softmmu/hw/mips/mips_mipssim.o
  CC      mips64el-softmmu/hw/virtio/vhost-vsock.o
  CC      mips-softmmu/monitor.o
  CC      mipsel-softmmu/hw/9pfs/virtio-9p-device.o
  CC      mips64-softmmu/hw/mips/addr.o
  CC      mips64el-softmmu/hw/virtio/virtio-crypto.o
  CC      mipsel-softmmu/hw/block/virtio-blk.o
  CC      mips64-softmmu/hw/mips/cputimer.o
  CC      mips64-softmmu/hw/mips/mips_int.o
  CC      mips64el-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      mips64-softmmu/hw/mips/mips_jazz.o
  CC      mipsel-softmmu/hw/block/dataplane/virtio-blk.o
  CC      mips64el-softmmu/hw/mips/mips_r4k.o
  CC      mips-softmmu/gdbstub.o
  CC      mips64-softmmu/hw/mips/gt64xxx_pci.o
  CC      mipsel-softmmu/hw/char/virtio-serial-bus.o
  CC      mips64el-softmmu/hw/mips/mips_malta.o
  CC      mips-softmmu/balloon.o
  CC      mips64-softmmu/hw/mips/cps.o
  CC      mipsel-softmmu/hw/core/nmi.o
  CC      mips-softmmu/ioport.o
  CC      mipsel-softmmu/hw/core/generic-loader.o
  CC      mips64el-softmmu/hw/mips/mips_mipssim.o
  CC      mips64-softmmu/target/mips/translate.o
  CC      mipsel-softmmu/hw/core/null-machine.o
  CC      mips-softmmu/numa.o
  CC      mips64el-softmmu/hw/mips/addr.o
  CC      mips64el-softmmu/hw/mips/cputimer.o
  CC      mipsel-softmmu/hw/cpu/core.o
  CC      mips-softmmu/qtest.o
  CC      mips64el-softmmu/hw/mips/mips_int.o
  CC      mips64el-softmmu/hw/mips/mips_jazz.o
  CC      mipsel-softmmu/hw/display/vga.o
  CC      mips-softmmu/bootdevice.o
  CC      mips-softmmu/memory.o
  CC      mips64el-softmmu/hw/mips/mips_fulong2e.o
  CC      mips64el-softmmu/hw/mips/gt64xxx_pci.o
  CC      mipsel-softmmu/hw/display/virtio-gpu.o
  CC      mips-softmmu/cputlb.o
  CC      mips64el-softmmu/hw/mips/cps.o
  CC      mips64el-softmmu/hw/mips/boston.o
  CC      mipsel-softmmu/hw/display/virtio-gpu-3d.o
  CC      mips64el-softmmu/target/mips/translate.o
  CC      mips-softmmu/memory_mapping.o
  CC      mipsel-softmmu/hw/display/virtio-gpu-pci.o
  CC      mips-softmmu/dump.o
  CC      mipsel-softmmu/hw/intc/mips_gic.o
  CC      mipsel-softmmu/hw/misc/ivshmem.o
  CC      mips-softmmu/migration/ram.o
  CC      mipsel-softmmu/hw/misc/mips_cmgcr.o
  CC      mipsel-softmmu/hw/misc/mips_cpc.o
  CC      mips-softmmu/migration/savevm.o
  CC      mips64-softmmu/target/mips/dsp_helper.o
  CC      mipsel-softmmu/hw/misc/mips_itu.o
  CC      mips-softmmu/hw/9pfs/virtio-9p-device.o
  CC      mipsel-softmmu/hw/misc/edu.o
  CC      mips-softmmu/hw/block/virtio-blk.o
  CC      mipsel-softmmu/hw/net/virtio-net.o
  CC      mips64-softmmu/target/mips/op_helper.o
  CC      mips-softmmu/hw/block/dataplane/virtio-blk.o
  CC      mipsel-softmmu/hw/net/vhost_net.o
  CC      mips-softmmu/hw/char/virtio-serial-bus.o
  CC      mipsel-softmmu/hw/scsi/virtio-scsi.o
  CC      mips-softmmu/hw/core/nmi.o
  CC      mipsel-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      mips-softmmu/hw/core/generic-loader.o
  CC      mips64el-softmmu/target/mips/dsp_helper.o
  CC      mipsel-softmmu/hw/scsi/vhost-scsi.o
  CC      mips-softmmu/hw/core/null-machine.o
  CC      mips-softmmu/hw/cpu/core.o
  CC      mipsel-softmmu/hw/timer/mips_gictimer.o
  CC      mips64-softmmu/target/mips/lmi_helper.o
  CC      mips-softmmu/hw/display/vga.o
  CC      mipsel-softmmu/hw/timer/mc146818rtc.o
  CC      mips64-softmmu/target/mips/helper.o
  CC      mipsel-softmmu/hw/vfio/common.o
  CC      mips64el-softmmu/target/mips/op_helper.o
  CC      mips64-softmmu/target/mips/cpu.o
  CC      mipsel-softmmu/hw/vfio/pci.o
  CC      mips64-softmmu/target/mips/gdbstub.o
  CC      mips-softmmu/hw/display/virtio-gpu.o
  CC      mips64-softmmu/target/mips/msa_helper.o
  CC      mips-softmmu/hw/display/virtio-gpu-3d.o
  CC      mipsel-softmmu/hw/vfio/pci-quirks.o
  CC      mips-softmmu/hw/display/virtio-gpu-pci.o
  CC      mipsel-softmmu/hw/vfio/platform.o
  CC      mips64el-softmmu/target/mips/lmi_helper.o
  CC      mips-softmmu/hw/intc/mips_gic.o
  CC      mipsel-softmmu/hw/vfio/spapr.o
  CC      mips64el-softmmu/target/mips/helper.o
  CC      mipsel-softmmu/hw/virtio/virtio.o
  CC      mips-softmmu/hw/misc/ivshmem.o
  CC      mips64el-softmmu/target/mips/cpu.o
  CC      mips-softmmu/hw/misc/mips_cmgcr.o
  CC      mips64el-softmmu/target/mips/gdbstub.o
  CC      mipsel-softmmu/hw/virtio/virtio-balloon.o
  CC      mips-softmmu/hw/misc/mips_cpc.o
  CC      mips64el-softmmu/target/mips/msa_helper.o
  CC      mips-softmmu/hw/misc/mips_itu.o
  CC      mipsel-softmmu/hw/virtio/vhost.o
  CC      mips64-softmmu/target/mips/mips-semi.o
  CC      mips-softmmu/hw/misc/edu.o
  CC      mips64-softmmu/target/mips/machine.o
  CC      mipsel-softmmu/hw/virtio/vhost-backend.o
  CC      mips-softmmu/hw/net/virtio-net.o
  CC      mipsel-softmmu/hw/virtio/vhost-user.o
  GEN     trace/generated-helpers.c
  CC      mips64-softmmu/trace/control-target.o
  CC      mips-softmmu/hw/net/vhost_net.o
  CC      mipsel-softmmu/hw/virtio/vhost-vsock.o
  CC      mips64-softmmu/trace/generated-helpers.o
  CC      mips-softmmu/hw/scsi/virtio-scsi.o
  CC      mipsel-softmmu/hw/virtio/virtio-crypto.o
  LINK    mips64-softmmu/qemu-system-mips64
  CC      mips-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      mipsel-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      mips-softmmu/hw/scsi/vhost-scsi.o
  CC      mipsel-softmmu/hw/mips/mips_r4k.o
  CC      mips-softmmu/hw/timer/mips_gictimer.o
  CC      mips64el-softmmu/target/mips/mips-semi.o
  CC      mips-softmmu/hw/timer/mc146818rtc.o
  CC      mipsel-softmmu/hw/mips/mips_malta.o
  GEN     moxie-softmmu/hmp-commands.h
  GEN     moxie-softmmu/hmp-commands-info.h
  CC      mips-softmmu/hw/vfio/common.o
  GEN     moxie-softmmu/config-target.h
  CC      mips64el-softmmu/target/mips/machine.o
  CC      moxie-softmmu/exec.o
  CC      mipsel-softmmu/hw/mips/mips_mipssim.o
  GEN     trace/generated-helpers.c
  CC      mips64el-softmmu/trace/control-target.o
  CC      mipsel-softmmu/hw/mips/addr.o
  CC      mips-softmmu/hw/vfio/pci.o
  CC      mipsel-softmmu/hw/mips/cputimer.o
  CC      mips64el-softmmu/trace/generated-helpers.o
  CC      mipsel-softmmu/hw/mips/mips_int.o
  LINK    mips64el-softmmu/qemu-system-mips64el
  CC      mipsel-softmmu/hw/mips/gt64xxx_pci.o
  CC      mips-softmmu/hw/vfio/pci-quirks.o
  CC      moxie-softmmu/translate-all.o
  CC      mipsel-softmmu/hw/mips/cps.o
  CC      mips-softmmu/hw/vfio/platform.o
  CC      moxie-softmmu/cpu-exec.o
  CC      mipsel-softmmu/target/mips/translate.o
  CC      mips-softmmu/hw/vfio/spapr.o
  CC      moxie-softmmu/translate-common.o
  CC      mips-softmmu/hw/virtio/virtio.o
  CC      moxie-softmmu/cpu-exec-common.o
  CC      mipsel-softmmu/target/mips/dsp_helper.o
  CC      moxie-softmmu/tcg/tcg.o
  CC      mips-softmmu/hw/virtio/virtio-balloon.o
  CC      moxie-softmmu/tcg/tcg-op.o
  CC      mips-softmmu/hw/virtio/vhost.o
  CC      mips-softmmu/hw/virtio/vhost-backend.o
  GEN     nios2-softmmu/hmp-commands.h
  GEN     nios2-softmmu/hmp-commands-info.h
  CC      mips-softmmu/hw/virtio/vhost-user.o
  GEN     nios2-softmmu/config-target.h
  CC      nios2-softmmu/exec.o
  CC      mips-softmmu/hw/virtio/vhost-vsock.o
  CC      moxie-softmmu/tcg/optimize.o
  CC      mips-softmmu/hw/virtio/virtio-crypto.o
  CC      moxie-softmmu/tcg/tcg-common.o
  CC      mips-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      mipsel-softmmu/target/mips/op_helper.o
  CC      nios2-softmmu/translate-all.o
  CC      moxie-softmmu/fpu/softfloat.o
  CC      mips-softmmu/hw/mips/mips_r4k.o
  CC      nios2-softmmu/cpu-exec.o
  CC      mips-softmmu/hw/mips/mips_malta.o
  CC      nios2-softmmu/translate-common.o
  CC      mips-softmmu/hw/mips/mips_mipssim.o
  CC      nios2-softmmu/cpu-exec-common.o
  CC      mips-softmmu/hw/mips/addr.o
  CC      mips-softmmu/hw/mips/cputimer.o
  CC      nios2-softmmu/tcg/tcg.o
  CC      mips-softmmu/hw/mips/mips_int.o
  CC      mipsel-softmmu/target/mips/lmi_helper.o
  CC      mips-softmmu/hw/mips/gt64xxx_pci.o
  CC      moxie-softmmu/disas.o
  CC      mips-softmmu/hw/mips/cps.o
  CC      mipsel-softmmu/target/mips/helper.o
  CC      moxie-softmmu/tcg-runtime.o
  CC      mips-softmmu/target/mips/translate.o
  CC      mipsel-softmmu/target/mips/cpu.o
  CC      moxie-softmmu/hax-stub.o
  CC      mipsel-softmmu/target/mips/gdbstub.o
  CC      nios2-softmmu/tcg/tcg-op.o
  CC      moxie-softmmu/kvm-stub.o
  CC      mipsel-softmmu/target/mips/msa_helper.o
  CC      moxie-softmmu/arch_init.o
  CC      moxie-softmmu/cpus.o
  CC      nios2-softmmu/tcg/optimize.o
  CC      moxie-softmmu/monitor.o
  CC      nios2-softmmu/tcg/tcg-common.o
  CC      nios2-softmmu/fpu/softfloat.o
  CC      mipsel-softmmu/target/mips/mips-semi.o
  CC      moxie-softmmu/gdbstub.o
  CC      mipsel-softmmu/target/mips/machine.o
  GEN     trace/generated-helpers.c
  CC      mipsel-softmmu/trace/control-target.o
  CC      moxie-softmmu/balloon.o
  CC      mips-softmmu/target/mips/dsp_helper.o
  CC      moxie-softmmu/ioport.o
  CC      mipsel-softmmu/trace/generated-helpers.o
  CC      moxie-softmmu/numa.o
  CC      nios2-softmmu/disas.o
  CC      mips-softmmu/target/mips/op_helper.o
  CC      nios2-softmmu/tcg-runtime.o
  LINK    mipsel-softmmu/qemu-system-mipsel
  CC      moxie-softmmu/qtest.o
  CC      nios2-softmmu/hax-stub.o
  CC      moxie-softmmu/bootdevice.o
  CC      nios2-softmmu/kvm-stub.o
  CC      nios2-softmmu/arch_init.o
  CC      moxie-softmmu/memory.o
  CC      nios2-softmmu/cpus.o
  CC      nios2-softmmu/monitor.o
  CC      nios2-softmmu/gdbstub.o
  CC      mips-softmmu/target/mips/lmi_helper.o
  CC      mips-softmmu/target/mips/helper.o
  CC      nios2-softmmu/balloon.o
  CC      moxie-softmmu/cputlb.o
  CC      moxie-softmmu/memory_mapping.o
  CC      mips-softmmu/target/mips/cpu.o
  CC      mips-softmmu/target/mips/gdbstub.o
  CC      nios2-softmmu/ioport.o
  CC      mips-softmmu/target/mips/msa_helper.o
  GEN     or1k-softmmu/hmp-commands.h
  GEN     or1k-softmmu/hmp-commands-info.h
  CC      nios2-softmmu/numa.o
  GEN     or1k-softmmu/config-target.h
  CC      or1k-softmmu/exec.o
  CC      nios2-softmmu/qtest.o
  CC      moxie-softmmu/dump.o
  CC      moxie-softmmu/migration/ram.o
  CC      nios2-softmmu/bootdevice.o
  CC      nios2-softmmu/memory.o
  CC      or1k-softmmu/translate-all.o
  CC      moxie-softmmu/migration/savevm.o
  CC      or1k-softmmu/cpu-exec.o
  CC      nios2-softmmu/cputlb.o
  CC      or1k-softmmu/translate-common.o
  CC      mips-softmmu/target/mips/mips-semi.o
  CC      moxie-softmmu/hw/core/nmi.o
  CC      or1k-softmmu/cpu-exec-common.o
  CC      mips-softmmu/target/mips/machine.o
  CC      moxie-softmmu/hw/core/generic-loader.o
  CC      or1k-softmmu/tcg/tcg.o
  CC      moxie-softmmu/hw/core/null-machine.o
  GEN     trace/generated-helpers.c
  CC      mips-softmmu/trace/control-target.o
  CC      moxie-softmmu/hw/cpu/core.o
  CC      moxie-softmmu/hw/display/vga.o
  CC      nios2-softmmu/memory_mapping.o
  CC      mips-softmmu/trace/generated-helpers.o
  CC      nios2-softmmu/dump.o
  LINK    mips-softmmu/qemu-system-mips
  CC      or1k-softmmu/tcg/tcg-op.o
  CC      moxie-softmmu/hw/net/vhost_net.o
  CC      nios2-softmmu/migration/ram.o
  CC      moxie-softmmu/hw/net/rocker/qmp-norocker.o
  CC      moxie-softmmu/hw/timer/mc146818rtc.o
  CC      nios2-softmmu/migration/savevm.o
  CC      nios2-softmmu/hw/core/nmi.o
  CC      moxie-softmmu/hw/vfio/common.o
  CC      moxie-softmmu/hw/vfio/platform.o
  CC      nios2-softmmu/hw/core/generic-loader.o
  CC      moxie-softmmu/hw/vfio/spapr.o
  CC      or1k-softmmu/tcg/optimize.o
  GEN     ppc64-softmmu/hmp-commands.h
  CC      nios2-softmmu/hw/core/null-machine.o
  CC      moxie-softmmu/hw/moxie/moxiesim.o
  GEN     ppc64-softmmu/hmp-commands-info.h
  GEN     ppc64-softmmu/config-target.h
  CC      ppc64-softmmu/exec.o
  CC      moxie-softmmu/target/moxie/translate.o
  CC      nios2-softmmu/hw/cpu/core.o
  CC      or1k-softmmu/tcg/tcg-common.o
  CC      nios2-softmmu/hw/intc/nios2_iic.o
  CC      nios2-softmmu/hw/net/vhost_net.o
  CC      moxie-softmmu/target/moxie/helper.o
  CC      or1k-softmmu/fpu/softfloat.o
  CC      nios2-softmmu/hw/net/rocker/qmp-norocker.o
  CC      moxie-softmmu/target/moxie/machine.o
  CC      nios2-softmmu/hw/timer/altera_timer.o
  CC      moxie-softmmu/target/moxie/cpu.o
  CC      nios2-softmmu/hw/vfio/common.o
  CC      moxie-softmmu/target/moxie/mmu.o
  CC      ppc64-softmmu/translate-all.o
  GEN     trace/generated-helpers.c
  CC      moxie-softmmu/trace/control-target.o
  CC      nios2-softmmu/hw/vfio/platform.o
  CC      ppc64-softmmu/cpu-exec.o
  CC      moxie-softmmu/trace/generated-helpers.o
  CC      nios2-softmmu/hw/vfio/spapr.o
  CC      ppc64-softmmu/translate-common.o
  CC      ppc64-softmmu/cpu-exec-common.o
  CC      nios2-softmmu/hw/nios2/boot.o
  CC      ppc64-softmmu/tcg/tcg.o
  LINK    moxie-softmmu/qemu-system-moxie
  CC      nios2-softmmu/hw/nios2/cpu_pic.o
  CC      or1k-softmmu/disas.o
  CC      nios2-softmmu/hw/nios2/10m50_devboard.o
  CC      or1k-softmmu/tcg-runtime.o
  CC      nios2-softmmu/target/nios2/translate.o
  CC      or1k-softmmu/hax-stub.o
  CC      ppc64-softmmu/tcg/tcg-op.o
  CC      or1k-softmmu/kvm-stub.o
  CC      nios2-softmmu/target/nios2/op_helper.o
  CC      or1k-softmmu/arch_init.o
  GEN     ppcemb-softmmu/hmp-commands.h
  GEN     ppcemb-softmmu/hmp-commands-info.h
  GEN     ppcemb-softmmu/config-target.h
  CC      ppcemb-softmmu/exec.o
  CC      nios2-softmmu/target/nios2/helper.o
  CC      or1k-softmmu/cpus.o
  CC      nios2-softmmu/target/nios2/cpu.o
  CC      or1k-softmmu/monitor.o
  CC      nios2-softmmu/target/nios2/mmu.o
  CC      ppc64-softmmu/tcg/optimize.o
  CC      nios2-softmmu/target/nios2/monitor.o
  CC      ppcemb-softmmu/translate-all.o
  GEN     trace/generated-helpers.c
  CC      nios2-softmmu/trace/control-target.o
  CC      or1k-softmmu/gdbstub.o
  CC      ppc64-softmmu/tcg/tcg-common.o
  CC      nios2-softmmu/trace/generated-helpers.o
  CC      ppcemb-softmmu/cpu-exec.o
  CC      ppc64-softmmu/fpu/softfloat.o
  LINK    nios2-softmmu/qemu-system-nios2
  CC      ppcemb-softmmu/translate-common.o
  CC      or1k-softmmu/balloon.o
  CC      ppcemb-softmmu/cpu-exec-common.o
  CC      or1k-softmmu/ioport.o
  CC      ppcemb-softmmu/tcg/tcg.o
  CC      or1k-softmmu/numa.o
  CC      ppcemb-softmmu/tcg/tcg-op.o
  CC      or1k-softmmu/qtest.o
  CC      or1k-softmmu/bootdevice.o
  CC      ppc64-softmmu/disas.o
  CC      or1k-softmmu/memory.o
  CC      ppc64-softmmu/tcg-runtime.o
  GEN     ppc-softmmu/hmp-commands.h
  GEN     ppc-softmmu/hmp-commands-info.h
  GEN     ppc-softmmu/config-target.h
  CC      ppc-softmmu/exec.o
  CC      ppcemb-softmmu/tcg/optimize.o
  GEN     ppc64-softmmu/gdbstub-xml.c
  CC      or1k-softmmu/cputlb.o
  CC      ppcemb-softmmu/tcg/tcg-common.o
  CC      ppc64-softmmu/hax-stub.o
  CC      ppc64-softmmu/kvm-stub.o
  CC      ppcemb-softmmu/fpu/softfloat.o
  CC      ppc64-softmmu/libdecnumber/decContext.o
  CC      or1k-softmmu/memory_mapping.o
  CC      ppc-softmmu/translate-all.o
  CC      ppc64-softmmu/libdecnumber/decNumber.o
  CC      or1k-softmmu/dump.o
  CC      ppc-softmmu/cpu-exec.o
  CC      or1k-softmmu/migration/ram.o
  CC      ppc-softmmu/translate-common.o
  CC      ppc-softmmu/cpu-exec-common.o
  CC      ppc64-softmmu/libdecnumber/dpd/decimal32.o
  CC      ppc64-softmmu/libdecnumber/dpd/decimal64.o
  CC      ppc-softmmu/tcg/tcg.o
  CC      ppcemb-softmmu/disas.o
  CC      or1k-softmmu/migration/savevm.o
  CC      ppc64-softmmu/libdecnumber/dpd/decimal128.o
  CC      ppcemb-softmmu/tcg-runtime.o
  CC      ppc64-softmmu/arch_init.o
  GEN     ppcemb-softmmu/gdbstub-xml.c
  CC      or1k-softmmu/hw/core/nmi.o
  CC      ppc64-softmmu/cpus.o
  CC      or1k-softmmu/hw/core/generic-loader.o
  CC      ppcemb-softmmu/hax-stub.o
  CC      or1k-softmmu/hw/core/null-machine.o
  CC      ppcemb-softmmu/kvm-stub.o
  CC      ppc64-softmmu/monitor.o
  CC      ppc-softmmu/tcg/tcg-op.o
  CC      or1k-softmmu/hw/cpu/core.o
  CC      ppcemb-softmmu/libdecnumber/decContext.o
  CC      or1k-softmmu/hw/net/vhost_net.o
  CC      ppcemb-softmmu/libdecnumber/decNumber.o
  CC      or1k-softmmu/hw/net/rocker/qmp-norocker.o
  CC      or1k-softmmu/hw/vfio/common.o
  CC      ppc64-softmmu/gdbstub.o
  CC      ppc64-softmmu/balloon.o
  CC      ppcemb-softmmu/libdecnumber/dpd/decimal32.o
  CC      ppc64-softmmu/ioport.o
  CC      ppcemb-softmmu/libdecnumber/dpd/decimal64.o
  CC      or1k-softmmu/hw/vfio/platform.o
  CC      ppc-softmmu/tcg/optimize.o
  CC      ppc64-softmmu/numa.o
  CC      ppcemb-softmmu/libdecnumber/dpd/decimal128.o
  CC      or1k-softmmu/hw/vfio/spapr.o
  CC      ppc64-softmmu/qtest.o
  CC      or1k-softmmu/hw/openrisc/pic_cpu.o
  CC      ppcemb-softmmu/arch_init.o
  CC      or1k-softmmu/hw/openrisc/cputimer.o
  CC      ppcemb-softmmu/cpus.o
  CC      ppc64-softmmu/bootdevice.o
  CC      ppc64-softmmu/memory.o
  CC      or1k-softmmu/hw/openrisc/openrisc_sim.o
  CC      ppc-softmmu/tcg/tcg-common.o
  CC      ppc-softmmu/fpu/softfloat.o
  CC      or1k-softmmu/target/openrisc/machine.o
  CC      ppcemb-softmmu/monitor.o
  CC      or1k-softmmu/target/openrisc/cpu.o
  CC      ppc64-softmmu/cputlb.o
  CC      or1k-softmmu/target/openrisc/exception.o
  CC      or1k-softmmu/target/openrisc/interrupt.o
  CC      or1k-softmmu/target/openrisc/mmu.o
  CC      ppcemb-softmmu/gdbstub.o
  CC      or1k-softmmu/target/openrisc/translate.o
  CC      ppcemb-softmmu/balloon.o
  CC      ppc64-softmmu/memory_mapping.o
  CC      ppcemb-softmmu/ioport.o
  CC      ppc-softmmu/disas.o
  CC      ppc64-softmmu/dump.o
  CC      ppc-softmmu/tcg-runtime.o
  CC      ppcemb-softmmu/numa.o
  GEN     ppc-softmmu/gdbstub-xml.c
  CC      or1k-softmmu/target/openrisc/exception_helper.o
  CC      ppc64-softmmu/migration/ram.o
  CC      or1k-softmmu/target/openrisc/fpu_helper.o
  CC      ppcemb-softmmu/qtest.o
  CC      ppc-softmmu/hax-stub.o
  CC      or1k-softmmu/target/openrisc/interrupt_helper.o
  CC      ppcemb-softmmu/bootdevice.o
  CC      or1k-softmmu/target/openrisc/mmu_helper.o
  CC      ppc-softmmu/kvm-stub.o
  CC      ppc64-softmmu/migration/savevm.o
  CC      ppcemb-softmmu/memory.o
  CC      or1k-softmmu/target/openrisc/sys_helper.o
  CC      ppc-softmmu/libdecnumber/decContext.o
  CC      or1k-softmmu/target/openrisc/gdbstub.o
  CC      ppc-softmmu/libdecnumber/decNumber.o
  GEN     trace/generated-helpers.c
  CC      ppc64-softmmu/hw/9pfs/virtio-9p-device.o
  CC      or1k-softmmu/trace/control-target.o
  CC      ppcemb-softmmu/cputlb.o
  CC      ppc64-softmmu/hw/block/virtio-blk.o
  CC      or1k-softmmu/trace/generated-helpers.o
  CC      ppc64-softmmu/hw/block/dataplane/virtio-blk.o
  LINK    or1k-softmmu/qemu-system-or1k
  CC      ppc64-softmmu/hw/char/spapr_vty.o
  CC      ppc-softmmu/libdecnumber/dpd/decimal32.o
  CC      ppcemb-softmmu/memory_mapping.o
  CC      ppc-softmmu/libdecnumber/dpd/decimal64.o
  CC      ppc64-softmmu/hw/char/virtio-serial-bus.o
  CC      ppcemb-softmmu/dump.o
  CC      ppcemb-softmmu/migration/ram.o
  CC      ppc-softmmu/libdecnumber/dpd/decimal128.o
  CC      ppc-softmmu/arch_init.o
  CC      ppc64-softmmu/hw/core/nmi.o
  CC      ppc64-softmmu/hw/core/generic-loader.o
  CC      ppc-softmmu/cpus.o
  CC      ppcemb-softmmu/migration/savevm.o
  CC      ppcemb-softmmu/hw/9pfs/virtio-9p-device.o
  CC      ppc64-softmmu/hw/core/null-machine.o
  CC      ppc-softmmu/monitor.o
  CC      ppc64-softmmu/hw/cpu/core.o
  CC      ppc-softmmu/gdbstub.o
  CC      ppcemb-softmmu/hw/block/virtio-blk.o
  CC      ppc64-softmmu/hw/display/sm501.o
  CC      ppc-softmmu/balloon.o
  CC      ppc-softmmu/ioport.o
  CC      ppcemb-softmmu/hw/block/dataplane/virtio-blk.o
  CC      ppc-softmmu/numa.o
  CC      ppc64-softmmu/hw/display/vga.o
  CC      ppcemb-softmmu/hw/char/virtio-serial-bus.o
  CC      ppc-softmmu/qtest.o
  GEN     s390x-softmmu/hmp-commands.h
  GEN     s390x-softmmu/hmp-commands-info.h
  CC      s390x-softmmu/gen-features
  CC      ppcemb-softmmu/hw/core/nmi.o
  GEN     s390x-softmmu/config-target.h
  CC      ppcemb-softmmu/hw/core/generic-loader.o
  GEN     s390x-softmmu/gen-features.h
  CC      ppc-softmmu/bootdevice.o
  CC      s390x-softmmu/exec.o
  CC      ppcemb-softmmu/hw/core/null-machine.o
  CC      ppc-softmmu/memory.o
  CC      ppc64-softmmu/hw/display/virtio-gpu.o
  CC      ppcemb-softmmu/hw/cpu/core.o
  CC      ppcemb-softmmu/hw/display/sm501.o
  CC      ppc64-softmmu/hw/display/virtio-gpu-3d.o
  CC      ppc-softmmu/cputlb.o
  CC      ppcemb-softmmu/hw/display/vga.o
  CC      s390x-softmmu/translate-all.o
  CC      ppc64-softmmu/hw/display/virtio-gpu-pci.o
  CC      ppc-softmmu/memory_mapping.o
  CC      s390x-softmmu/cpu-exec.o
  CC      ppc64-softmmu/hw/display/virtio-vga.o
  CC      ppcemb-softmmu/hw/display/virtio-gpu.o
  CC      ppc-softmmu/dump.o
  CC      s390x-softmmu/translate-common.o
  CC      ppc64-softmmu/hw/intc/xics.o
  CC      s390x-softmmu/cpu-exec-common.o
  CC      ppcemb-softmmu/hw/display/virtio-gpu-3d.o
  CC      ppc-softmmu/migration/ram.o
  CC      s390x-softmmu/tcg/tcg.o
  CC      ppc64-softmmu/hw/intc/xics_spapr.o
  CC      ppcemb-softmmu/hw/display/virtio-gpu-pci.o
  CC      ppc64-softmmu/hw/intc/xics_pnv.o
  CC      ppc-softmmu/migration/savevm.o
  CC      ppcemb-softmmu/hw/misc/ivshmem.o
  CC      ppc64-softmmu/hw/misc/ivshmem.o
  CC      ppcemb-softmmu/hw/misc/edu.o
  CC      ppc64-softmmu/hw/misc/edu.o
  CC      s390x-softmmu/tcg/tcg-op.o
  CC      ppcemb-softmmu/hw/net/xilinx_ethlite.o
  CC      ppc-softmmu/hw/9pfs/virtio-9p-device.o
  CC      ppc64-softmmu/hw/net/spapr_llan.o
  CC      ppcemb-softmmu/hw/net/virtio-net.o
  CC      ppc-softmmu/hw/block/virtio-blk.o
  CC      ppc64-softmmu/hw/net/xilinx_ethlite.o
  CC      ppc-softmmu/hw/block/dataplane/virtio-blk.o
  CC      ppcemb-softmmu/hw/net/vhost_net.o
  CC      ppc64-softmmu/hw/net/virtio-net.o
  CC      ppc-softmmu/hw/char/virtio-serial-bus.o
  CC      ppcemb-softmmu/hw/scsi/virtio-scsi.o
  CC      ppc64-softmmu/hw/net/vhost_net.o
  CC      ppcemb-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      ppc-softmmu/hw/core/nmi.o
  CC      s390x-softmmu/tcg/optimize.o
  CC      ppc64-softmmu/hw/net/fsl_etsec/etsec.o
  CC      ppcemb-softmmu/hw/scsi/vhost-scsi.o
  CC      ppc-softmmu/hw/core/generic-loader.o
  CC      ppc64-softmmu/hw/net/fsl_etsec/registers.o
  CC      ppc64-softmmu/hw/net/fsl_etsec/rings.o
  CC      ppc-softmmu/hw/core/null-machine.o
  CC      ppcemb-softmmu/hw/vfio/common.o
  CC      s390x-softmmu/tcg/tcg-common.o
  CC      ppc-softmmu/hw/cpu/core.o
  CC      ppc64-softmmu/hw/net/fsl_etsec/miim.o
  CC      ppc-softmmu/hw/display/sm501.o
  CC      s390x-softmmu/fpu/softfloat.o
  CC      ppc64-softmmu/hw/nvram/spapr_nvram.o
  CC      ppcemb-softmmu/hw/vfio/pci.o
  CC      ppc64-softmmu/hw/scsi/spapr_vscsi.o
  CC      ppc-softmmu/hw/display/vga.o
  CC      ppc64-softmmu/hw/scsi/virtio-scsi.o
  CC      ppcemb-softmmu/hw/vfio/pci-quirks.o
  CC      ppc64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      ppc-softmmu/hw/display/virtio-gpu.o
  CC      ppcemb-softmmu/hw/vfio/platform.o
  CC      ppc64-softmmu/hw/scsi/vhost-scsi.o
  CC      ppc64-softmmu/hw/timer/mc146818rtc.o
  CC      ppcemb-softmmu/hw/vfio/spapr.o
  CC      s390x-softmmu/disas.o
  CC      ppcemb-softmmu/hw/virtio/virtio.o
  CC      ppc-softmmu/hw/display/virtio-gpu-3d.o
  CC      s390x-softmmu/tcg-runtime.o
  CC      ppc64-softmmu/hw/vfio/common.o
  GEN     s390x-softmmu/gdbstub-xml.c
  CC      ppc-softmmu/hw/display/virtio-gpu-pci.o
  CC      ppc64-softmmu/hw/vfio/pci.o
  CC      ppcemb-softmmu/hw/virtio/virtio-balloon.o
  CC      s390x-softmmu/hax-stub.o
  CC      ppc-softmmu/hw/misc/ivshmem.o
  CC      ppcemb-softmmu/hw/virtio/vhost.o
  CC      s390x-softmmu/arch_init.o
  CC      ppc-softmmu/hw/misc/edu.o
  CC      s390x-softmmu/cpus.o
  CC      ppc64-softmmu/hw/vfio/pci-quirks.o
  CC      ppcemb-softmmu/hw/virtio/vhost-backend.o
  CC      ppc-softmmu/hw/net/xilinx_ethlite.o
  CC      s390x-softmmu/monitor.o
  CC      ppc-softmmu/hw/net/virtio-net.o
  CC      ppcemb-softmmu/hw/virtio/vhost-user.o
  CC      ppc64-softmmu/hw/vfio/platform.o
  CC      ppc64-softmmu/hw/vfio/spapr.o
  CC      ppcemb-softmmu/hw/virtio/vhost-vsock.o
  CC      ppc-softmmu/hw/net/vhost_net.o
  CC      ppc64-softmmu/hw/virtio/virtio.o
  CC      ppc-softmmu/hw/net/fsl_etsec/etsec.o
  CC      ppcemb-softmmu/hw/virtio/virtio-crypto.o
  CC      ppc-softmmu/hw/net/fsl_etsec/registers.o
  CC      s390x-softmmu/gdbstub.o
  CC      ppc-softmmu/hw/net/fsl_etsec/rings.o
  CC      ppcemb-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      ppc64-softmmu/hw/virtio/virtio-balloon.o
  CC      s390x-softmmu/balloon.o
  CC      ppc-softmmu/hw/net/fsl_etsec/miim.o
  CC      ppcemb-softmmu/hw/ppc/ppc.o
  CC      s390x-softmmu/ioport.o
  CC      ppc-softmmu/hw/scsi/virtio-scsi.o
  CC      ppc64-softmmu/hw/virtio/vhost.o
  CC      s390x-softmmu/numa.o
  CC      ppcemb-softmmu/hw/ppc/ppc_booke.o
  CC      ppc-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      ppcemb-softmmu/hw/ppc/fdt.o
  CC      s390x-softmmu/qtest.o
  CC      ppc64-softmmu/hw/virtio/vhost-backend.o
  CC      ppc-softmmu/hw/scsi/vhost-scsi.o
  CC      ppcemb-softmmu/hw/ppc/ppc405_boards.o
  CC      ppc64-softmmu/hw/virtio/vhost-user.o
  CC      s390x-softmmu/bootdevice.o
  CC      ppcemb-softmmu/hw/ppc/ppc4xx_devs.o
  CC      ppc-softmmu/hw/timer/mc146818rtc.o
  CC      ppc64-softmmu/hw/virtio/vhost-vsock.o
  CC      s390x-softmmu/kvm-all.o
  CC      ppc64-softmmu/hw/virtio/virtio-crypto.o
  CC      ppc-softmmu/hw/vfio/common.o
  CC      ppcemb-softmmu/hw/ppc/ppc405_uc.o
  CC      ppc64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      ppc-softmmu/hw/vfio/pci.o
  CC      s390x-softmmu/memory.o
  CC      ppcemb-softmmu/hw/ppc/ppc440_bamboo.o
  CC      ppc64-softmmu/hw/ppc/ppc.o
  CC      ppcemb-softmmu/hw/ppc/ppc4xx_pci.o
  CC      ppcemb-softmmu/hw/ppc/virtex_ml507.o
  CC      ppc-softmmu/hw/vfio/pci-quirks.o
  CC      ppc64-softmmu/hw/ppc/ppc_booke.o
  CC      s390x-softmmu/cputlb.o
  CC      ppcemb-softmmu/target/ppc/cpu-models.o
  CC      ppc64-softmmu/hw/ppc/fdt.o
  CC      ppc-softmmu/hw/vfio/platform.o
  CC      ppc64-softmmu/hw/ppc/spapr.o
  CC      ppc-softmmu/hw/vfio/spapr.o
  CC      ppcemb-softmmu/target/ppc/cpu.o
  CC      s390x-softmmu/memory_mapping.o
  CC      s390x-softmmu/dump.o
  CC      ppcemb-softmmu/target/ppc/translate.o
  CC      ppc-softmmu/hw/virtio/virtio.o
  CC      ppc64-softmmu/hw/ppc/spapr_vio.o
  CC      s390x-softmmu/migration/ram.o
  CC      ppc64-softmmu/hw/ppc/spapr_events.o
  CC      ppc-softmmu/hw/virtio/virtio-balloon.o
  CC      ppc64-softmmu/hw/ppc/spapr_hcall.o
  CC      s390x-softmmu/migration/savevm.o
  CC      ppc-softmmu/hw/virtio/vhost.o
  CC      ppc64-softmmu/hw/ppc/spapr_iommu.o
  CC      s390x-softmmu/hw/9pfs/virtio-9p-device.o
  CC      ppc-softmmu/hw/virtio/vhost-backend.o
  CC      ppc64-softmmu/hw/ppc/spapr_rtas.o
  CC      s390x-softmmu/hw/block/virtio-blk.o
  CC      ppc64-softmmu/hw/ppc/spapr_pci.o
  CC      ppc-softmmu/hw/virtio/vhost-user.o
  CC      s390x-softmmu/hw/block/dataplane/virtio-blk.o
  CC      ppc-softmmu/hw/virtio/vhost-vsock.o
  CC      s390x-softmmu/hw/char/virtio-serial-bus.o
  CC      ppc64-softmmu/hw/ppc/spapr_rtc.o
  CC      ppc-softmmu/hw/virtio/virtio-crypto.o
  CC      ppc64-softmmu/hw/ppc/spapr_drc.o
  CC      s390x-softmmu/hw/char/terminal3270.o
  CC      ppc-softmmu/hw/virtio/virtio-crypto-pci.o
/var/tmp/patchew-tester-tmp-ppys535z/src/hw/char/terminal3270.c:16:25: fatal error: sysemu/char.h: No such file or directory
 #include "sysemu/char.h"
                         ^
compilation terminated.
/var/tmp/patchew-tester-tmp-ppys535z/src/rules.mak:69: recipe for target 'hw/char/terminal3270.o' failed
make[1]: *** [hw/char/terminal3270.o] Error 1
Makefile:327: recipe for target 'subdir-s390x-softmmu' failed
make: *** [subdir-s390x-softmmu] Error 2
make: *** Waiting for unfinished jobs....
  CC      ppcemb-softmmu/target/ppc/machine.o
  CC      ppc64-softmmu/hw/ppc/spapr_rng.o
  CC      ppc-softmmu/hw/ppc/ppc.o
  CC      ppcemb-softmmu/target/ppc/mmu_helper.o
  CC      ppc64-softmmu/hw/ppc/spapr_cpu_core.o
  CC      ppc-softmmu/hw/ppc/ppc_booke.o
  CC      ppc64-softmmu/hw/ppc/spapr_ovec.o
  CC      ppc64-softmmu/hw/ppc/pnv.o
  CC      ppc-softmmu/hw/ppc/fdt.o
  CC      ppc64-softmmu/hw/ppc/pnv_xscom.o
  CC      ppc-softmmu/hw/ppc/ppc405_boards.o
  CC      ppcemb-softmmu/target/ppc/mmu-hash32.o
  CC      ppc-softmmu/hw/ppc/ppc4xx_devs.o
  CC      ppc64-softmmu/hw/ppc/pnv_core.o
  CC      ppc64-softmmu/hw/ppc/pnv_lpc.o
  CC      ppc64-softmmu/hw/ppc/pnv_psi.o
  CC      ppc-softmmu/hw/ppc/ppc405_uc.o
  CC      ppc64-softmmu/hw/ppc/pnv_occ.o
  CC      ppc64-softmmu/hw/ppc/pnv_bmc.o
  CC      ppc64-softmmu/hw/ppc/spapr_pci_vfio.o
  CC      ppc-softmmu/hw/ppc/ppc440_bamboo.o
  CC      ppc64-softmmu/hw/ppc/spapr_rtas_ddw.o
  CC      ppc64-softmmu/hw/ppc/ppc405_boards.o
  CC      ppc-softmmu/hw/ppc/ppc4xx_pci.o
  CC      ppc64-softmmu/hw/ppc/ppc4xx_devs.o
  CC      ppc64-softmmu/hw/ppc/ppc405_uc.o
  CC      ppc-softmmu/hw/ppc/prep.o
  CC      ppcemb-softmmu/target/ppc/monitor.o
  CC      ppc-softmmu/hw/ppc/prep_systemio.o
  CC      ppc64-softmmu/hw/ppc/ppc440_bamboo.o
  CC      ppc64-softmmu/hw/ppc/ppc4xx_pci.o
  CC      ppc-softmmu/hw/ppc/rs6000_mc.o
  CC      ppc64-softmmu/hw/ppc/prep.o
  CC      ppc-softmmu/hw/ppc/mac_oldworld.o
  CC      ppc64-softmmu/hw/ppc/prep_systemio.o
  CC      ppc-softmmu/hw/ppc/mac_newworld.o
  CC      ppc64-softmmu/hw/ppc/rs6000_mc.o
  CC      ppc64-softmmu/hw/ppc/mac_oldworld.o
  CC      ppc-softmmu/hw/ppc/e500.o
  CC      ppc-softmmu/hw/ppc/mpc8544ds.o
  CC      ppc64-softmmu/hw/ppc/mac_newworld.o
  CC      ppc-softmmu/hw/ppc/e500plat.o
  CC      ppc-softmmu/hw/ppc/mpc8544_guts.o
  CC      ppcemb-softmmu/target/ppc/arch_dump.o
  CC      ppc64-softmmu/hw/ppc/e500.o
  CC      ppc-softmmu/hw/ppc/ppce500_spin.o
  CC      ppcemb-softmmu/target/ppc/kvm-stub.o
  CC      ppc-softmmu/hw/ppc/virtex_ml507.o
  CC      ppcemb-softmmu/target/ppc/dfp_helper.o
  CC      ppc64-softmmu/hw/ppc/mpc8544ds.o
  CC      ppc-softmmu/target/ppc/cpu-models.o
  CC      ppc64-softmmu/hw/ppc/e500plat.o
  CC      ppcemb-softmmu/target/ppc/excp_helper.o
  CC      ppc64-softmmu/hw/ppc/mpc8544_guts.o
  CC      ppc-softmmu/target/ppc/cpu.o
  CC      ppc64-softmmu/hw/ppc/ppce500_spin.o
  CC      ppcemb-softmmu/target/ppc/fpu_helper.o
  CC      ppc64-softmmu/hw/ppc/virtex_ml507.o
  CC      ppc64-softmmu/target/ppc/cpu-models.o
  CC      ppc64-softmmu/target/ppc/cpu.o
  CC      ppc-softmmu/target/ppc/translate.o
  CC      ppc64-softmmu/target/ppc/translate.o
  CC      ppc-softmmu/target/ppc/machine.o
  CC      ppc64-softmmu/target/ppc/machine.o
  CC      ppc-softmmu/target/ppc/mmu_helper.o
  CC      ppcemb-softmmu/target/ppc/int_helper.o
  CC      ppc64-softmmu/target/ppc/mmu_helper.o
  CC      ppc-softmmu/target/ppc/mmu-hash32.o
  CC      ppc-softmmu/target/ppc/monitor.o
  CC      ppc64-softmmu/target/ppc/mmu-hash32.o
  CC      ppcemb-softmmu/target/ppc/timebase_helper.o
  CC      ppc-softmmu/target/ppc/arch_dump.o
  CC      ppcemb-softmmu/target/ppc/misc_helper.o
  CC      ppcemb-softmmu/target/ppc/mem_helper.o
  CC      ppc-softmmu/target/ppc/kvm-stub.o
  CC      ppcemb-softmmu/target/ppc/gdbstub.o
  CC      ppc-softmmu/target/ppc/dfp_helper.o
  GEN     trace/generated-helpers.c
  CC      ppcemb-softmmu/trace/control-target.o
  CC      ppc64-softmmu/target/ppc/monitor.o
  CC      ppcemb-softmmu/gdbstub-xml.o
  CC      ppc64-softmmu/target/ppc/arch_dump.o
  CC      ppcemb-softmmu/trace/generated-helpers.o
  CC      ppc-softmmu/target/ppc/excp_helper.o
  LINK    ppcemb-softmmu/qemu-system-ppcemb
  CC      ppc64-softmmu/target/ppc/mmu-hash64.o
  CC      ppc64-softmmu/target/ppc/mmu-book3s-v3.o
  CC      ppc64-softmmu/target/ppc/compat.o
  CC      ppc64-softmmu/target/ppc/kvm-stub.o
  CC      ppc-softmmu/target/ppc/fpu_helper.o
  CC      ppc64-softmmu/target/ppc/dfp_helper.o
  CC      ppc-softmmu/target/ppc/int_helper.o
  CC      ppc64-softmmu/target/ppc/excp_helper.o
  CC      ppc64-softmmu/target/ppc/fpu_helper.o
  CC      ppc-softmmu/target/ppc/timebase_helper.o
  CC      ppc-softmmu/target/ppc/misc_helper.o
  CC      ppc-softmmu/target/ppc/mem_helper.o
  CC      ppc64-softmmu/target/ppc/int_helper.o
  CC      ppc-softmmu/target/ppc/gdbstub.o
  CC      ppc-softmmu/trace/control-target.o
  GEN     trace/generated-helpers.c
  CC      ppc-softmmu/gdbstub-xml.o
  CC      ppc64-softmmu/target/ppc/timebase_helper.o
  CC      ppc-softmmu/trace/generated-helpers.o
  CC      ppc64-softmmu/target/ppc/misc_helper.o
  CC      ppc64-softmmu/target/ppc/mem_helper.o
  LINK    ppc-softmmu/qemu-system-ppc
  CC      ppc64-softmmu/target/ppc/gdbstub.o
  GEN     trace/generated-helpers.c
  CC      ppc64-softmmu/trace/control-target.o
  CC      ppc64-softmmu/gdbstub-xml.o
  CC      ppc64-softmmu/trace/generated-helpers.o
  LINK    ppc64-softmmu/qemu-system-ppc64
=== OUTPUT END ===

Test command exited with code: 2


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org

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

* Re: [Qemu-devel] [PATCH 11/13] Remove/replace chardev/char.h inclusion
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 11/13] Remove/replace chardev/char.h inclusion Marc-André Lureau
@ 2017-05-09 12:45   ` Philippe Mathieu-Daudé
  2017-05-26 13:35     ` Marc-André Lureau
  0 siblings, 1 reply; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:45 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

Hi Marc-André Lureau,

Isn't clearer if the "remove" part of this commit goes before your patch 
6 "move headers to include/chardev"?

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> Those are apparently unnecessary includes.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  hw/arm/bcm2835_peripherals.c | 1 -
>  hw/char/imx_serial.c         | 1 -
>  hw/display/xenfb.c           | 1 -
>  hw/i386/xen/xen-hvm.c        | 1 -
>  hw/mips/mips_fulong2e.c      | 1 -
>  hw/mips/mips_malta.c         | 1 -
>  hw/net/xgmac.c               | 1 -
>  hw/ppc/spapr_events.c        | 1 -
>  hw/ppc/spapr_rtas.c          | 1 -
>  hw/sparc/leon3.c             | 1 -
>  hw/usb/ccid-card-emulated.c  | 2 +-
>  hw/xen/xen_backend.c         | 1 -
>  util/event_notifier-posix.c  | 1 -
>  13 files changed, 1 insertion(+), 13 deletions(-)
>
> diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c
> index 091e14dc60..502f04c02a 100644
> --- a/hw/arm/bcm2835_peripherals.c
> +++ b/hw/arm/bcm2835_peripherals.c
> @@ -13,7 +13,6 @@
>  #include "hw/arm/bcm2835_peripherals.h"
>  #include "hw/misc/bcm2835_mbox_defs.h"
>  #include "hw/arm/raspi_platform.h"
> -#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>
>  /* Peripheral base address on the VC (GPU) system bus */
> diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
> index 1d4f378a59..af250305be 100644
> --- a/hw/char/imx_serial.c
> +++ b/hw/char/imx_serial.c
> @@ -21,7 +21,6 @@
>  #include "qemu/osdep.h"
>  #include "hw/char/imx_serial.h"
>  #include "sysemu/sysemu.h"
> -#include "chardev/char.h"
>  #include "qemu/log.h"
>
>  #ifndef DEBUG_IMX_UART
> diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
> index 4a1a2a4d6e..e76c0d805c 100644
> --- a/hw/display/xenfb.c
> +++ b/hw/display/xenfb.c
> @@ -28,7 +28,6 @@
>
>  #include "hw/hw.h"
>  #include "ui/console.h"
> -#include "chardev/char.h"
>  #include "hw/xen/xen_backend.h"
>
>  #include <xen/event_channel.h>
> diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
> index 8dc57a31cf..321cf36b67 100644
> --- a/hw/i386/xen/xen-hvm.c
> +++ b/hw/i386/xen/xen-hvm.c
> @@ -18,7 +18,6 @@
>  #include "hw/xen/xen_backend.h"
>  #include "qmp-commands.h"
>
> -#include "chardev/char.h"
>  #include "qemu/error-report.h"
>  #include "qemu/range.h"
>  #include "sysemu/xen-mapcache.h"
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index 55eeb9227d..dbe2805acb 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -32,7 +32,6 @@
>  #include "hw/mips/mips.h"
>  #include "hw/mips/cpudevs.h"
>  #include "hw/pci/pci.h"
> -#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "audio/audio.h"
>  #include "qemu/log.h"
> diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> index 610e1e9085..6fcdd9c6c1 100644
> --- a/hw/mips/mips_malta.c
> +++ b/hw/mips/mips_malta.c
> @@ -37,7 +37,6 @@
>  #include "hw/mips/mips.h"
>  #include "hw/mips/cpudevs.h"
>  #include "hw/pci/pci.h"
> -#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "sysemu/arch_init.h"
>  #include "qemu/log.h"
> diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
> index 3d00e2868c..0843bf185c 100644
> --- a/hw/net/xgmac.c
> +++ b/hw/net/xgmac.c
> @@ -26,7 +26,6 @@
>
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "chardev/char.h"
>  #include "qemu/log.h"
>  #include "net/net.h"
>  #include "net/checksum.h"
> diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
> index b309f2f4b0..8a5f1d321a 100644
> --- a/hw/ppc/spapr_events.c
> +++ b/hw/ppc/spapr_events.c
> @@ -28,7 +28,6 @@
>  #include "qapi/error.h"
>  #include "cpu.h"
>  #include "sysemu/sysemu.h"
> -#include "chardev/char.h"
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>
> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> index 9995b1a9f5..dd1633a104 100644
> --- a/hw/ppc/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -29,7 +29,6 @@
>  #include "qemu/log.h"
>  #include "qemu/error-report.h"
>  #include "sysemu/sysemu.h"
> -#include "chardev/char.h"
>  #include "hw/qdev.h"
>  #include "sysemu/device_tree.h"
>  #include "sysemu/cpus.h"
> diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
> index f3e62f5bd7..f415997649 100644
> --- a/hw/sparc/leon3.c
> +++ b/hw/sparc/leon3.c
> @@ -28,7 +28,6 @@
>  #include "hw/hw.h"
>  #include "qemu/timer.h"
>  #include "hw/ptimer.h"
> -#include "chardev/char.h"
>  #include "sysemu/sysemu.h"
>  #include "sysemu/qtest.h"
>  #include "hw/boards.h"
> diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
> index 690b6c3ab4..e646eb243b 100644
> --- a/hw/usb/ccid-card-emulated.c
> +++ b/hw/usb/ccid-card-emulated.c
> @@ -33,7 +33,7 @@
>  #include <vcard_emul.h>
>
>  #include "qemu/thread.h"
> -#include "chardev/char.h"
> +#include "qemu/main-loop.h"
>  #include "ccid.h"
>
>  #define DPRINTF(card, lvl, fmt, ...) \
> diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c
> index a252a7fd96..b6e1b8cf59 100644
> --- a/hw/xen/xen_backend.c
> +++ b/hw/xen/xen_backend.c
> @@ -28,7 +28,6 @@
>  #include "hw/hw.h"
>  #include "hw/sysbus.h"
>  #include "hw/boards.h"
> -#include "chardev/char.h"
>  #include "qemu/log.h"
>  #include "qapi/error.h"
>  #include "hw/xen/xen_backend.h"
> diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
> index 8ab06f9b41..73c4046b58 100644
> --- a/util/event_notifier-posix.c
> +++ b/util/event_notifier-posix.c
> @@ -14,7 +14,6 @@
>  #include "qemu-common.h"
>  #include "qemu/cutils.h"
>  #include "qemu/event_notifier.h"
> -#include "chardev/char.h"
>  #include "qemu/main-loop.h"
>
>  #ifdef CONFIG_EVENTFD
>

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

* Re: [Qemu-devel] [PATCH 02/13] char-win: remove WinChardev.len
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 02/13] char-win: remove WinChardev.len Marc-André Lureau
@ 2017-05-09 12:47   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:47 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> The "len" argument can be passed directly to win_chr_read()
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  chardev/char-win.h |  1 -
>  chardev/char-win.c | 16 +++++++---------
>  2 files changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/chardev/char-win.h b/chardev/char-win.h
> index 73a0e3caef..70215e04c2 100644
> --- a/chardev/char-win.h
> +++ b/chardev/char-win.h
> @@ -32,7 +32,6 @@ typedef struct {
>      HANDLE hcom, hrecv, hsend;
>      OVERLAPPED orecv;
>      BOOL fpipe;
> -    DWORD len;
>
>      /* Protected by the Chardev chr_write_lock.  */
>      OVERLAPPED osend;
> diff --git a/chardev/char-win.c b/chardev/char-win.c
> index a46d878ef8..5e7daeeae1 100644
> --- a/chardev/char-win.c
> +++ b/chardev/char-win.c
> @@ -26,7 +26,7 @@
>  #include "qapi/error.h"
>  #include "char-win.h"
>
> -static void win_chr_read(Chardev *chr)
> +static void win_chr_read(Chardev *chr, DWORD len)
>  {
>      WinChardev *s = WIN_CHARDEV(chr);
>      int max_size = qemu_chr_be_can_write(chr);
> @@ -34,16 +34,16 @@ static void win_chr_read(Chardev *chr)
>      uint8_t buf[CHR_READ_BUF_LEN];
>      DWORD size;
>
> -    if (s->len > max_size) {
> -        s->len = max_size;
> +    if (len > max_size) {
> +        len = max_size;
>      }
> -    if (s->len == 0) {
> +    if (len == 0) {
>          return;
>      }
>
>      ZeroMemory(&s->orecv, sizeof(s->orecv));
>      s->orecv.hEvent = s->hrecv;
> -    ret = ReadFile(s->hcom, buf, s->len, &size, &s->orecv);
> +    ret = ReadFile(s->hcom, buf, len, &size, &s->orecv);
>      if (!ret) {
>          err = GetLastError();
>          if (err == ERROR_IO_PENDING) {
> @@ -65,8 +65,7 @@ static int win_chr_poll(void *opaque)
>
>      ClearCommError(s->hcom, &comerr, &status);
>      if (status.cbInQue > 0) {
> -        s->len = status.cbInQue;
> -        win_chr_read(chr);
> +        win_chr_read(chr, status.cbInQue);
>          return 1;
>      }
>      return 0;
> @@ -146,8 +145,7 @@ int win_chr_pipe_poll(void *opaque)
>
>      PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL);
>      if (size > 0) {
> -        s->len = size;
> -        win_chr_read(chr);
> +        win_chr_read(chr, size);
>          return 1;
>      }
>      return 0;
>

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

* Re: [Qemu-devel] [PATCH 04/13] char-win: rename hcom->file
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 04/13] char-win: rename hcom->file Marc-André Lureau
@ 2017-05-09 12:48   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:48 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> hcom is the name of the file handle, regardless of the actual chardev
> driver (serial, file, console etc..). Rename it to be more explicit.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  chardev/char-win.h  |  2 +-
>  chardev/char-pipe.c | 10 +++++-----
>  chardev/char-win.c  | 36 ++++++++++++++++++------------------
>  3 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/chardev/char-win.h b/chardev/char-win.h
> index e0b3839a77..888be2b3ca 100644
> --- a/chardev/char-win.h
> +++ b/chardev/char-win.h
> @@ -29,7 +29,7 @@
>  typedef struct {
>      Chardev parent;
>
> -    HANDLE hcom, hrecv, hsend;
> +    HANDLE file, hrecv, hsend;
>      OVERLAPPED orecv;
>      BOOL fpipe;
>
> diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
> index 54240c863d..aae950a22b 100644
> --- a/chardev/char-pipe.c
> +++ b/chardev/char-pipe.c
> @@ -58,27 +58,27 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
>      }
>
>      openname = g_strdup_printf("\\\\.\\pipe\\%s", filename);
> -    s->hcom = CreateNamedPipe(openname,
> +    s->file = CreateNamedPipe(openname,
>                                PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
>                                PIPE_TYPE_BYTE | PIPE_READMODE_BYTE |
>                                PIPE_WAIT,
>                                MAXCONNECT, NSENDBUF, NRECVBUF, NTIMEOUT, NULL);
>      g_free(openname);
> -    if (s->hcom == INVALID_HANDLE_VALUE) {
> +    if (s->file == INVALID_HANDLE_VALUE) {
>          error_setg(errp, "Failed CreateNamedPipe (%lu)", GetLastError());
> -        s->hcom = NULL;
> +        s->file = NULL;
>          goto fail;
>      }
>
>      ZeroMemory(&ov, sizeof(ov));
>      ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
> -    ret = ConnectNamedPipe(s->hcom, &ov);
> +    ret = ConnectNamedPipe(s->file, &ov);
>      if (ret) {
>          error_setg(errp, "Failed ConnectNamedPipe");
>          goto fail;
>      }
>
> -    ret = GetOverlappedResult(s->hcom, &ov, &size, TRUE);
> +    ret = GetOverlappedResult(s->file, &ov, &size, TRUE);
>      if (!ret) {
>          error_setg(errp, "Failed GetOverlappedResult");
>          if (ov.hEvent) {
> diff --git a/chardev/char-win.c b/chardev/char-win.c
> index 11abad1521..a7e3296909 100644
> --- a/chardev/char-win.c
> +++ b/chardev/char-win.c
> @@ -43,11 +43,11 @@ static void win_chr_read(Chardev *chr, DWORD len)
>
>      ZeroMemory(&s->orecv, sizeof(s->orecv));
>      s->orecv.hEvent = s->hrecv;
> -    ret = ReadFile(s->hcom, buf, len, &size, &s->orecv);
> +    ret = ReadFile(s->file, buf, len, &size, &s->orecv);
>      if (!ret) {
>          err = GetLastError();
>          if (err == ERROR_IO_PENDING) {
> -            ret = GetOverlappedResult(s->hcom, &s->orecv, &size, TRUE);
> +            ret = GetOverlappedResult(s->file, &s->orecv, &size, TRUE);
>          }
>      }
>
> @@ -63,7 +63,7 @@ static int win_chr_serial_poll(void *opaque)
>      COMSTAT status;
>      DWORD comerr;
>
> -    ClearCommError(s->hcom, &comerr, &status);
> +    ClearCommError(s->file, &comerr, &status);
>      if (status.cbInQue > 0) {
>          win_chr_read(chr, status.cbInQue);
>          return 1;
> @@ -91,15 +91,15 @@ int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp)
>          goto fail;
>      }
>
> -    s->hcom = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
> +    s->file = CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
>                        OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
> -    if (s->hcom == INVALID_HANDLE_VALUE) {
> +    if (s->file == INVALID_HANDLE_VALUE) {
>          error_setg(errp, "Failed CreateFile (%lu)", GetLastError());
> -        s->hcom = NULL;
> +        s->file = NULL;
>          goto fail;
>      }
>
> -    if (!SetupComm(s->hcom, NRECVBUF, NSENDBUF)) {
> +    if (!SetupComm(s->file, NRECVBUF, NSENDBUF)) {
>          error_setg(errp, "Failed SetupComm");
>          goto fail;
>      }
> @@ -110,23 +110,23 @@ int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp)
>      comcfg.dcb.DCBlength = sizeof(DCB);
>      CommConfigDialog(filename, NULL, &comcfg);
>
> -    if (!SetCommState(s->hcom, &comcfg.dcb)) {
> +    if (!SetCommState(s->file, &comcfg.dcb)) {
>          error_setg(errp, "Failed SetCommState");
>          goto fail;
>      }
>
> -    if (!SetCommMask(s->hcom, EV_ERR)) {
> +    if (!SetCommMask(s->file, EV_ERR)) {
>          error_setg(errp, "Failed SetCommMask");
>          goto fail;
>      }
>
>      cto.ReadIntervalTimeout = MAXDWORD;
> -    if (!SetCommTimeouts(s->hcom, &cto)) {
> +    if (!SetCommTimeouts(s->file, &cto)) {
>          error_setg(errp, "Failed SetCommTimeouts");
>          goto fail;
>      }
>
> -    if (!ClearCommError(s->hcom, &err, &comstat)) {
> +    if (!ClearCommError(s->file, &err, &comstat)) {
>          error_setg(errp, "Failed ClearCommError");
>          goto fail;
>      }
> @@ -143,7 +143,7 @@ int win_chr_pipe_poll(void *opaque)
>      WinChardev *s = WIN_CHARDEV(opaque);
>      DWORD size;
>
> -    PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL);
> +    PeekNamedPipe(s->file, NULL, 0, NULL, &size, NULL);
>      if (size > 0) {
>          win_chr_read(chr, size);
>          return 1;
> @@ -162,14 +162,14 @@ static int win_chr_write(Chardev *chr, const uint8_t *buf, int len1)
>      s->osend.hEvent = s->hsend;
>      while (len > 0) {
>          if (s->hsend) {
> -            ret = WriteFile(s->hcom, buf, len, &size, &s->osend);
> +            ret = WriteFile(s->file, buf, len, &size, &s->osend);
>          } else {
> -            ret = WriteFile(s->hcom, buf, len, &size, NULL);
> +            ret = WriteFile(s->file, buf, len, &size, NULL);
>          }
>          if (!ret) {
>              err = GetLastError();
>              if (err == ERROR_IO_PENDING) {
> -                ret = GetOverlappedResult(s->hcom, &s->osend, &size, TRUE);
> +                ret = GetOverlappedResult(s->file, &s->osend, &size, TRUE);
>                  if (ret) {
>                      buf += size;
>                      len -= size;
> @@ -202,8 +202,8 @@ static void char_win_finalize(Object *obj)
>      if (s->hrecv) {
>          CloseHandle(s->hrecv);
>      }
> -    if (s->hcom) {
> -        CloseHandle(s->hcom);
> +    if (s->file) {
> +        CloseHandle(s->file);
>      }
>      if (s->fpipe) {
>          qemu_del_polling_cb(win_chr_pipe_poll, chr);
> @@ -219,7 +219,7 @@ void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out)
>      WinChardev *s = WIN_CHARDEV(chr);
>
>      s->skip_free = true;
> -    s->hcom = fd_out;
> +    s->file = fd_out;
>  }
>
>  static void char_win_class_init(ObjectClass *oc, void *data)
>

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

* Re: [Qemu-devel] [PATCH 12/13] char: rename functions that are not part of fe
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 12/13] char: rename functions that are not part of fe Marc-André Lureau
@ 2017-05-09 12:51   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:51 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> There is no clear reason to have those functions associated with
> frontend.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  chardev/char.c | 15 +++++++--------
>  1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/chardev/char.c b/chardev/char.c
> index b986ce1857..77e7b347f4 100644
> --- a/chardev/char.c
> +++ b/chardev/char.c
> @@ -66,8 +66,7 @@ void qemu_chr_be_event(Chardev *s, int event)
>
>  /* Not reporting errors from writing to logfile, as logs are
>   * defined to be "best effort" only */
> -static void qemu_chr_fe_write_log(Chardev *s,
> -                                  const uint8_t *buf, size_t len)
> +static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
>  {
>      size_t done = 0;
>      ssize_t ret;
> @@ -91,9 +90,9 @@ static void qemu_chr_fe_write_log(Chardev *s,
>      }
>  }
>
> -static int qemu_chr_fe_write_buffer(Chardev *s,
> -                                    const uint8_t *buf, int len,
> -                                    int *offset, bool all)
> +static int qemu_chr_write_buffer(Chardev *s,
> +                                 const uint8_t *buf, int len,
> +                                 int *offset, bool all)
>  {
>      ChardevClass *cc = CHARDEV_GET_CLASS(s);
>      int res = 0;
> @@ -118,7 +117,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
>          }
>      }
>      if (*offset > 0) {
> -        qemu_chr_fe_write_log(s, buf, *offset);
> +        qemu_chr_write_log(s, buf, *offset);
>      }
>      qemu_mutex_unlock(&s->chr_write_lock);
>
> @@ -133,11 +132,11 @@ int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all)
>      if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
>          replay_char_write_event_load(&res, &offset);
>          assert(offset <= len);
> -        qemu_chr_fe_write_buffer(s, buf, offset, &offset, true);
> +        qemu_chr_write_buffer(s, buf, offset, &offset, true);
>          return res;
>      }
>
> -    res = qemu_chr_fe_write_buffer(s, buf, len, &offset, all);
> +    res = qemu_chr_write_buffer(s, buf, len, &offset, all);
>
>      if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
>          replay_char_write_event_save(res, offset);
>

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

* Re: [Qemu-devel] [PATCH 03/13] char-win: rename win_chr_init/poll win_chr_serial_init/poll
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 03/13] char-win: rename win_chr_init/poll win_chr_serial_init/poll Marc-André Lureau
@ 2017-05-09 12:53   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:53 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> Those 2 functions are specific to serial chardev, make it more clear.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  chardev/char-win.h    | 2 +-
>  chardev/char-serial.c | 2 +-
>  chardev/char-win.c    | 8 ++++----
>  3 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/chardev/char-win.h b/chardev/char-win.h
> index 70215e04c2..e0b3839a77 100644
> --- a/chardev/char-win.h
> +++ b/chardev/char-win.h
> @@ -46,7 +46,7 @@ typedef struct {
>  #define WIN_CHARDEV(obj) OBJECT_CHECK(WinChardev, (obj), TYPE_CHARDEV_WIN)
>
>  void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out);
> -int win_chr_init(Chardev *chr, const char *filename, Error **errp);
> +int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp);
>  int win_chr_pipe_poll(void *opaque);
>
>  #endif /* CHAR_WIN_H */
> diff --git a/chardev/char-serial.c b/chardev/char-serial.c
> index 094e08dca5..fef3a91c77 100644
> --- a/chardev/char-serial.c
> +++ b/chardev/char-serial.c
> @@ -45,7 +45,7 @@ static void qmp_chardev_open_serial(Chardev *chr,
>  {
>      ChardevHostdev *serial = backend->u.serial.data;
>
> -    win_chr_init(chr, serial->device, errp);
> +    win_chr_serial_init(chr, serial->device, errp);
>  }
>
>  #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
> diff --git a/chardev/char-win.c b/chardev/char-win.c
> index 5e7daeeae1..11abad1521 100644
> --- a/chardev/char-win.c
> +++ b/chardev/char-win.c
> @@ -56,7 +56,7 @@ static void win_chr_read(Chardev *chr, DWORD len)
>      }
>  }
>
> -static int win_chr_poll(void *opaque)
> +static int win_chr_serial_poll(void *opaque)

Nice :)

>  {
>      Chardev *chr = CHARDEV(opaque);
>      WinChardev *s = WIN_CHARDEV(opaque);
> @@ -71,7 +71,7 @@ static int win_chr_poll(void *opaque)
>      return 0;
>  }
>
> -int win_chr_init(Chardev *chr, const char *filename, Error **errp)
> +int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp)
>  {
>      WinChardev *s = WIN_CHARDEV(chr);
>      COMMCONFIG comcfg;
> @@ -130,7 +130,7 @@ int win_chr_init(Chardev *chr, const char *filename, Error **errp)
>          error_setg(errp, "Failed ClearCommError");
>          goto fail;
>      }
> -    qemu_add_polling_cb(win_chr_poll, chr);
> +    qemu_add_polling_cb(win_chr_serial_poll, chr);
>      return 0;
>
>   fail:
> @@ -208,7 +208,7 @@ static void char_win_finalize(Object *obj)
>      if (s->fpipe) {
>          qemu_del_polling_cb(win_chr_pipe_poll, chr);
>      } else {
> -        qemu_del_polling_cb(win_chr_poll, chr);
> +        qemu_del_polling_cb(win_chr_serial_poll, chr);
>      }
>
>      qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
>

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

* Re: [Qemu-devel] [PATCH 01/13] char-win: simplify win_chr_read()
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 01/13] char-win: simplify win_chr_read() Marc-André Lureau
@ 2017-05-09 12:55   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:55 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> win_chr_read_poll() is always used before win_chr_read().
> We can easily fold win_chr_readfile() too.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  chardev/char-win.h |  2 +-
>  chardev/char-win.c | 35 +++++++++--------------------------
>  2 files changed, 10 insertions(+), 27 deletions(-)
>
> diff --git a/chardev/char-win.h b/chardev/char-win.h
> index d78a7d7972..73a0e3caef 100644
> --- a/chardev/char-win.h
> +++ b/chardev/char-win.h
> @@ -28,7 +28,7 @@
>
>  typedef struct {
>      Chardev parent;
> -    int max_size;
> +
>      HANDLE hcom, hrecv, hsend;
>      OVERLAPPED orecv;
>      BOOL fpipe;
> diff --git a/chardev/char-win.c b/chardev/char-win.c
> index e4b6957ded..a46d878ef8 100644
> --- a/chardev/char-win.c
> +++ b/chardev/char-win.c
> @@ -26,14 +26,21 @@
>  #include "qapi/error.h"
>  #include "char-win.h"
>
> -static void win_chr_readfile(Chardev *chr)
> +static void win_chr_read(Chardev *chr)
>  {
>      WinChardev *s = WIN_CHARDEV(chr);
> -
> +    int max_size = qemu_chr_be_can_write(chr);
>      int ret, err;
>      uint8_t buf[CHR_READ_BUF_LEN];
>      DWORD size;
>
> +    if (s->len > max_size) {
> +        s->len = max_size;
> +    }
> +    if (s->len == 0) {
> +        return;
> +    }
> +
>      ZeroMemory(&s->orecv, sizeof(s->orecv));
>      s->orecv.hEvent = s->hrecv;
>      ret = ReadFile(s->hcom, buf, s->len, &size, &s->orecv);
> @@ -49,28 +56,6 @@ static void win_chr_readfile(Chardev *chr)
>      }
>  }
>
> -static void win_chr_read(Chardev *chr)
> -{
> -    WinChardev *s = WIN_CHARDEV(chr);
> -
> -    if (s->len > s->max_size) {
> -        s->len = s->max_size;
> -    }
> -    if (s->len == 0) {
> -        return;
> -    }
> -
> -    win_chr_readfile(chr);
> -}
> -
> -static int win_chr_read_poll(Chardev *chr)
> -{
> -    WinChardev *s = WIN_CHARDEV(chr);
> -
> -    s->max_size = qemu_chr_be_can_write(chr);
> -    return s->max_size;
> -}
> -
>  static int win_chr_poll(void *opaque)
>  {
>      Chardev *chr = CHARDEV(opaque);
> @@ -81,7 +66,6 @@ static int win_chr_poll(void *opaque)
>      ClearCommError(s->hcom, &comerr, &status);
>      if (status.cbInQue > 0) {
>          s->len = status.cbInQue;
> -        win_chr_read_poll(chr);
>          win_chr_read(chr);
>          return 1;
>      }
> @@ -163,7 +147,6 @@ int win_chr_pipe_poll(void *opaque)
>      PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL);
>      if (size > 0) {
>          s->len = size;
> -        win_chr_read_poll(chr);
>          win_chr_read(chr);
>          return 1;
>      }
>

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

* Re: [Qemu-devel] [PATCH 09/13] char: generalize qemu_chr_write_all()
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 09/13] char: generalize qemu_chr_write_all() Marc-André Lureau
@ 2017-05-09 12:58   ` Philippe Mathieu-Daudé
  2017-05-26 12:37     ` Marc-André Lureau
  0 siblings, 1 reply; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-09 12:58 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

Hi Marc-André,

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> qemu_chr_fe_write() is similar to qemu_chr_write_all(): the later write
> all with a chardev backend.
>
> Make qemu_chr_write() and qemu_chr_fe_write_buffer() take an 'all'
> argument. If false, handle 'partial' write the way qemu_chr_fe_write()
> use to, and call qemu_chr_write() from qemu_chr_fe_write().

What about invert logic and name the argument 'is_partial[_write]'? Else 
'write_all' to have more readable code?

>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  chardev/char.c | 69 +++++++++++++++++++++++-----------------------------------
>  1 file changed, 27 insertions(+), 42 deletions(-)
>
> diff --git a/chardev/char.c b/chardev/char.c
> index af7d871ed5..392dba6a86 100644
> --- a/chardev/char.c
> +++ b/chardev/char.c
> @@ -96,7 +96,8 @@ static void qemu_chr_fe_write_log(Chardev *s,
>  }
>
>  static int qemu_chr_fe_write_buffer(Chardev *s,
> -                                    const uint8_t *buf, int len, int *offset)
> +                                    const uint8_t *buf, int len,
> +                                    int *offset, bool all)
>  {
>      ChardevClass *cc = CHARDEV_GET_CLASS(s);
>      int res = 0;
> @@ -106,7 +107,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
>      while (*offset < len) {
>      retry:
>          res = cc->chr_write(s, buf + *offset, len - *offset);
> -        if (res < 0 && errno == EAGAIN) {
> +        if (res < 0 && errno == EAGAIN && all) {
>              g_usleep(100);
>              goto retry;
>          }
> @@ -116,6 +117,9 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
>          }
>
>          *offset += res;
> +        if (!all) {
> +            break;
> +        }
>      }
>      if (*offset > 0) {
>          qemu_chr_fe_write_log(s, buf, *offset);
> @@ -130,54 +134,19 @@ static bool qemu_chr_replay(Chardev *chr)
>      return qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_REPLAY);
>  }
>
> -int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
> +static int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool all)
>  {
> -    Chardev *s = be->chr;
> -    ChardevClass *cc;
> -    int ret;
> -
> -    if (!s) {
> -        return 0;
> -    }
> -
> -    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
> -        int offset;
> -        replay_char_write_event_load(&ret, &offset);
> -        assert(offset <= len);
> -        qemu_chr_fe_write_buffer(s, buf, offset, &offset);
> -        return ret;
> -    }
> -
> -    cc = CHARDEV_GET_CLASS(s);
> -    qemu_mutex_lock(&s->chr_write_lock);
> -    ret = cc->chr_write(s, buf, len);
> -
> -    if (ret > 0) {
> -        qemu_chr_fe_write_log(s, buf, ret);
> -    }
> -
> -    qemu_mutex_unlock(&s->chr_write_lock);
> -
> -    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
> -        replay_char_write_event_save(ret, ret < 0 ? 0 : ret);
> -    }
> -
> -    return ret;
> -}
> -
> -int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
> -{
> -    int offset;
> +    int offset = 0;
>      int res;
>
>      if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
>          replay_char_write_event_load(&res, &offset);
>          assert(offset <= len);
> -        qemu_chr_fe_write_buffer(s, buf, offset, &offset);
> +        qemu_chr_fe_write_buffer(s, buf, offset, &offset, true);
>          return res;
>      }
>
> -    res = qemu_chr_fe_write_buffer(s, buf, len, &offset);
> +    res = qemu_chr_fe_write_buffer(s, buf, len, &offset, all);
>
>      if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
>          replay_char_write_event_save(res, offset);
> @@ -189,6 +158,22 @@ int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
>      return offset;
>  }
>
> +int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
> +{
> +    return qemu_chr_write(s, buf, len, true);
> +}
> +
> +int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
> +{
> +    Chardev *s = be->chr;
> +
> +    if (!s) {
> +        return 0;
> +    }
> +
> +    return qemu_chr_write(s, buf, len, false);
> +}
> +
>  int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len)
>  {
>      Chardev *s = be->chr;
> @@ -197,7 +182,7 @@ int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len)
>          return 0;
>      }
>
> -    return qemu_chr_write_all(s, buf, len);
> +    return qemu_chr_write(s, buf, len, true);
>  }
>
>  int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len)
>

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

* Re: [Qemu-devel] [PATCH 07/13] chardev: serial & parallel declaration to own headers
  2017-05-09 11:41   ` Paolo Bonzini
@ 2017-05-26 11:41     ` Marc-André Lureau
  0 siblings, 0 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-26 11:41 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

Hi

On Tue, May 9, 2017 at 3:49 PM Paolo Bonzini <pbonzini@redhat.com> wrote:

>
>
> On 09/05/2017 13:33, Marc-André Lureau wrote:
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >  include/chardev/char-parallel.h | 20 +++++++++++++++++++-
> >  include/chardev/char-serial.h   | 22 ++++++++++++++++++++++
> >  include/chardev/char.h          | 36
> ------------------------------------
> >  hw/arm/strongarm.c              |  2 +-
> >  hw/bt/hci-csr.c                 |  2 +-
> >  hw/char/cadence_uart.c          |  2 +-
> >  hw/char/escc.c                  |  2 +-
> >  hw/char/exynos4210_uart.c       |  2 +-
> >  hw/char/parallel.c              |  2 +-
> >  hw/char/serial.c                |  2 +-
> >  hw/usb/dev-serial.c             |  2 +-
> >  11 files changed, 49 insertions(+), 45 deletions(-)
> >
> > diff --git a/include/chardev/char-parallel.h
> b/include/chardev/char-parallel.h
> > index 26742f9d5c..3284a1b96b 100644
> > --- a/include/chardev/char-parallel.h
> > +++ b/include/chardev/char-parallel.h
> > @@ -24,9 +24,27 @@
> >  #ifndef CHAR_PARALLEL_H
> >  #define CHAR_PARALLEL_H
> >
> > -#if defined(__linux__) || defined(__FreeBSD__) || \
> > +#include "chardev/char.h"
> > +
> > +#if defined(__linux__) || defined(__FreeBSD__) ||               \
> >      defined(__FreeBSD_kernel__) || defined(__DragonFly__)
> >  #define HAVE_CHARDEV_PARPORT 1
> >  #endif
> >
> > +#define CHR_IOCTL_PP_READ_DATA        3
> > +#define CHR_IOCTL_PP_WRITE_DATA       4
> > +#define CHR_IOCTL_PP_READ_CONTROL     5
> > +#define CHR_IOCTL_PP_WRITE_CONTROL    6
> > +#define CHR_IOCTL_PP_READ_STATUS      7
> > +#define CHR_IOCTL_PP_EPP_READ_ADDR    8
> > +#define CHR_IOCTL_PP_EPP_READ         9
> > +#define CHR_IOCTL_PP_EPP_WRITE_ADDR  10
> > +#define CHR_IOCTL_PP_EPP_WRITE       11
> > +#define CHR_IOCTL_PP_DATA_DIR        12
> > +
> > +struct ParallelIOArg {
> > +    void *buffer;
> > +    int count;
> > +};
> > +
> >  #endif /* CHAR_PARALLEL_H */
> > diff --git a/include/chardev/char-serial.h
> b/include/chardev/char-serial.h
> > index 64a27f63b1..cb2e59e82a 100644
> > --- a/include/chardev/char-serial.h
> > +++ b/include/chardev/char-serial.h
> > @@ -24,6 +24,8 @@
> >  #ifndef CHAR_SERIAL_H
> >  #define CHAR_SERIAL_H
> >
> > +#include "chardev/char.h"
> > +
> >  #ifdef _WIN32
> >  #define HAVE_CHARDEV_SERIAL 1
> >  #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)
> \
> > @@ -32,4 +34,24 @@
> >  #define HAVE_CHARDEV_SERIAL 1
> >  #endif
> >
> > +#define CHR_IOCTL_SERIAL_SET_PARAMS   1
> > +typedef struct {
> > +    int speed;
> > +    int parity;
> > +    int data_bits;
> > +    int stop_bits;
> > +} QEMUSerialSetParams;
> > +
> > +#define CHR_IOCTL_SERIAL_SET_BREAK    2
> > +
> > +#define CHR_IOCTL_SERIAL_SET_TIOCM   13
> > +#define CHR_IOCTL_SERIAL_GET_TIOCM   14
> > +
> > +#define CHR_TIOCM_CTS   0x020
> > +#define CHR_TIOCM_CAR   0x040
> > +#define CHR_TIOCM_DSR   0x100
> > +#define CHR_TIOCM_RI    0x080
> > +#define CHR_TIOCM_DTR   0x002
> > +#define CHR_TIOCM_RTS   0x004
> > +
> >  #endif
> > diff --git a/include/chardev/char.h b/include/chardev/char.h
> > index ea9f2cb7d6..0e1ef1ea4f 100644
> > --- a/include/chardev/char.h
> > +++ b/include/chardev/char.h
> > @@ -27,42 +27,6 @@ typedef enum {
> >
> >  #define CHR_READ_BUF_LEN 4096
> >
> > -#define CHR_IOCTL_SERIAL_SET_PARAMS   1
> > -typedef struct {
> > -    int speed;
> > -    int parity;
> > -    int data_bits;
> > -    int stop_bits;
> > -} QEMUSerialSetParams;
> > -
> > -#define CHR_IOCTL_SERIAL_SET_BREAK    2
> > -
> > -#define CHR_IOCTL_PP_READ_DATA        3
> > -#define CHR_IOCTL_PP_WRITE_DATA       4
> > -#define CHR_IOCTL_PP_READ_CONTROL     5
> > -#define CHR_IOCTL_PP_WRITE_CONTROL    6
> > -#define CHR_IOCTL_PP_READ_STATUS      7
> > -#define CHR_IOCTL_PP_EPP_READ_ADDR    8
> > -#define CHR_IOCTL_PP_EPP_READ         9
> > -#define CHR_IOCTL_PP_EPP_WRITE_ADDR  10
> > -#define CHR_IOCTL_PP_EPP_WRITE       11
> > -#define CHR_IOCTL_PP_DATA_DIR        12
> > -
> > -struct ParallelIOArg {
> > -    void *buffer;
> > -    int count;
> > -};
> > -
> > -#define CHR_IOCTL_SERIAL_SET_TIOCM   13
> > -#define CHR_IOCTL_SERIAL_GET_TIOCM   14
> > -
> > -#define CHR_TIOCM_CTS        0x020
> > -#define CHR_TIOCM_CAR        0x040
> > -#define CHR_TIOCM_DSR        0x100
> > -#define CHR_TIOCM_RI 0x080
> > -#define CHR_TIOCM_DTR        0x002
> > -#define CHR_TIOCM_RTS        0x004
> > -
> >  typedef void IOEventHandler(void *opaque, int event);
> >
> >  typedef enum {
>
> Hmm, this makes the previous patch more desirable.
>

Yeah, I think it's a bit simpler if we put all chardev/ headers under
include/chardev, since files outside chardev/ include headers like
char-serial.h or char-parallel.h and it helps cleaning the headers.

We could limit it to headers accessed outside chardev/, that is probably
mainly -serial and -parellel (I haven't checked)


> > diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
> > index 66cad198d4..967caea749 100644
> > --- a/hw/arm/strongarm.c
> > +++ b/hw/arm/strongarm.c
> > @@ -34,7 +34,7 @@
> >  #include "strongarm.h"
> >  #include "qemu/error-report.h"
> >  #include "hw/arm/arm.h"
> > -#include "chardev/char.h"
> > +#include "chardev/char-serial.h"
>
> Should this include both?  Likewise for all those below.
>

Well the patch makes char-serial.h implicitely includes char.h. Anything
wrong with that?

thanks


-- 
Marc-André Lureau

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

* Re: [Qemu-devel] [PATCH 08/13] be-hci: use backend functions
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 08/13] be-hci: use backend functions Marc-André Lureau
@ 2017-05-26 12:20   ` Marc-André Lureau
  2017-05-28 11:37     ` andrzej zaborowski
  2017-05-26 15:39   ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-26 12:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, balrog

On Tue, May 9, 2017 at 3:42 PM Marc-André Lureau <
marcandre.lureau@redhat.com> wrote:

> Avoid accessing CharBackend directly, use qemu_chr_be_* methods instead.
>
> be->chr_read should exists if qemu_chr_be_can_write() is true.
>
> (use qemu_chr_be_write(), _impl() bypasses replay)
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  hw/bt/hci-csr.c | 9 +++------
>

No maintainer for this file. Andrzej, as author of the file, can you
review?


>  1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
> index 0f2021086d..d13192b9b5 100644
> --- a/hw/bt/hci-csr.c
> +++ b/hw/bt/hci-csr.c
> @@ -82,17 +82,14 @@ enum {
>
>  static inline void csrhci_fifo_wake(struct csrhci_s *s)
>  {
> -    Chardev *chr = (Chardev *)s;
> -    CharBackend *be = chr->be;
> +    Chardev *chr = CHARDEV(s);
>
>      if (!s->enable || !s->out_len)
>          return;
>
>      /* XXX: Should wait for s->modem_state & CHR_TIOCM_RTS? */
> -    if (be && be->chr_can_read && be->chr_can_read(be->opaque) &&
> -        be->chr_read) {
> -        be->chr_read(be->opaque,
> -                     s->outfifo + s->out_start++, 1);
> +    if (qemu_chr_be_can_write(chr)) {
> +        qemu_chr_be_write(chr, s->outfifo + s->out_start++, 1);
>          s->out_len--;
>          if (s->out_start >= s->out_size) {
>              s->out_start = 0;
> --
> 2.13.0.rc1.16.gd80b50c3f
>
>
> --
Marc-André Lureau

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

* Re: [Qemu-devel] [PATCH 09/13] char: generalize qemu_chr_write_all()
  2017-05-09 12:58   ` Philippe Mathieu-Daudé
@ 2017-05-26 12:37     ` Marc-André Lureau
  0 siblings, 0 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-26 12:37 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel; +Cc: pbonzini

Hi

On Tue, May 9, 2017 at 4:59 PM Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> Hi Marc-André,
>
> On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> > qemu_chr_fe_write() is similar to qemu_chr_write_all(): the later write
> > all with a chardev backend.
> >
> > Make qemu_chr_write() and qemu_chr_fe_write_buffer() take an 'all'
> > argument. If false, handle 'partial' write the way qemu_chr_fe_write()
> > use to, and call qemu_chr_write() from qemu_chr_fe_write().
>
> What about invert logic and name the argument 'is_partial[_write]'? Else
> 'write_all' to have more readable code?
>
>
I have a slight preference for the 'all' over 'partial' logic argument, but
I don't mind much.

It's fine to rename it write_all too.


> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >  chardev/char.c | 69
> +++++++++++++++++++++++-----------------------------------
> >  1 file changed, 27 insertions(+), 42 deletions(-)
> >
> > diff --git a/chardev/char.c b/chardev/char.c
> > index af7d871ed5..392dba6a86 100644
> > --- a/chardev/char.c
> > +++ b/chardev/char.c
> > @@ -96,7 +96,8 @@ static void qemu_chr_fe_write_log(Chardev *s,
> >  }
> >
> >  static int qemu_chr_fe_write_buffer(Chardev *s,
> > -                                    const uint8_t *buf, int len, int
> *offset)
> > +                                    const uint8_t *buf, int len,
> > +                                    int *offset, bool all)
> >  {
> >      ChardevClass *cc = CHARDEV_GET_CLASS(s);
> >      int res = 0;
> > @@ -106,7 +107,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
> >      while (*offset < len) {
> >      retry:
> >          res = cc->chr_write(s, buf + *offset, len - *offset);
> > -        if (res < 0 && errno == EAGAIN) {
> > +        if (res < 0 && errno == EAGAIN && all) {
> >              g_usleep(100);
> >              goto retry;
> >          }
> > @@ -116,6 +117,9 @@ static int qemu_chr_fe_write_buffer(Chardev *s,
> >          }
> >
> >          *offset += res;
> > +        if (!all) {
> > +            break;
> > +        }
> >      }
> >      if (*offset > 0) {
> >          qemu_chr_fe_write_log(s, buf, *offset);
> > @@ -130,54 +134,19 @@ static bool qemu_chr_replay(Chardev *chr)
> >      return qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_REPLAY);
> >  }
> >
> > -int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
> > +static int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool
> all)
> >  {
> > -    Chardev *s = be->chr;
> > -    ChardevClass *cc;
> > -    int ret;
> > -
> > -    if (!s) {
> > -        return 0;
> > -    }
> > -
> > -    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
> > -        int offset;
> > -        replay_char_write_event_load(&ret, &offset);
> > -        assert(offset <= len);
> > -        qemu_chr_fe_write_buffer(s, buf, offset, &offset);
> > -        return ret;
> > -    }
> > -
> > -    cc = CHARDEV_GET_CLASS(s);
> > -    qemu_mutex_lock(&s->chr_write_lock);
> > -    ret = cc->chr_write(s, buf, len);
> > -
> > -    if (ret > 0) {
> > -        qemu_chr_fe_write_log(s, buf, ret);
> > -    }
> > -
> > -    qemu_mutex_unlock(&s->chr_write_lock);
> > -
> > -    if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
> > -        replay_char_write_event_save(ret, ret < 0 ? 0 : ret);
> > -    }
> > -
> > -    return ret;
> > -}
> > -
> > -int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
> > -{
> > -    int offset;
> > +    int offset = 0;
> >      int res;
> >
> >      if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_PLAY) {
> >          replay_char_write_event_load(&res, &offset);
> >          assert(offset <= len);
> > -        qemu_chr_fe_write_buffer(s, buf, offset, &offset);
> > +        qemu_chr_fe_write_buffer(s, buf, offset, &offset, true);
> >          return res;
> >      }
> >
> > -    res = qemu_chr_fe_write_buffer(s, buf, len, &offset);
> > +    res = qemu_chr_fe_write_buffer(s, buf, len, &offset, all);
> >
> >      if (qemu_chr_replay(s) && replay_mode == REPLAY_MODE_RECORD) {
> >          replay_char_write_event_save(res, offset);
> > @@ -189,6 +158,22 @@ int qemu_chr_write_all(Chardev *s, const uint8_t
> *buf, int len)
> >      return offset;
> >  }
> >
> > +int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len)
> > +{
> > +    return qemu_chr_write(s, buf, len, true);
> > +}
> > +
> > +int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len)
> > +{
> > +    Chardev *s = be->chr;
> > +
> > +    if (!s) {
> > +        return 0;
> > +    }
> > +
> > +    return qemu_chr_write(s, buf, len, false);
> > +}
> > +
> >  int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len)
> >  {
> >      Chardev *s = be->chr;
> > @@ -197,7 +182,7 @@ int qemu_chr_fe_write_all(CharBackend *be, const
> uint8_t *buf, int len)
> >          return 0;
> >      }
> >
> > -    return qemu_chr_write_all(s, buf, len);
> > +    return qemu_chr_write(s, buf, len, true);
> >  }
> >
> >  int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len)
> >
>
> --
Marc-André Lureau

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

* Re: [Qemu-devel] [PATCH 11/13] Remove/replace chardev/char.h inclusion
  2017-05-09 12:45   ` Philippe Mathieu-Daudé
@ 2017-05-26 13:35     ` Marc-André Lureau
  0 siblings, 0 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-26 13:35 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel; +Cc: pbonzini

On Tue, May 9, 2017 at 4:46 PM Philippe Mathieu-Daudé <f4bug@amsat.org>
wrote:

> Hi Marc-André Lureau,
>
> Isn't clearer if the "remove" part of this commit goes before your patch
> 6 "move headers to include/chardev"?
>

make sense, reordered

thanks


>
> On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> > Those are apparently unnecessary includes.
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >  hw/arm/bcm2835_peripherals.c | 1 -
> >  hw/char/imx_serial.c         | 1 -
> >  hw/display/xenfb.c           | 1 -
> >  hw/i386/xen/xen-hvm.c        | 1 -
> >  hw/mips/mips_fulong2e.c      | 1 -
> >  hw/mips/mips_malta.c         | 1 -
> >  hw/net/xgmac.c               | 1 -
> >  hw/ppc/spapr_events.c        | 1 -
> >  hw/ppc/spapr_rtas.c          | 1 -
> >  hw/sparc/leon3.c             | 1 -
> >  hw/usb/ccid-card-emulated.c  | 2 +-
> >  hw/xen/xen_backend.c         | 1 -
> >  util/event_notifier-posix.c  | 1 -
> >  13 files changed, 1 insertion(+), 13 deletions(-)
> >
> > diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c
> > index 091e14dc60..502f04c02a 100644
> > --- a/hw/arm/bcm2835_peripherals.c
> > +++ b/hw/arm/bcm2835_peripherals.c
> > @@ -13,7 +13,6 @@
> >  #include "hw/arm/bcm2835_peripherals.h"
> >  #include "hw/misc/bcm2835_mbox_defs.h"
> >  #include "hw/arm/raspi_platform.h"
> > -#include "chardev/char.h"
> >  #include "sysemu/sysemu.h"
> >
> >  /* Peripheral base address on the VC (GPU) system bus */
> > diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
> > index 1d4f378a59..af250305be 100644
> > --- a/hw/char/imx_serial.c
> > +++ b/hw/char/imx_serial.c
> > @@ -21,7 +21,6 @@
> >  #include "qemu/osdep.h"
> >  #include "hw/char/imx_serial.h"
> >  #include "sysemu/sysemu.h"
> > -#include "chardev/char.h"
> >  #include "qemu/log.h"
> >
> >  #ifndef DEBUG_IMX_UART
> > diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
> > index 4a1a2a4d6e..e76c0d805c 100644
> > --- a/hw/display/xenfb.c
> > +++ b/hw/display/xenfb.c
> > @@ -28,7 +28,6 @@
> >
> >  #include "hw/hw.h"
> >  #include "ui/console.h"
> > -#include "chardev/char.h"
> >  #include "hw/xen/xen_backend.h"
> >
> >  #include <xen/event_channel.h>
> > diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
> > index 8dc57a31cf..321cf36b67 100644
> > --- a/hw/i386/xen/xen-hvm.c
> > +++ b/hw/i386/xen/xen-hvm.c
> > @@ -18,7 +18,6 @@
> >  #include "hw/xen/xen_backend.h"
> >  #include "qmp-commands.h"
> >
> > -#include "chardev/char.h"
> >  #include "qemu/error-report.h"
> >  #include "qemu/range.h"
> >  #include "sysemu/xen-mapcache.h"
> > diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> > index 55eeb9227d..dbe2805acb 100644
> > --- a/hw/mips/mips_fulong2e.c
> > +++ b/hw/mips/mips_fulong2e.c
> > @@ -32,7 +32,6 @@
> >  #include "hw/mips/mips.h"
> >  #include "hw/mips/cpudevs.h"
> >  #include "hw/pci/pci.h"
> > -#include "chardev/char.h"
> >  #include "sysemu/sysemu.h"
> >  #include "audio/audio.h"
> >  #include "qemu/log.h"
> > diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> > index 610e1e9085..6fcdd9c6c1 100644
> > --- a/hw/mips/mips_malta.c
> > +++ b/hw/mips/mips_malta.c
> > @@ -37,7 +37,6 @@
> >  #include "hw/mips/mips.h"
> >  #include "hw/mips/cpudevs.h"
> >  #include "hw/pci/pci.h"
> > -#include "chardev/char.h"
> >  #include "sysemu/sysemu.h"
> >  #include "sysemu/arch_init.h"
> >  #include "qemu/log.h"
> > diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
> > index 3d00e2868c..0843bf185c 100644
> > --- a/hw/net/xgmac.c
> > +++ b/hw/net/xgmac.c
> > @@ -26,7 +26,6 @@
> >
> >  #include "qemu/osdep.h"
> >  #include "hw/sysbus.h"
> > -#include "chardev/char.h"
> >  #include "qemu/log.h"
> >  #include "net/net.h"
> >  #include "net/checksum.h"
> > diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
> > index b309f2f4b0..8a5f1d321a 100644
> > --- a/hw/ppc/spapr_events.c
> > +++ b/hw/ppc/spapr_events.c
> > @@ -28,7 +28,6 @@
> >  #include "qapi/error.h"
> >  #include "cpu.h"
> >  #include "sysemu/sysemu.h"
> > -#include "chardev/char.h"
> >  #include "hw/qdev.h"
> >  #include "sysemu/device_tree.h"
> >
> > diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> > index 9995b1a9f5..dd1633a104 100644
> > --- a/hw/ppc/spapr_rtas.c
> > +++ b/hw/ppc/spapr_rtas.c
> > @@ -29,7 +29,6 @@
> >  #include "qemu/log.h"
> >  #include "qemu/error-report.h"
> >  #include "sysemu/sysemu.h"
> > -#include "chardev/char.h"
> >  #include "hw/qdev.h"
> >  #include "sysemu/device_tree.h"
> >  #include "sysemu/cpus.h"
> > diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
> > index f3e62f5bd7..f415997649 100644
> > --- a/hw/sparc/leon3.c
> > +++ b/hw/sparc/leon3.c
> > @@ -28,7 +28,6 @@
> >  #include "hw/hw.h"
> >  #include "qemu/timer.h"
> >  #include "hw/ptimer.h"
> > -#include "chardev/char.h"
> >  #include "sysemu/sysemu.h"
> >  #include "sysemu/qtest.h"
> >  #include "hw/boards.h"
> > diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
> > index 690b6c3ab4..e646eb243b 100644
> > --- a/hw/usb/ccid-card-emulated.c
> > +++ b/hw/usb/ccid-card-emulated.c
> > @@ -33,7 +33,7 @@
> >  #include <vcard_emul.h>
> >
> >  #include "qemu/thread.h"
> > -#include "chardev/char.h"
> > +#include "qemu/main-loop.h"
> >  #include "ccid.h"
> >
> >  #define DPRINTF(card, lvl, fmt, ...) \
> > diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c
> > index a252a7fd96..b6e1b8cf59 100644
> > --- a/hw/xen/xen_backend.c
> > +++ b/hw/xen/xen_backend.c
> > @@ -28,7 +28,6 @@
> >  #include "hw/hw.h"
> >  #include "hw/sysbus.h"
> >  #include "hw/boards.h"
> > -#include "chardev/char.h"
> >  #include "qemu/log.h"
> >  #include "qapi/error.h"
> >  #include "hw/xen/xen_backend.h"
> > diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
> > index 8ab06f9b41..73c4046b58 100644
> > --- a/util/event_notifier-posix.c
> > +++ b/util/event_notifier-posix.c
> > @@ -14,7 +14,6 @@
> >  #include "qemu-common.h"
> >  #include "qemu/cutils.h"
> >  #include "qemu/event_notifier.h"
> > -#include "chardev/char.h"
> >  #include "qemu/main-loop.h"
> >
> >  #ifdef CONFIG_EVENTFD
> >
>
> --
Marc-André Lureau

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

* Re: [Qemu-devel] [PATCH 05/13] char-win: close file handle except with console
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 05/13] char-win: close file handle except with console Marc-André Lureau
@ 2017-05-26 15:30   ` Philippe Mathieu-Daudé
  2017-05-29  7:25     ` Marc-André Lureau
  0 siblings, 1 reply; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-26 15:30 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

Hi Marc-André,

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> Only the console handle shouldn't be closed, however, the "file" handle
> should.

Correct.

>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  chardev/char-win.h     |  5 ++---
>  chardev/char-console.c |  2 +-
>  chardev/char-file.c    |  2 +-
>  chardev/char-win.c     | 12 ++++--------
>  4 files changed, 8 insertions(+), 13 deletions(-)
>
> diff --git a/chardev/char-win.h b/chardev/char-win.h
> index 888be2b3ca..9ed2ba998a 100644
> --- a/chardev/char-win.h
> +++ b/chardev/char-win.h
> @@ -29,14 +29,13 @@
>  typedef struct {
>      Chardev parent;
>
> +    bool dont_close; /* console do not close file */

That or "keep_open" to avoid negative thoughts ;)

Anyway:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>      HANDLE file, hrecv, hsend;
>      OVERLAPPED orecv;
>      BOOL fpipe;
>
>      /* Protected by the Chardev chr_write_lock.  */
>      OVERLAPPED osend;
> -    /* FIXME: file/console do not finalize */
> -    bool skip_free;
>  } WinChardev;
>
>  #define NSENDBUF 2048
> @@ -45,7 +44,7 @@ typedef struct {
>  #define TYPE_CHARDEV_WIN "chardev-win"
>  #define WIN_CHARDEV(obj) OBJECT_CHECK(WinChardev, (obj), TYPE_CHARDEV_WIN)
>
> -void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out);
> +void win_chr_set_file(Chardev *chr, HANDLE file, bool dont_close);
>  int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp);
>  int win_chr_pipe_poll(void *opaque);
>
> diff --git a/chardev/char-console.c b/chardev/char-console.c
> index c824937fe6..8d972c1506 100644
> --- a/chardev/char-console.c
> +++ b/chardev/char-console.c
> @@ -29,7 +29,7 @@ static void qemu_chr_open_win_con(Chardev *chr,
>                                    bool *be_opened,
>                                    Error **errp)
>  {
> -    qemu_chr_open_win_file(chr, GetStdHandle(STD_OUTPUT_HANDLE));
> +    win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
>  }
>
>  static void char_console_class_init(ObjectClass *oc, void *data)
> diff --git a/chardev/char-file.c b/chardev/char-file.c
> index 8bae25350d..aed4ae1569 100644
> --- a/chardev/char-file.c
> +++ b/chardev/char-file.c
> @@ -65,7 +65,7 @@ static void qmp_chardev_open_file(Chardev *chr,
>          return;
>      }
>
> -    qemu_chr_open_win_file(chr, out);
> +    win_chr_set_file(chr, out, false);
>  #else
>      int flags, in = -1, out;
>
> diff --git a/chardev/char-win.c b/chardev/char-win.c
> index a7e3296909..24cf364947 100644
> --- a/chardev/char-win.c
> +++ b/chardev/char-win.c
> @@ -192,17 +192,13 @@ static void char_win_finalize(Object *obj)
>      Chardev *chr = CHARDEV(obj);
>      WinChardev *s = WIN_CHARDEV(chr);
>
> -    if (s->skip_free) {
> -        return;
> -    }
> -
>      if (s->hsend) {
>          CloseHandle(s->hsend);
>      }
>      if (s->hrecv) {
>          CloseHandle(s->hrecv);
>      }
> -    if (s->file) {
> +    if (!s->dont_close && s->file) {
>          CloseHandle(s->file);
>      }
>      if (s->fpipe) {
> @@ -214,12 +210,12 @@ static void char_win_finalize(Object *obj)
>      qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
>  }
>
> -void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out)
> +void win_chr_set_file(Chardev *chr, HANDLE file, bool dont_close)
>  {
>      WinChardev *s = WIN_CHARDEV(chr);
>
> -    s->skip_free = true;
> -    s->file = fd_out;
> +    s->dont_close = dont_close;
> +    s->file = file;
>  }
>
>  static void char_win_class_init(ObjectClass *oc, void *data)
>

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

* Re: [Qemu-devel] [PATCH 08/13] be-hci: use backend functions
  2017-05-09 11:33 ` [Qemu-devel] [PATCH 08/13] be-hci: use backend functions Marc-André Lureau
  2017-05-26 12:20   ` Marc-André Lureau
@ 2017-05-26 15:39   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 33+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-05-26 15:39 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel; +Cc: pbonzini

Hi Marc-André,

On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> Avoid accessing CharBackend directly, use qemu_chr_be_* methods instead.
>
> be->chr_read should exists if qemu_chr_be_can_write() is true.
>
> (use qemu_chr_be_write(), _impl() bypasses replay)
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  hw/bt/hci-csr.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
> index 0f2021086d..d13192b9b5 100644
> --- a/hw/bt/hci-csr.c
> +++ b/hw/bt/hci-csr.c
> @@ -82,17 +82,14 @@ enum {
>
>  static inline void csrhci_fifo_wake(struct csrhci_s *s)
>  {
> -    Chardev *chr = (Chardev *)s;
> -    CharBackend *be = chr->be;
> +    Chardev *chr = CHARDEV(s);
>
>      if (!s->enable || !s->out_len)
>          return;
>
>      /* XXX: Should wait for s->modem_state & CHR_TIOCM_RTS? */
> -    if (be && be->chr_can_read && be->chr_can_read(be->opaque) &&
> -        be->chr_read) {
> +    if (qemu_chr_be_can_write(chr)) {

Correct.

> -        be->chr_read(be->opaque,
> -                     s->outfifo + s->out_start++, 1);
> +        qemu_chr_be_write(chr, s->outfifo + s->out_start++, 1);

Here the difference with qemu_chr_be_write_impl() is the check with 
REPLAY_MODE_PLAY which is what you want from your commit message, right? 
I'm not sure if it makes sens or not to instead call _impl() directly.

>          s->out_len--;
>          if (s->out_start >= s->out_size) {
>              s->out_start = 0;
>

Regards,

Phil.

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

* Re: [Qemu-devel] [PATCH 08/13] be-hci: use backend functions
  2017-05-26 12:20   ` Marc-André Lureau
@ 2017-05-28 11:37     ` andrzej zaborowski
  0 siblings, 0 replies; 33+ messages in thread
From: andrzej zaborowski @ 2017-05-28 11:37 UTC (permalink / raw)
  To: Marc-André Lureau; +Cc: qemu-devel@nongnu.org, Paolo Bonzini

On 26 May 2017 at 14:20, Marc-André Lureau <marcandre.lureau@gmail.com> wrote:
> On Tue, May 9, 2017 at 3:42 PM Marc-André Lureau <
> marcandre.lureau@redhat.com> wrote:
>> Avoid accessing CharBackend directly, use qemu_chr_be_* methods instead.
>>
>> be->chr_read should exists if qemu_chr_be_can_write() is true.
>>
>> (use qemu_chr_be_write(), _impl() bypasses replay)
>>
>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> ---
>>  hw/bt/hci-csr.c | 9 +++------
>>
>
> No maintainer for this file. Andrzej, as author of the file, can you
> review?

This looks correct.
Reviewed-by: Andrzej Zaborowski <balrogg@gmail.com>

>
>
>>  1 file changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c
>> index 0f2021086d..d13192b9b5 100644
>> --- a/hw/bt/hci-csr.c
>> +++ b/hw/bt/hci-csr.c
>> @@ -82,17 +82,14 @@ enum {
>>
>>  static inline void csrhci_fifo_wake(struct csrhci_s *s)
>>  {
>> -    Chardev *chr = (Chardev *)s;
>> -    CharBackend *be = chr->be;
>> +    Chardev *chr = CHARDEV(s);
>>
>>      if (!s->enable || !s->out_len)
>>          return;
>>
>>      /* XXX: Should wait for s->modem_state & CHR_TIOCM_RTS? */
>> -    if (be && be->chr_can_read && be->chr_can_read(be->opaque) &&
>> -        be->chr_read) {
>> -        be->chr_read(be->opaque,
>> -                     s->outfifo + s->out_start++, 1);
>> +    if (qemu_chr_be_can_write(chr)) {
>> +        qemu_chr_be_write(chr, s->outfifo + s->out_start++, 1);
>>          s->out_len--;
>>          if (s->out_start >= s->out_size) {
>>              s->out_start = 0;
>> --
>> 2.13.0.rc1.16.gd80b50c3f
>>
>>
>> --
> Marc-André Lureau

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

* Re: [Qemu-devel] [PATCH 05/13] char-win: close file handle except with console
  2017-05-26 15:30   ` Philippe Mathieu-Daudé
@ 2017-05-29  7:25     ` Marc-André Lureau
  0 siblings, 0 replies; 33+ messages in thread
From: Marc-André Lureau @ 2017-05-29  7:25 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: qemu-devel, pbonzini

Hi

----- Original Message -----
> Hi Marc-André,
> 
> On 05/09/2017 08:33 AM, Marc-André Lureau wrote:
> > Only the console handle shouldn't be closed, however, the "file" handle
> > should.
> 
> Correct.
> 
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >  chardev/char-win.h     |  5 ++---
> >  chardev/char-console.c |  2 +-
> >  chardev/char-file.c    |  2 +-
> >  chardev/char-win.c     | 12 ++++--------
> >  4 files changed, 8 insertions(+), 13 deletions(-)
> >
> > diff --git a/chardev/char-win.h b/chardev/char-win.h
> > index 888be2b3ca..9ed2ba998a 100644
> > --- a/chardev/char-win.h
> > +++ b/chardev/char-win.h
> > @@ -29,14 +29,13 @@
> >  typedef struct {
> >      Chardev parent;
> >
> > +    bool dont_close; /* console do not close file */
> 
> That or "keep_open" to avoid negative thoughts ;)

agreed & changed, thanks

> 
> Anyway:
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
> >      HANDLE file, hrecv, hsend;
> >      OVERLAPPED orecv;
> >      BOOL fpipe;
> >
> >      /* Protected by the Chardev chr_write_lock.  */
> >      OVERLAPPED osend;
> > -    /* FIXME: file/console do not finalize */
> > -    bool skip_free;
> >  } WinChardev;
> >
> >  #define NSENDBUF 2048
> > @@ -45,7 +44,7 @@ typedef struct {
> >  #define TYPE_CHARDEV_WIN "chardev-win"
> >  #define WIN_CHARDEV(obj) OBJECT_CHECK(WinChardev, (obj), TYPE_CHARDEV_WIN)
> >
> > -void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out);
> > +void win_chr_set_file(Chardev *chr, HANDLE file, bool dont_close);
> >  int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp);
> >  int win_chr_pipe_poll(void *opaque);
> >
> > diff --git a/chardev/char-console.c b/chardev/char-console.c
> > index c824937fe6..8d972c1506 100644
> > --- a/chardev/char-console.c
> > +++ b/chardev/char-console.c
> > @@ -29,7 +29,7 @@ static void qemu_chr_open_win_con(Chardev *chr,
> >                                    bool *be_opened,
> >                                    Error **errp)
> >  {
> > -    qemu_chr_open_win_file(chr, GetStdHandle(STD_OUTPUT_HANDLE));
> > +    win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
> >  }
> >
> >  static void char_console_class_init(ObjectClass *oc, void *data)
> > diff --git a/chardev/char-file.c b/chardev/char-file.c
> > index 8bae25350d..aed4ae1569 100644
> > --- a/chardev/char-file.c
> > +++ b/chardev/char-file.c
> > @@ -65,7 +65,7 @@ static void qmp_chardev_open_file(Chardev *chr,
> >          return;
> >      }
> >
> > -    qemu_chr_open_win_file(chr, out);
> > +    win_chr_set_file(chr, out, false);
> >  #else
> >      int flags, in = -1, out;
> >
> > diff --git a/chardev/char-win.c b/chardev/char-win.c
> > index a7e3296909..24cf364947 100644
> > --- a/chardev/char-win.c
> > +++ b/chardev/char-win.c
> > @@ -192,17 +192,13 @@ static void char_win_finalize(Object *obj)
> >      Chardev *chr = CHARDEV(obj);
> >      WinChardev *s = WIN_CHARDEV(chr);
> >
> > -    if (s->skip_free) {
> > -        return;
> > -    }
> > -
> >      if (s->hsend) {
> >          CloseHandle(s->hsend);
> >      }
> >      if (s->hrecv) {
> >          CloseHandle(s->hrecv);
> >      }
> > -    if (s->file) {
> > +    if (!s->dont_close && s->file) {
> >          CloseHandle(s->file);
> >      }
> >      if (s->fpipe) {
> > @@ -214,12 +210,12 @@ static void char_win_finalize(Object *obj)
> >      qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
> >  }
> >
> > -void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out)
> > +void win_chr_set_file(Chardev *chr, HANDLE file, bool dont_close)
> >  {
> >      WinChardev *s = WIN_CHARDEV(chr);
> >
> > -    s->skip_free = true;
> > -    s->file = fd_out;
> > +    s->dont_close = dont_close;
> > +    s->file = file;
> >  }
> >
> >  static void char_win_class_init(ObjectClass *oc, void *data)
> >
> 

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

end of thread, other threads:[~2017-05-29  7:25 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-09 11:33 [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups Marc-André Lureau
2017-05-09 11:33 ` [Qemu-devel] [PATCH 01/13] char-win: simplify win_chr_read() Marc-André Lureau
2017-05-09 12:55   ` Philippe Mathieu-Daudé
2017-05-09 11:33 ` [Qemu-devel] [PATCH 02/13] char-win: remove WinChardev.len Marc-André Lureau
2017-05-09 12:47   ` Philippe Mathieu-Daudé
2017-05-09 11:33 ` [Qemu-devel] [PATCH 03/13] char-win: rename win_chr_init/poll win_chr_serial_init/poll Marc-André Lureau
2017-05-09 12:53   ` Philippe Mathieu-Daudé
2017-05-09 11:33 ` [Qemu-devel] [PATCH 04/13] char-win: rename hcom->file Marc-André Lureau
2017-05-09 12:48   ` Philippe Mathieu-Daudé
2017-05-09 11:33 ` [Qemu-devel] [PATCH 05/13] char-win: close file handle except with console Marc-André Lureau
2017-05-26 15:30   ` Philippe Mathieu-Daudé
2017-05-29  7:25     ` Marc-André Lureau
2017-05-09 11:33 ` [Qemu-devel] [PATCH 06/13] chardev: move headers to include/chardev Marc-André Lureau
2017-05-09 11:39   ` Paolo Bonzini
2017-05-09 11:33 ` [Qemu-devel] [PATCH 07/13] chardev: serial & parallel declaration to own headers Marc-André Lureau
2017-05-09 11:41   ` Paolo Bonzini
2017-05-26 11:41     ` Marc-André Lureau
2017-05-09 11:33 ` [Qemu-devel] [PATCH 08/13] be-hci: use backend functions Marc-André Lureau
2017-05-26 12:20   ` Marc-André Lureau
2017-05-28 11:37     ` andrzej zaborowski
2017-05-26 15:39   ` Philippe Mathieu-Daudé
2017-05-09 11:33 ` [Qemu-devel] [PATCH 09/13] char: generalize qemu_chr_write_all() Marc-André Lureau
2017-05-09 12:58   ` Philippe Mathieu-Daudé
2017-05-26 12:37     ` Marc-André Lureau
2017-05-09 11:33 ` [Qemu-devel] [PATCH 10/13] char: move CharBackend handling in char-fe unit Marc-André Lureau
2017-05-09 11:33 ` [Qemu-devel] [PATCH 11/13] Remove/replace chardev/char.h inclusion Marc-André Lureau
2017-05-09 12:45   ` Philippe Mathieu-Daudé
2017-05-26 13:35     ` Marc-André Lureau
2017-05-09 11:33 ` [Qemu-devel] [PATCH 12/13] char: rename functions that are not part of fe Marc-André Lureau
2017-05-09 12:51   ` Philippe Mathieu-Daudé
2017-05-09 11:33 ` [Qemu-devel] [PATCH 13/13] char: make chr_fe_deinit() optionaly delete backend Marc-André Lureau
2017-05-09 12:21 ` [Qemu-devel] [PATCH 00/13] chardev: misc clean-ups no-reply
2017-05-09 12:32 ` no-reply

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).