All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions
@ 2018-12-03 14:05 Thomas Huth
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version Thomas Huth
                   ` (8 more replies)
  0 siblings, 9 replies; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

It's unlikely that any of the developers still uses an older version
than GCC 4.8 or Clang 3.4, since all supported distributions have at
least these versions nowadays, so let's add a proper sanity check for
these versions and get rid of code that is only there for older versions.

Note: I did not remove all "#if QEMU_GNUC_PREREQ(4, <8)" checks yet
since some of them still apply to Clang, which reports itself as
GCC 4.2. We should replace those checks with proper checks for the
Clang version instead, in case newer versions of Clang support the
corresponding feature - but that needs some time-consuming research
first which I'll only start if this patch series gets accepted first.

Thomas Huth (7):
  configure: Add a test for the minimum compiler version
  Remove support for compilers that can not do 128-bit arithmetics
  configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012]
  Remove QEMU_ARTIFICIAL macro
  tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro
  audio/alsaaudio: Remove compiler check around pragma
  includes: Replace QEMU_GNUC_PREREQ with "__has_builtin ||
    !defined(__clang__)"

 Makefile.target            |   3 -
 audio/alsaaudio.c          |   2 -
 configure                  |  83 +++++++----------------
 include/qemu/compiler.h    |   8 +--
 include/qemu/host-utils.h  |  34 +---------
 include/qemu/int128.h      | 160 ---------------------------------------------
 scripts/checkpatch.pl      |   1 -
 scripts/cocci-macro-file.h |   1 -
 target/ppc/cpu.h           |   2 -
 target/ppc/int_helper.c    | 159 --------------------------------------------
 target/s390x/int_helper.c  |   7 --
 tcg/tcg.h                  |   4 +-
 util/host-utils.c          | 135 --------------------------------------
 13 files changed, 27 insertions(+), 572 deletions(-)

-- 
1.8.3.1

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

* [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
@ 2018-12-03 14:05 ` Thomas Huth
  2018-12-03 14:16   ` Daniel P. Berrangé
  2018-12-05 17:30   ` Philippe Mathieu-Daudé
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 2/7] Remove support for compilers that can not do 128-bit arithmetics Thomas Huth
                   ` (7 subsequent siblings)
  8 siblings, 2 replies; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

So far we only had implicit requirements for the minimum compiler version,
e.g. we require at least GCC 4.1 for the support of atomics. However,
such old compiler versions are not tested anymore by the developers, so
they are not really supported anymore. Since we recently declared explicitly
what platforms we intend to support, we can also get more explicit on the
compiler version now. The supported distributions use the following version
of GCC:

      RHEL-7: 4.8.5
      Debian (Stretch): 6.3.0
      Debian (Jessie): 4.8.4
      OpenBSD (ports): 4.9.4
      FreeBSD (ports): 8.2.0
      OpenSUSE Leap 15: 7.3.1
      Ubuntu (Xenial): 5.3.1
      macOS (Homebrew): 8.2.0

So we can safely assume GCC 4.8 these days. For Clang, the situation is
a little bit more ambiguous, since it is sometimes not available in the
main distros but rather third party repositories. At least Debian Jessie
uses version 3.5, and EPEL7 for RHEL7 uses 3.4, so let's use 3.4 as
minimum Clang version now - we still can adjust this later if necessary.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 configure | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/configure b/configure
index 0a3c6a7..f1e305e 100755
--- a/configure
+++ b/configure
@@ -1840,6 +1840,25 @@ if test "$bogus_os" = "yes"; then
     error_exit "Unrecognized host OS (uname -s reports '$(uname -s)')"
 fi
 
+# Check whether the compiler matches our minimum requirements:
+cat > $TMPC << EOF
+#if defined(__clang_major__) && defined(__clang_minor__)
+# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)
+#  error You need at least Clang v3.4 to compile QEMU
+# endif
+#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
+# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8)
+#  error You need at least GCC v4.8 to compile QEMU
+# endif
+#else
+# error You either need GCC or Clang to compiler QEMU
+#endif
+int main (void) { return 0; }
+EOF
+if ! compile_prog "" "" ; then
+    error_exit "You need at least GCC v4.8 or Clang v3.4 to compiler QEMU"
+fi
+
 gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
 gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
 gcc_flags="-Wno-missing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
-- 
1.8.3.1

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

* [Qemu-devel] [PATCH for-4.0 2/7] Remove support for compilers that can not do 128-bit arithmetics
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version Thomas Huth
@ 2018-12-03 14:05 ` Thomas Huth
  2018-12-03 14:11   ` Richard Henderson
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 3/7] configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012] Thomas Huth
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

Now that we require at least GCC v4.8 and Clang v3.4, we can be sure
that we always have a compiler that has support for 128-bit arithmetics.
Thus we can remove the !CONFIG_INT128 code now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 Note: We could even remove int128.h and the helper functions now ...
 but that's also topic for a separate patch, I think.

 configure                 |  37 ++---------
 include/qemu/host-utils.h |  30 ---------
 include/qemu/int128.h     | 160 ----------------------------------------------
 target/ppc/cpu.h          |   2 -
 target/ppc/int_helper.c   | 159 ---------------------------------------------
 target/s390x/int_helper.c |   7 --
 util/host-utils.c         | 135 --------------------------------------
 7 files changed, 4 insertions(+), 526 deletions(-)

diff --git a/configure b/configure
index f1e305e..14e9722 100755
--- a/configure
+++ b/configure
@@ -5137,35 +5137,11 @@ EOF
   fi
 fi
 
-########################################
-# check if __[u]int128_t is usable.
-
-int128=no
-cat > $TMPC << EOF
-#if defined(__clang_major__) && defined(__clang_minor__)
-# if ((__clang_major__ < 3) || (__clang_major__ == 3) && (__clang_minor__ < 2))
-#  error __int128_t does not work in CLANG before 3.2
-# endif
-#endif
-__int128_t a;
-__uint128_t b;
-int main (void) {
-  a = a + b;
-  b = a * b;
-  a = a * a;
-  return 0;
-}
-EOF
-if compile_prog "" "" ; then
-    int128=yes
-fi
-
 #########################################
 # See if 128-bit atomic operations are supported.
 
 atomic128=no
-if test "$int128" = "yes"; then
-  cat > $TMPC << EOF
+cat > $TMPC << EOF
 int main(void)
 {
   unsigned __int128 x = 0, y = 0;
@@ -5175,13 +5151,12 @@ int main(void)
   return 0;
 }
 EOF
-  if compile_prog "" "" ; then
-    atomic128=yes
-  fi
+if compile_prog "" "" ; then
+  atomic128=yes
 fi
 
 cmpxchg128=no
-if test "$int128" = yes -a "$atomic128" = no; then
+if test "$atomic128" = no; then
   cat > $TMPC << EOF
 int main(void)
 {
@@ -6708,10 +6683,6 @@ if test "$cpuid_h" = "yes" ; then
   echo "CONFIG_CPUID_H=y" >> $config_host_mak
 fi
 
-if test "$int128" = "yes" ; then
-  echo "CONFIG_INT128=y" >> $config_host_mak
-fi
-
 if test "$atomic128" = "yes" ; then
   echo "CONFIG_ATOMIC128=y" >> $config_host_mak
 fi
diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 38da849..25ba3e8 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -28,7 +28,6 @@
 
 #include "qemu/bswap.h"
 
-#ifdef CONFIG_INT128
 static inline void mulu64(uint64_t *plow, uint64_t *phigh,
                           uint64_t a, uint64_t b)
 {
@@ -76,35 +75,6 @@ static inline int divs128(int64_t *plow, int64_t *phigh, int64_t divisor)
         return result != *plow;
     }
 }
-#else
-void muls64(uint64_t *phigh, uint64_t *plow, int64_t a, int64_t b);
-void mulu64(uint64_t *phigh, uint64_t *plow, uint64_t a, uint64_t b);
-int divu128(uint64_t *plow, uint64_t *phigh, uint64_t divisor);
-int divs128(int64_t *plow, int64_t *phigh, int64_t divisor);
-
-static inline uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c)
-{
-    union {
-        uint64_t ll;
-        struct {
-#ifdef HOST_WORDS_BIGENDIAN
-            uint32_t high, low;
-#else
-            uint32_t low, high;
-#endif
-        } l;
-    } u, res;
-    uint64_t rl, rh;
-
-    u.ll = a;
-    rl = (uint64_t)u.l.low * (uint64_t)b;
-    rh = (uint64_t)u.l.high * (uint64_t)b;
-    rh += (rl >> 32);
-    res.l.high = rh / c;
-    res.l.low = (((rh % c) << 32) + (rl & 0xffffffff)) / c;
-    return res.ll;
-}
-#endif
 
 /**
  * clz32 - count leading zeros in a 32-bit value.
diff --git a/include/qemu/int128.h b/include/qemu/int128.h
index 5c9890d..8eac3f8 100644
--- a/include/qemu/int128.h
+++ b/include/qemu/int128.h
@@ -1,7 +1,6 @@
 #ifndef INT128_H
 #define INT128_H
 
-#ifdef CONFIG_INT128
 #include "qemu/bswap.h"
 
 typedef __int128_t Int128;
@@ -143,163 +142,4 @@ static inline Int128 bswap128(Int128 a)
     return int128_make128(bswap64(int128_gethi(a)), bswap64(int128_getlo(a)));
 }
 
-#else /* !CONFIG_INT128 */
-
-typedef struct Int128 Int128;
-
-struct Int128 {
-    uint64_t lo;
-    int64_t hi;
-};
-
-static inline Int128 int128_make64(uint64_t a)
-{
-    return (Int128) { a, 0 };
-}
-
-static inline Int128 int128_make128(uint64_t lo, uint64_t hi)
-{
-    return (Int128) { lo, hi };
-}
-
-static inline uint64_t int128_get64(Int128 a)
-{
-    assert(!a.hi);
-    return a.lo;
-}
-
-static inline uint64_t int128_getlo(Int128 a)
-{
-    return a.lo;
-}
-
-static inline int64_t int128_gethi(Int128 a)
-{
-    return a.hi;
-}
-
-static inline Int128 int128_zero(void)
-{
-    return int128_make64(0);
-}
-
-static inline Int128 int128_one(void)
-{
-    return int128_make64(1);
-}
-
-static inline Int128 int128_2_64(void)
-{
-    return (Int128) { 0, 1 };
-}
-
-static inline Int128 int128_exts64(int64_t a)
-{
-    return (Int128) { .lo = a, .hi = (a < 0) ? -1 : 0 };
-}
-
-static inline Int128 int128_and(Int128 a, Int128 b)
-{
-    return (Int128) { a.lo & b.lo, a.hi & b.hi };
-}
-
-static inline Int128 int128_rshift(Int128 a, int n)
-{
-    int64_t h;
-    if (!n) {
-        return a;
-    }
-    h = a.hi >> (n & 63);
-    if (n >= 64) {
-        return int128_make128(h, h >> 63);
-    } else {
-        return int128_make128((a.lo >> n) | ((uint64_t)a.hi << (64 - n)), h);
-    }
-}
-
-static inline Int128 int128_add(Int128 a, Int128 b)
-{
-    uint64_t lo = a.lo + b.lo;
-
-    /* a.lo <= a.lo + b.lo < a.lo + k (k is the base, 2^64).  Hence,
-     * a.lo + b.lo >= k implies 0 <= lo = a.lo + b.lo - k < a.lo.
-     * Similarly, a.lo + b.lo < k implies a.lo <= lo = a.lo + b.lo < k.
-     *
-     * So the carry is lo < a.lo.
-     */
-    return int128_make128(lo, (uint64_t)a.hi + b.hi + (lo < a.lo));
-}
-
-static inline Int128 int128_neg(Int128 a)
-{
-    uint64_t lo = -a.lo;
-    return int128_make128(lo, ~(uint64_t)a.hi + !lo);
-}
-
-static inline Int128 int128_sub(Int128 a, Int128 b)
-{
-    return int128_make128(a.lo - b.lo, (uint64_t)a.hi - b.hi - (a.lo < b.lo));
-}
-
-static inline bool int128_nonneg(Int128 a)
-{
-    return a.hi >= 0;
-}
-
-static inline bool int128_eq(Int128 a, Int128 b)
-{
-    return a.lo == b.lo && a.hi == b.hi;
-}
-
-static inline bool int128_ne(Int128 a, Int128 b)
-{
-    return !int128_eq(a, b);
-}
-
-static inline bool int128_ge(Int128 a, Int128 b)
-{
-    return a.hi > b.hi || (a.hi == b.hi && a.lo >= b.lo);
-}
-
-static inline bool int128_lt(Int128 a, Int128 b)
-{
-    return !int128_ge(a, b);
-}
-
-static inline bool int128_le(Int128 a, Int128 b)
-{
-    return int128_ge(b, a);
-}
-
-static inline bool int128_gt(Int128 a, Int128 b)
-{
-    return !int128_le(a, b);
-}
-
-static inline bool int128_nz(Int128 a)
-{
-    return a.lo || a.hi;
-}
-
-static inline Int128 int128_min(Int128 a, Int128 b)
-{
-    return int128_le(a, b) ? a : b;
-}
-
-static inline Int128 int128_max(Int128 a, Int128 b)
-{
-    return int128_ge(a, b) ? a : b;
-}
-
-static inline void int128_addto(Int128 *a, Int128 b)
-{
-    *a = int128_add(*a, b);
-}
-
-static inline void int128_subfrom(Int128 *a, Int128 b)
-{
-    *a = int128_sub(*a, b);
-}
-
-#endif /* CONFIG_INT128 */
 #endif /* INT128_H */
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index ab68abe..858f121 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -265,9 +265,7 @@ union ppc_avr_t {
     int32_t s32[4];
     uint64_t u64[2];
     int64_t s64[2];
-#ifdef CONFIG_INT128
     __uint128_t u128;
-#endif
     Int128 s128;
 };
 
diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c
index fcac90a..00c65bd 100644
--- a/target/ppc/int_helper.c
+++ b/target/ppc/int_helper.c
@@ -1550,8 +1550,6 @@ PMSUM(vpmsumw, u32, u64, uint64_t)
 
 void helper_vpmsumd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
 {
-
-#ifdef CONFIG_INT128
     int i, j;
     __uint128_t prod[2];
 
@@ -1565,32 +1563,6 @@ void helper_vpmsumd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
     }
 
     r->u128 = prod[0] ^ prod[1];
-
-#else
-    int i, j;
-    ppc_avr_t prod[2];
-
-    VECTOR_FOR_INORDER_I(i, u64) {
-        prod[i].u64[LO_IDX] = prod[i].u64[HI_IDX] = 0;
-        for (j = 0; j < 64; j++) {
-            if (a->u64[i] & (1ull<<j)) {
-                ppc_avr_t bshift;
-                if (j == 0) {
-                    bshift.u64[HI_IDX] = 0;
-                    bshift.u64[LO_IDX] = b->u64[i];
-                } else {
-                    bshift.u64[HI_IDX] = b->u64[i] >> (64-j);
-                    bshift.u64[LO_IDX] = b->u64[i] << j;
-                }
-                prod[i].u64[LO_IDX] ^= bshift.u64[LO_IDX];
-                prod[i].u64[HI_IDX] ^= bshift.u64[HI_IDX];
-            }
-        }
-    }
-
-    r->u64[LO_IDX] = prod[0].u64[LO_IDX] ^ prod[1].u64[LO_IDX];
-    r->u64[HI_IDX] = prod[0].u64[HI_IDX] ^ prod[1].u64[HI_IDX];
-#endif
 }
 
 
@@ -2354,183 +2326,52 @@ VGENERIC_DO(popcntd, u64)
 #define QW_ONE { .u64 = { 1, 0 } }
 #endif
 
-#ifndef CONFIG_INT128
-
-static inline void avr_qw_not(ppc_avr_t *t, ppc_avr_t a)
-{
-    t->u64[0] = ~a.u64[0];
-    t->u64[1] = ~a.u64[1];
-}
-
-static int avr_qw_cmpu(ppc_avr_t a, ppc_avr_t b)
-{
-    if (a.u64[HI_IDX] < b.u64[HI_IDX]) {
-        return -1;
-    } else if (a.u64[HI_IDX] > b.u64[HI_IDX]) {
-        return 1;
-    } else if (a.u64[LO_IDX] < b.u64[LO_IDX]) {
-        return -1;
-    } else if (a.u64[LO_IDX] > b.u64[LO_IDX]) {
-        return 1;
-    } else {
-        return 0;
-    }
-}
-
-static void avr_qw_add(ppc_avr_t *t, ppc_avr_t a, ppc_avr_t b)
-{
-    t->u64[LO_IDX] = a.u64[LO_IDX] + b.u64[LO_IDX];
-    t->u64[HI_IDX] = a.u64[HI_IDX] + b.u64[HI_IDX] +
-                     (~a.u64[LO_IDX] < b.u64[LO_IDX]);
-}
-
-static int avr_qw_addc(ppc_avr_t *t, ppc_avr_t a, ppc_avr_t b)
-{
-    ppc_avr_t not_a;
-    t->u64[LO_IDX] = a.u64[LO_IDX] + b.u64[LO_IDX];
-    t->u64[HI_IDX] = a.u64[HI_IDX] + b.u64[HI_IDX] +
-                     (~a.u64[LO_IDX] < b.u64[LO_IDX]);
-    avr_qw_not(&not_a, a);
-    return avr_qw_cmpu(not_a, b) < 0;
-}
-
-#endif
-
 void helper_vadduqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
 {
-#ifdef CONFIG_INT128
     r->u128 = a->u128 + b->u128;
-#else
-    avr_qw_add(r, *a, *b);
-#endif
 }
 
 void helper_vaddeuqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
 {
-#ifdef CONFIG_INT128
     r->u128 = a->u128 + b->u128 + (c->u128 & 1);
-#else
-
-    if (c->u64[LO_IDX] & 1) {
-        ppc_avr_t tmp;
-
-        tmp.u64[HI_IDX] = 0;
-        tmp.u64[LO_IDX] = c->u64[LO_IDX] & 1;
-        avr_qw_add(&tmp, *a, tmp);
-        avr_qw_add(r, tmp, *b);
-    } else {
-        avr_qw_add(r, *a, *b);
-    }
-#endif
 }
 
 void helper_vaddcuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
 {
-#ifdef CONFIG_INT128
     r->u128 = (~a->u128 < b->u128);
-#else
-    ppc_avr_t not_a;
-
-    avr_qw_not(&not_a, *a);
-
-    r->u64[HI_IDX] = 0;
-    r->u64[LO_IDX] = (avr_qw_cmpu(not_a, *b) < 0);
-#endif
 }
 
 void helper_vaddecuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
 {
-#ifdef CONFIG_INT128
     int carry_out = (~a->u128 < b->u128);
     if (!carry_out && (c->u128 & 1)) {
         carry_out = ((a->u128 + b->u128 + 1) == 0) &&
                     ((a->u128 != 0) || (b->u128 != 0));
     }
     r->u128 = carry_out;
-#else
-
-    int carry_in = c->u64[LO_IDX] & 1;
-    int carry_out = 0;
-    ppc_avr_t tmp;
-
-    carry_out = avr_qw_addc(&tmp, *a, *b);
-
-    if (!carry_out && carry_in) {
-        ppc_avr_t one = QW_ONE;
-        carry_out = avr_qw_addc(&tmp, tmp, one);
-    }
-    r->u64[HI_IDX] = 0;
-    r->u64[LO_IDX] = carry_out;
-#endif
 }
 
 void helper_vsubuqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
 {
-#ifdef CONFIG_INT128
     r->u128 = a->u128 - b->u128;
-#else
-    ppc_avr_t tmp;
-    ppc_avr_t one = QW_ONE;
-
-    avr_qw_not(&tmp, *b);
-    avr_qw_add(&tmp, *a, tmp);
-    avr_qw_add(r, tmp, one);
-#endif
 }
 
 void helper_vsubeuqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
 {
-#ifdef CONFIG_INT128
     r->u128 = a->u128 + ~b->u128 + (c->u128 & 1);
-#else
-    ppc_avr_t tmp, sum;
-
-    avr_qw_not(&tmp, *b);
-    avr_qw_add(&sum, *a, tmp);
-
-    tmp.u64[HI_IDX] = 0;
-    tmp.u64[LO_IDX] = c->u64[LO_IDX] & 1;
-    avr_qw_add(r, sum, tmp);
-#endif
 }
 
 void helper_vsubcuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
 {
-#ifdef CONFIG_INT128
     r->u128 = (~a->u128 < ~b->u128) ||
                  (a->u128 + ~b->u128 == (__uint128_t)-1);
-#else
-    int carry = (avr_qw_cmpu(*a, *b) > 0);
-    if (!carry) {
-        ppc_avr_t tmp;
-        avr_qw_not(&tmp, *b);
-        avr_qw_add(&tmp, *a, tmp);
-        carry = ((tmp.s64[HI_IDX] == -1ull) && (tmp.s64[LO_IDX] == -1ull));
-    }
-    r->u64[HI_IDX] = 0;
-    r->u64[LO_IDX] = carry;
-#endif
 }
 
 void helper_vsubecuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
 {
-#ifdef CONFIG_INT128
     r->u128 =
         (~a->u128 < ~b->u128) ||
         ((c->u128 & 1) && (a->u128 + ~b->u128 == (__uint128_t)-1));
-#else
-    int carry_in = c->u64[LO_IDX] & 1;
-    int carry_out = (avr_qw_cmpu(*a, *b) > 0);
-    if (!carry_out && carry_in) {
-        ppc_avr_t tmp;
-        avr_qw_not(&tmp, *b);
-        avr_qw_add(&tmp, *a, tmp);
-        carry_out = ((tmp.u64[HI_IDX] == -1ull) && (tmp.u64[LO_IDX] == -1ull));
-    }
-
-    r->u64[HI_IDX] = 0;
-    r->u64[LO_IDX] = carry_out;
-#endif
 }
 
 #define BCD_PLUS_PREF_1 0xC
diff --git a/target/s390x/int_helper.c b/target/s390x/int_helper.c
index abf77a9..c8cfb93 100644
--- a/target/s390x/int_helper.c
+++ b/target/s390x/int_helper.c
@@ -100,7 +100,6 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah, uint64_t al,
         ret = al / b;
     } else {
         /* ??? Move i386 idivq helper to host-utils.  */
-#ifdef CONFIG_INT128
         __uint128_t a = ((__uint128_t)ah << 64) | al;
         __uint128_t q = a / b;
         env->retxl = a % b;
@@ -108,12 +107,6 @@ uint64_t HELPER(divu64)(CPUS390XState *env, uint64_t ah, uint64_t al,
         if (ret != q) {
             s390_program_interrupt(env, PGM_FIXPT_DIVIDE, ILEN_AUTO, GETPC());
         }
-#else
-        S390CPU *cpu = s390_env_get_cpu(env);
-        /* 32-bit hosts would need special wrapper functionality - just abort if
-           we encounter such a case; it's very unlikely anyways. */
-        cpu_abort(CPU(cpu), "128 -> 64/64 division not implemented\n");
-#endif
     }
     return ret;
 }
diff --git a/util/host-utils.c b/util/host-utils.c
index 7b93220..18fa1d0 100644
--- a/util/host-utils.c
+++ b/util/host-utils.c
@@ -26,141 +26,6 @@
 #include "qemu/osdep.h"
 #include "qemu/host-utils.h"
 
-#ifndef CONFIG_INT128
-/* Long integer helpers */
-static inline void mul64(uint64_t *plow, uint64_t *phigh,
-                         uint64_t a, uint64_t b)
-{
-    typedef union {
-        uint64_t ll;
-        struct {
-#ifdef HOST_WORDS_BIGENDIAN
-            uint32_t high, low;
-#else
-            uint32_t low, high;
-#endif
-        } l;
-    } LL;
-    LL rl, rm, rn, rh, a0, b0;
-    uint64_t c;
-
-    a0.ll = a;
-    b0.ll = b;
-
-    rl.ll = (uint64_t)a0.l.low * b0.l.low;
-    rm.ll = (uint64_t)a0.l.low * b0.l.high;
-    rn.ll = (uint64_t)a0.l.high * b0.l.low;
-    rh.ll = (uint64_t)a0.l.high * b0.l.high;
-
-    c = (uint64_t)rl.l.high + rm.l.low + rn.l.low;
-    rl.l.high = c;
-    c >>= 32;
-    c = c + rm.l.high + rn.l.high + rh.l.low;
-    rh.l.low = c;
-    rh.l.high += (uint32_t)(c >> 32);
-
-    *plow = rl.ll;
-    *phigh = rh.ll;
-}
-
-/* Unsigned 64x64 -> 128 multiplication */
-void mulu64 (uint64_t *plow, uint64_t *phigh, uint64_t a, uint64_t b)
-{
-    mul64(plow, phigh, a, b);
-}
-
-/* Signed 64x64 -> 128 multiplication */
-void muls64 (uint64_t *plow, uint64_t *phigh, int64_t a, int64_t b)
-{
-    uint64_t rh;
-
-    mul64(plow, &rh, a, b);
-
-    /* Adjust for signs.  */
-    if (b < 0) {
-        rh -= a;
-    }
-    if (a < 0) {
-        rh -= b;
-    }
-    *phigh = rh;
-}
-
-/* Unsigned 128x64 division.  Returns 1 if overflow (divide by zero or */
-/* quotient exceeds 64 bits).  Otherwise returns quotient via plow and */
-/* remainder via phigh. */
-int divu128(uint64_t *plow, uint64_t *phigh, uint64_t divisor)
-{
-    uint64_t dhi = *phigh;
-    uint64_t dlo = *plow;
-    unsigned i;
-    uint64_t carry = 0;
-
-    if (divisor == 0) {
-        return 1;
-    } else if (dhi == 0) {
-        *plow  = dlo / divisor;
-        *phigh = dlo % divisor;
-        return 0;
-    } else if (dhi > divisor) {
-        return 1;
-    } else {
-
-        for (i = 0; i < 64; i++) {
-            carry = dhi >> 63;
-            dhi = (dhi << 1) | (dlo >> 63);
-            if (carry || (dhi >= divisor)) {
-                dhi -= divisor;
-                carry = 1;
-            } else {
-                carry = 0;
-            }
-            dlo = (dlo << 1) | carry;
-        }
-
-        *plow = dlo;
-        *phigh = dhi;
-        return 0;
-    }
-}
-
-int divs128(int64_t *plow, int64_t *phigh, int64_t divisor)
-{
-    int sgn_dvdnd = *phigh < 0;
-    int sgn_divsr = divisor < 0;
-    int overflow = 0;
-
-    if (sgn_dvdnd) {
-        *plow = ~(*plow);
-        *phigh = ~(*phigh);
-        if (*plow == (int64_t)-1) {
-            *plow = 0;
-            (*phigh)++;
-         } else {
-            (*plow)++;
-         }
-    }
-
-    if (sgn_divsr) {
-        divisor = 0 - divisor;
-    }
-
-    overflow = divu128((uint64_t *)plow, (uint64_t *)phigh, (uint64_t)divisor);
-
-    if (sgn_dvdnd  ^ sgn_divsr) {
-        *plow = 0 - *plow;
-    }
-
-    if (!overflow) {
-        if ((*plow < 0) ^ (sgn_dvdnd ^ sgn_divsr)) {
-            overflow = 1;
-        }
-    }
-
-    return overflow;
-}
-#endif
-
 /**
  * urshift - 128-bit Unsigned Right Shift.
  * @plow: in/out - lower 64-bit integer.
-- 
1.8.3.1

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

* [Qemu-devel] [PATCH for-4.0 3/7] configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012]
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version Thomas Huth
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 2/7] Remove support for compilers that can not do 128-bit arithmetics Thomas Huth
@ 2018-12-03 14:05 ` Thomas Huth
  2018-12-03 16:11   ` Richard Henderson
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 4/7] Remove QEMU_ARTIFICIAL macro Thomas Huth
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

Now that we require at least GCC 4.8, we don't need this als workaround
for 4.6 and 4.7 anymore.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 Makefile.target |  3 ---
 configure       | 27 ---------------------------
 2 files changed, 30 deletions(-)

diff --git a/Makefile.target b/Makefile.target
index 4d56298..44ec4b6 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -158,9 +158,6 @@ GENERATED_FILES += hmp-commands.h hmp-commands-info.h
 
 endif # CONFIG_SOFTMMU
 
-# Workaround for http://gcc.gnu.org/PR55489, see configure.
-%/translate.o: QEMU_CFLAGS += $(TRANSLATE_OPT_CFLAGS)
-
 dummy := $(call unnest-vars,,obj-y)
 all-obj-y := $(obj-y)
 
diff --git a/configure b/configure
index 14e9722..ba95f01 100755
--- a/configure
+++ b/configure
@@ -1930,32 +1930,6 @@ else
   QEMU_CFLAGS="$QEMU_CFLAGS -Wno-missing-braces"
 fi
 
-# Workaround for http://gcc.gnu.org/PR55489.  Happens with -fPIE/-fPIC and
-# large functions that use global variables.  The bug is in all releases of
-# GCC, but it became particularly acute in 4.6.x and 4.7.x.  It is fixed in
-# 4.7.3 and 4.8.0.  We should be able to delete this at the end of 2013.
-cat > $TMPC << EOF
-#if __GNUC__ == 4 && (__GNUC_MINOR__ == 6 || (__GNUC_MINOR__ == 7 && __GNUC_PATCHLEVEL__ <= 2))
-int main(void) { return 0; }
-#else
-#error No bug in this compiler.
-#endif
-EOF
-if compile_prog "-Werror -fno-gcse" "" ; then
-  TRANSLATE_OPT_CFLAGS=-fno-gcse
-fi
-
-if test "$static" = "yes" ; then
-  if test "$modules" = "yes" ; then
-    error_exit "static and modules are mutually incompatible"
-  fi
-  if test "$pie" = "yes" ; then
-    error_exit "static and pie are mutually incompatible"
-  else
-    pie="no"
-  fi
-fi
-
 # Unconditional check for compiler __thread support
   cat > $TMPC << EOF
 static __thread int tls_var;
@@ -6953,7 +6927,6 @@ echo "LIBS_QGA+=$libs_qga" >> $config_host_mak
 echo "TASN1_LIBS=$tasn1_libs" >> $config_host_mak
 echo "TASN1_CFLAGS=$tasn1_cflags" >> $config_host_mak
 echo "POD2MAN=$POD2MAN" >> $config_host_mak
-echo "TRANSLATE_OPT_CFLAGS=$TRANSLATE_OPT_CFLAGS" >> $config_host_mak
 if test "$gcov" = "yes" ; then
   echo "CONFIG_GCOV=y" >> $config_host_mak
   echo "GCOV=$gcov_tool" >> $config_host_mak
-- 
1.8.3.1

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

* [Qemu-devel] [PATCH for-4.0 4/7] Remove QEMU_ARTIFICIAL macro
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
                   ` (2 preceding siblings ...)
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 3/7] configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012] Thomas Huth
@ 2018-12-03 14:05 ` Thomas Huth
  2018-12-03 16:13   ` Richard Henderson
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 5/7] tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro Thomas Huth
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

The code that used it has already been removed a while ago with commit
dc41aa7d34989b552ef ("tcg: Remove GET_TCGV_* and MAKE_TCGV_*").

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 include/qemu/compiler.h    | 6 ------
 scripts/checkpatch.pl      | 1 -
 scripts/cocci-macro-file.h | 1 -
 3 files changed, 8 deletions(-)

diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index 6b92710..8337361 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -28,12 +28,6 @@
 
 #define QEMU_SENTINEL __attribute__((sentinel))
 
-#if QEMU_GNUC_PREREQ(4, 3)
-#define QEMU_ARTIFICIAL __attribute__((always_inline, artificial))
-#else
-#define QEMU_ARTIFICIAL
-#endif
-
 #if defined(_WIN32)
 # define QEMU_PACKED __attribute__((gcc_struct, packed))
 #else
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 60f6f89..a892a6c 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -202,7 +202,6 @@ our $Attribute	= qr{
 			QEMU_NORETURN|
 			QEMU_WARN_UNUSED_RESULT|
 			QEMU_SENTINEL|
-			QEMU_ARTIFICIAL|
 			QEMU_PACKED|
 			GCC_FMT_ATTR
 		  }x;
diff --git a/scripts/cocci-macro-file.h b/scripts/cocci-macro-file.h
index 9f2e72e..7e200a1 100644
--- a/scripts/cocci-macro-file.h
+++ b/scripts/cocci-macro-file.h
@@ -23,7 +23,6 @@
 #define QEMU_NORETURN __attribute__ ((__noreturn__))
 #define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
 #define QEMU_SENTINEL __attribute__((sentinel))
-#define QEMU_ARTIFICIAL __attribute__((always_inline, artificial))
 #define QEMU_PACKED __attribute__((gcc_struct, packed))
 
 #define cat(x,y) x ## y
-- 
1.8.3.1

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

* [Qemu-devel] [PATCH for-4.0 5/7] tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
                   ` (3 preceding siblings ...)
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 4/7] Remove QEMU_ARTIFICIAL macro Thomas Huth
@ 2018-12-03 14:05 ` Thomas Huth
  2018-12-03 16:13   ` Richard Henderson
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 6/7] audio/alsaaudio: Remove compiler check around pragma Thomas Huth
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

Both GCC v4.8 and Clang v3.4 support (our minimum versions) support
__builtin_unreachable(), so we can remove the version check here now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tcg/tcg.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/tcg/tcg.h b/tcg/tcg.h
index f4efbaa..f9a56a9 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -230,11 +230,9 @@ typedef uint64_t tcg_insn_unit;
 
 #if defined CONFIG_DEBUG_TCG || defined QEMU_STATIC_ANALYSIS
 # define tcg_debug_assert(X) do { assert(X); } while (0)
-#elif QEMU_GNUC_PREREQ(4, 5)
+#else
 # define tcg_debug_assert(X) \
     do { if (!(X)) { __builtin_unreachable(); } } while (0)
-#else
-# define tcg_debug_assert(X) do { (void)(X); } while (0)
 #endif
 
 typedef struct TCGRelocation {
-- 
1.8.3.1

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

* [Qemu-devel] [PATCH for-4.0 6/7] audio/alsaaudio: Remove compiler check around pragma
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
                   ` (4 preceding siblings ...)
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 5/7] tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro Thomas Huth
@ 2018-12-03 14:05 ` Thomas Huth
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 7/7] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" Thomas Huth
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

Both GCC v4.8 and Clang v3.4 support the -Waddress option, so we do
not need the compiler version check here anymore.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 audio/alsaaudio.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c
index 362a227..635be73 100644
--- a/audio/alsaaudio.c
+++ b/audio/alsaaudio.c
@@ -28,9 +28,7 @@
 #include "audio.h"
 #include "trace.h"
 
-#if QEMU_GNUC_PREREQ(4, 3)
 #pragma GCC diagnostic ignored "-Waddress"
-#endif
 
 #define AUDIO_CAP "alsa"
 #include "audio_int.h"
-- 
1.8.3.1

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

* [Qemu-devel] [PATCH for-4.0 7/7] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)"
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
                   ` (5 preceding siblings ...)
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 6/7] audio/alsaaudio: Remove compiler check around pragma Thomas Huth
@ 2018-12-03 14:05 ` Thomas Huth
  2018-12-03 16:20   ` Richard Henderson
  2018-12-03 17:36 ` [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions no-reply
  2018-12-04  2:36 ` no-reply
  8 siblings, 1 reply; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Daniel P. Berrangé, pbonzini, peter.maydell

Since we require GCC version 4.8 or newer now, we can be sure that
the builtin functions are always available on GCC. And for Clang,
we can check the availablility with __has_builtin instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 include/qemu/compiler.h   | 2 +-
 include/qemu/host-utils.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index 8337361..261842b 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -121,7 +121,7 @@
 #define __has_builtin(x) 0 /* compatibility with non-clang compilers */
 #endif
 
-#if __has_builtin(__builtin_assume_aligned) || QEMU_GNUC_PREREQ(4, 7)
+#if __has_builtin(__builtin_assume_aligned) || !defined(__clang__)
 #define HAS_ASSUME_ALIGNED
 #endif
 
diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 25ba3e8..0b3b79e 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -177,7 +177,7 @@ static inline int cto64(uint64_t val)
  */
 static inline int clrsb32(uint32_t val)
 {
-#if QEMU_GNUC_PREREQ(4, 7)
+#if __has_builtin(__builtin_clrsb) || !defined(__clang__)
     return __builtin_clrsb(val);
 #else
     return clz32(val ^ ((int32_t)val >> 1)) - 1;
@@ -193,7 +193,7 @@ static inline int clrsb32(uint32_t val)
  */
 static inline int clrsb64(uint64_t val)
 {
-#if QEMU_GNUC_PREREQ(4, 7)
+#if __has_builtin(__builtin_clrsbll) || !defined(__clang__)
     return __builtin_clrsbll(val);
 #else
     return clz64(val ^ ((int64_t)val >> 1)) - 1;
-- 
1.8.3.1

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

* Re: [Qemu-devel] [PATCH for-4.0 2/7] Remove support for compilers that can not do 128-bit arithmetics
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 2/7] Remove support for compilers that can not do 128-bit arithmetics Thomas Huth
@ 2018-12-03 14:11   ` Richard Henderson
  2018-12-03 14:16     ` Thomas Huth
  0 siblings, 1 reply; 23+ messages in thread
From: Richard Henderson @ 2018-12-03 14:11 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel; +Cc: Daniel P. Berrangé, pbonzini, peter.maydell

On 12/3/18 8:05 AM, Thomas Huth wrote:
> +++ b/include/qemu/host-utils.h
> @@ -28,7 +28,6 @@
>  
>  #include "qemu/bswap.h"
>  
> -#ifdef CONFIG_INT128
>  static inline void mulu64(uint64_t *plow, uint64_t *phigh,
>                            uint64_t a, uint64_t b)
>  {
> @@ -76,35 +75,6 @@ static inline int divs128(int64_t *plow, int64_t *phigh, int64_t divisor)
>          return result != *plow;
>      }
>  }
> -#else
> -void muls64(uint64_t *phigh, uint64_t *plow, int64_t a, int64_t b);
> -void mulu64(uint64_t *phigh, uint64_t *plow, uint64_t a, uint64_t b);

No, because __int128 support requires a 64-bit host.
This will not compile for a 32-bit host.


r~

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

* Re: [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version Thomas Huth
@ 2018-12-03 14:16   ` Daniel P. Berrangé
  2018-12-03 14:18     ` Peter Maydell
  2018-12-03 14:27     ` Thomas Huth
  2018-12-05 17:30   ` Philippe Mathieu-Daudé
  1 sibling, 2 replies; 23+ messages in thread
From: Daniel P. Berrangé @ 2018-12-03 14:16 UTC (permalink / raw)
  To: Thomas Huth; +Cc: qemu-devel, Richard Henderson, pbonzini, peter.maydell

On Mon, Dec 03, 2018 at 03:05:31PM +0100, Thomas Huth wrote:
> So far we only had implicit requirements for the minimum compiler version,
> e.g. we require at least GCC 4.1 for the support of atomics. However,
> such old compiler versions are not tested anymore by the developers, so
> they are not really supported anymore. Since we recently declared explicitly
> what platforms we intend to support, we can also get more explicit on the
> compiler version now. The supported distributions use the following version
> of GCC:
> 
>       RHEL-7: 4.8.5
>       Debian (Stretch): 6.3.0
>       Debian (Jessie): 4.8.4
>       OpenBSD (ports): 4.9.4
>       FreeBSD (ports): 8.2.0
>       OpenSUSE Leap 15: 7.3.1
>       Ubuntu (Xenial): 5.3.1
>       macOS (Homebrew): 8.2.0
> 
> So we can safely assume GCC 4.8 these days. For Clang, the situation is
> a little bit more ambiguous, since it is sometimes not available in the
> main distros but rather third party repositories. At least Debian Jessie
> uses version 3.5, and EPEL7 for RHEL7 uses 3.4, so let's use 3.4 as
> minimum Clang version now - we still can adjust this later if necessary.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  configure | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/configure b/configure
> index 0a3c6a7..f1e305e 100755
> --- a/configure
> +++ b/configure
> @@ -1840,6 +1840,25 @@ if test "$bogus_os" = "yes"; then
>      error_exit "Unrecognized host OS (uname -s reports '$(uname -s)')"
>  fi
>  
> +# Check whether the compiler matches our minimum requirements:
> +cat > $TMPC << EOF
> +#if defined(__clang_major__) && defined(__clang_minor__)
> +# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)
> +#  error You need at least Clang v3.4 to compile QEMU
> +# endif

NB although this will succeed, it is not technically checking the
right thing on macOS platforms as their clang used a completely
different numbering scheme. It just happens to have larger numbers
than upstream clang, so we'll always succeed.

Compare clang on Ubuntu:

  https://travis-ci.org/qemu/qemu/jobs/460892603

  $ clang --version
  clang version 5.0.0 (tags/RELEASE_500/final)

with clang on macOS:

  https://travis-ci.org/qemu/qemu/jobs/460892611

  $ clang --version
  Apple LLVM version 9.1.0 (clang-902.0.39.2)

Fortunately there's a mapping recorded here:

   https://en.wikipedia.org/wiki/Xcode#Latest_versions

See "LLVM" and "CLang version string" columns.

IOW, to require clang >= 3.4 on macOS, we would need to require
their version >= 5.1

> +#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
> +# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8)
> +#  error You need at least GCC v4.8 to compile QEMU
> +# endif
> +#else
> +# error You either need GCC or Clang to compiler QEMU
> +#endif
> +int main (void) { return 0; }
> +EOF
> +if ! compile_prog "" "" ; then
> +    error_exit "You need at least GCC v4.8 or Clang v3.4 to compiler QEMU"
> +fi
> +
>  gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
>  gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
>  gcc_flags="-Wno-missing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
> -- 
> 1.8.3.1
> 

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

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

* Re: [Qemu-devel] [PATCH for-4.0 2/7] Remove support for compilers that can not do 128-bit arithmetics
  2018-12-03 14:11   ` Richard Henderson
@ 2018-12-03 14:16     ` Thomas Huth
  0 siblings, 0 replies; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:16 UTC (permalink / raw)
  To: Richard Henderson, qemu-devel
  Cc: Daniel P. Berrangé, pbonzini, peter.maydell

On 2018-12-03 15:11, Richard Henderson wrote:
> On 12/3/18 8:05 AM, Thomas Huth wrote:
>> +++ b/include/qemu/host-utils.h
>> @@ -28,7 +28,6 @@
>>  
>>  #include "qemu/bswap.h"
>>  
>> -#ifdef CONFIG_INT128
>>  static inline void mulu64(uint64_t *plow, uint64_t *phigh,
>>                            uint64_t a, uint64_t b)
>>  {
>> @@ -76,35 +75,6 @@ static inline int divs128(int64_t *plow, int64_t *phigh, int64_t divisor)
>>          return result != *plow;
>>      }
>>  }
>> -#else
>> -void muls64(uint64_t *phigh, uint64_t *plow, int64_t a, int64_t b);
>> -void mulu64(uint64_t *phigh, uint64_t *plow, uint64_t a, uint64_t b);
> 
> No, because __int128 support requires a 64-bit host.
> This will not compile for a 32-bit host.

Oops, my bad, you're right, of course. This would have been too easy, I
guess ... So it seems that the only thing that we could do here is to
get rid of the Clang version check in the configure script...

 Thomas

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

* Re: [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-03 14:16   ` Daniel P. Berrangé
@ 2018-12-03 14:18     ` Peter Maydell
  2018-12-03 14:27     ` Thomas Huth
  1 sibling, 0 replies; 23+ messages in thread
From: Peter Maydell @ 2018-12-03 14:18 UTC (permalink / raw)
  To: Daniel P. Berrange
  Cc: Thomas Huth, QEMU Developers, Richard Henderson, Paolo Bonzini

On Mon, 3 Dec 2018 at 14:16, Daniel P. Berrangé <berrange@redhat.com> wrote:
> NB although this will succeed, it is not technically checking the
> right thing on macOS platforms as their clang used a completely
> different numbering scheme. It just happens to have larger numbers
> than upstream clang, so we'll always succeed.
>
> Compare clang on Ubuntu:
>
>   https://travis-ci.org/qemu/qemu/jobs/460892603
>
>   $ clang --version
>   clang version 5.0.0 (tags/RELEASE_500/final)
>
> with clang on macOS:
>
>   https://travis-ci.org/qemu/qemu/jobs/460892611
>
>   $ clang --version
>   Apple LLVM version 9.1.0 (clang-902.0.39.2)
>
> Fortunately there's a mapping recorded here:
>
>    https://en.wikipedia.org/wiki/Xcode#Latest_versions
>
> See "LLVM" and "CLang version string" columns.

...but overall it is better to check for feature presence/absence
where possible rather than using a version number check.
clang does at least make this easier than it has historically
been for gcc.

thanks
-- PMM

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

* Re: [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-03 14:16   ` Daniel P. Berrangé
  2018-12-03 14:18     ` Peter Maydell
@ 2018-12-03 14:27     ` Thomas Huth
  2018-12-03 15:33       ` Daniel P. Berrangé
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Huth @ 2018-12-03 14:27 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, pbonzini, peter.maydell

On 2018-12-03 15:16, Daniel P. Berrangé wrote:
> On Mon, Dec 03, 2018 at 03:05:31PM +0100, Thomas Huth wrote:
>> So far we only had implicit requirements for the minimum compiler version,
>> e.g. we require at least GCC 4.1 for the support of atomics. However,
>> such old compiler versions are not tested anymore by the developers, so
>> they are not really supported anymore. Since we recently declared explicitly
>> what platforms we intend to support, we can also get more explicit on the
>> compiler version now. The supported distributions use the following version
>> of GCC:
>>
>>       RHEL-7: 4.8.5
>>       Debian (Stretch): 6.3.0
>>       Debian (Jessie): 4.8.4
>>       OpenBSD (ports): 4.9.4
>>       FreeBSD (ports): 8.2.0
>>       OpenSUSE Leap 15: 7.3.1
>>       Ubuntu (Xenial): 5.3.1
>>       macOS (Homebrew): 8.2.0
>>
>> So we can safely assume GCC 4.8 these days. For Clang, the situation is
>> a little bit more ambiguous, since it is sometimes not available in the
>> main distros but rather third party repositories. At least Debian Jessie
>> uses version 3.5, and EPEL7 for RHEL7 uses 3.4, so let's use 3.4 as
>> minimum Clang version now - we still can adjust this later if necessary.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  configure | 19 +++++++++++++++++++
>>  1 file changed, 19 insertions(+)
>>
>> diff --git a/configure b/configure
>> index 0a3c6a7..f1e305e 100755
>> --- a/configure
>> +++ b/configure
>> @@ -1840,6 +1840,25 @@ if test "$bogus_os" = "yes"; then
>>      error_exit "Unrecognized host OS (uname -s reports '$(uname -s)')"
>>  fi
>>  
>> +# Check whether the compiler matches our minimum requirements:
>> +cat > $TMPC << EOF
>> +#if defined(__clang_major__) && defined(__clang_minor__)
>> +# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)
>> +#  error You need at least Clang v3.4 to compile QEMU
>> +# endif
> 
> NB although this will succeed, it is not technically checking the
> right thing on macOS platforms as their clang used a completely
> different numbering scheme. It just happens to have larger numbers
> than upstream clang, so we'll always succeed.

Does that only apply to the version string that is reported by "clang
--version" or does it also apply to the __clang_major/minor__ macros?

In the latter case, I think I could add a comment to the patch here.

I'm also not sure whether the LLVM version necessarily matches the Clang
version? In older versions, you can also see "4.2 (clang-425.0.28)
(based on LLVM 3.2svn)" in the tables there...

> IOW, to require clang >= 3.4 on macOS, we would need to require
> their version >= 5.1

If they also messed up the macros, I think we likely have a problem the
other way round: What upstream Clang version corresponds to the Apple
Clang version 3.4 ? ... but if I interpret the old table right, they
just started the confusion with 5.0, so I think the check above should
still be fine.

 Thomas

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

* Re: [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-03 14:27     ` Thomas Huth
@ 2018-12-03 15:33       ` Daniel P. Berrangé
  0 siblings, 0 replies; 23+ messages in thread
From: Daniel P. Berrangé @ 2018-12-03 15:33 UTC (permalink / raw)
  To: Thomas Huth; +Cc: qemu-devel, Richard Henderson, pbonzini, peter.maydell

On Mon, Dec 03, 2018 at 03:27:35PM +0100, Thomas Huth wrote:
> On 2018-12-03 15:16, Daniel P. Berrangé wrote:
> > On Mon, Dec 03, 2018 at 03:05:31PM +0100, Thomas Huth wrote:
> >> So far we only had implicit requirements for the minimum compiler version,
> >> e.g. we require at least GCC 4.1 for the support of atomics. However,
> >> such old compiler versions are not tested anymore by the developers, so
> >> they are not really supported anymore. Since we recently declared explicitly
> >> what platforms we intend to support, we can also get more explicit on the
> >> compiler version now. The supported distributions use the following version
> >> of GCC:
> >>
> >>       RHEL-7: 4.8.5
> >>       Debian (Stretch): 6.3.0
> >>       Debian (Jessie): 4.8.4
> >>       OpenBSD (ports): 4.9.4
> >>       FreeBSD (ports): 8.2.0
> >>       OpenSUSE Leap 15: 7.3.1
> >>       Ubuntu (Xenial): 5.3.1
> >>       macOS (Homebrew): 8.2.0
> >>
> >> So we can safely assume GCC 4.8 these days. For Clang, the situation is
> >> a little bit more ambiguous, since it is sometimes not available in the
> >> main distros but rather third party repositories. At least Debian Jessie
> >> uses version 3.5, and EPEL7 for RHEL7 uses 3.4, so let's use 3.4 as
> >> minimum Clang version now - we still can adjust this later if necessary.
> >>
> >> Signed-off-by: Thomas Huth <thuth@redhat.com>
> >> ---
> >>  configure | 19 +++++++++++++++++++
> >>  1 file changed, 19 insertions(+)
> >>
> >> diff --git a/configure b/configure
> >> index 0a3c6a7..f1e305e 100755
> >> --- a/configure
> >> +++ b/configure
> >> @@ -1840,6 +1840,25 @@ if test "$bogus_os" = "yes"; then
> >>      error_exit "Unrecognized host OS (uname -s reports '$(uname -s)')"
> >>  fi
> >>  
> >> +# Check whether the compiler matches our minimum requirements:
> >> +cat > $TMPC << EOF
> >> +#if defined(__clang_major__) && defined(__clang_minor__)
> >> +# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)
> >> +#  error You need at least Clang v3.4 to compile QEMU
> >> +# endif
> > 
> > NB although this will succeed, it is not technically checking the
> > right thing on macOS platforms as their clang used a completely
> > different numbering scheme. It just happens to have larger numbers
> > than upstream clang, so we'll always succeed.
> 
> Does that only apply to the version string that is reported by "clang
> --version" or does it also apply to the __clang_major/minor__ macros?
> 
> In the latter case, I think I could add a comment to the patch here.
> 
> I'm also not sure whether the LLVM version necessarily matches the Clang
> version? In older versions, you can also see "4.2 (clang-425.0.28)
> (based on LLVM 3.2svn)" in the tables there...

The first number in the clang version string is what we're interested
in, and that matches the XCode version number, and is what's reflected
in the __clang_major/minor__ macros.  The the LLVM version in the table
reflects what upstream release they forked the XCode version from.

> > IOW, to require clang >= 3.4 on macOS, we would need to require
> > their version >= 5.1
> 
> If they also messed up the macros, I think we likely have a problem the
> other way round: What upstream Clang version corresponds to the Apple
> Clang version 3.4 ? ... but if I interpret the old table right, they
> just started the confusion with 5.0, so I think the check above should
> still be fine.

I think you're mis-reading it. There is  no Apple Clang version 3.4 - at
least not in this table.

The earliest version Apple Clang version is 5.0 (in XCode 5.0.0), and
that corresponds to upstream CLang version 3.3

Effectively what this means is that we need a separate check for Apple's
version of CLang. We can't simply use __apple__ as that would fire if
someone had built upstream clang on macOS. Instead we need to toggle
on  __apple_build_version__ which is specific to Apple's fork

 #if defined(__clang_major__) && defined(__clang_minor__)
 #  ifdef __apple_build_version__
 #    if __clang_major__ < 5 || (__clang_major__ == 5 && __clang_minor__ < 1)
 #      error You need at least XCode CLang v5.1 to compile QEMU
 #    endif
 #  else
 #    if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 4)
 #      error You need at least Clang v3.4 to compile QEMU
 #    endif
 #  endif
 ....gcc....


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

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

* Re: [Qemu-devel] [PATCH for-4.0 3/7] configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012]
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 3/7] configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012] Thomas Huth
@ 2018-12-03 16:11   ` Richard Henderson
  0 siblings, 0 replies; 23+ messages in thread
From: Richard Henderson @ 2018-12-03 16:11 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel; +Cc: peter.maydell, pbonzini, Richard Henderson

On 12/3/18 8:05 AM, Thomas Huth wrote:
> Now that we require at least GCC 4.8, we don't need this als workaround
> for 4.6 and 4.7 anymore.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  Makefile.target |  3 ---
>  configure       | 27 ---------------------------
>  2 files changed, 30 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

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

* Re: [Qemu-devel] [PATCH for-4.0 4/7] Remove QEMU_ARTIFICIAL macro
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 4/7] Remove QEMU_ARTIFICIAL macro Thomas Huth
@ 2018-12-03 16:13   ` Richard Henderson
  0 siblings, 0 replies; 23+ messages in thread
From: Richard Henderson @ 2018-12-03 16:13 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel; +Cc: peter.maydell, pbonzini, Richard Henderson

On 12/3/18 8:05 AM, Thomas Huth wrote:
> The code that used it has already been removed a while ago with commit
> dc41aa7d34989b552ef ("tcg: Remove GET_TCGV_* and MAKE_TCGV_*").
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  include/qemu/compiler.h    | 6 ------
>  scripts/checkpatch.pl      | 1 -
>  scripts/cocci-macro-file.h | 1 -
>  3 files changed, 8 deletions(-)

Eh.  In theory this could be added to some of the other trivial interface
inline functions that we have, in order to ease the debugging experience.  But
since we're not actually doing that, removing this is also fine.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

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

* Re: [Qemu-devel] [PATCH for-4.0 5/7] tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 5/7] tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro Thomas Huth
@ 2018-12-03 16:13   ` Richard Henderson
  0 siblings, 0 replies; 23+ messages in thread
From: Richard Henderson @ 2018-12-03 16:13 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel; +Cc: peter.maydell, pbonzini, Richard Henderson

On 12/3/18 8:05 AM, Thomas Huth wrote:
> Both GCC v4.8 and Clang v3.4 support (our minimum versions) support
> __builtin_unreachable(), so we can remove the version check here now.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  tcg/tcg.h | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

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

* Re: [Qemu-devel] [PATCH for-4.0 7/7] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)"
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 7/7] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" Thomas Huth
@ 2018-12-03 16:20   ` Richard Henderson
  0 siblings, 0 replies; 23+ messages in thread
From: Richard Henderson @ 2018-12-03 16:20 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel; +Cc: peter.maydell, pbonzini, Richard Henderson

On 12/3/18 8:05 AM, Thomas Huth wrote:
> Since we require GCC version 4.8 or newer now, we can be sure that
> the builtin functions are always available on GCC. And for Clang,
> we can check the availablility with __has_builtin instead.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  include/qemu/compiler.h   | 2 +-
>  include/qemu/host-utils.h | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

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

* Re: [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
                   ` (6 preceding siblings ...)
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 7/7] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" Thomas Huth
@ 2018-12-03 17:36 ` no-reply
  2018-12-04  2:36 ` no-reply
  8 siblings, 0 replies; 23+ messages in thread
From: no-reply @ 2018-12-03 17:36 UTC (permalink / raw)
  To: thuth; +Cc: famz, qemu-devel, peter.maydell, pbonzini, rth

Hi,

This series failed docker-mingw@fedora 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 for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions
Message-id: 1543845937-300-1-git-send-email-thuth@redhat.com
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
time make docker-test-mingw@fedora SHOW_ENV=1 J=8
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20181203160840.15115-1-richard.henderson@linaro.org -> patchew/20181203160840.15115-1-richard.henderson@linaro.org
Switched to a new branch 'test'
f0ac2b3 includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)"
23c5dec audio/alsaaudio: Remove compiler check around pragma
bbb841d tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro
60294d6 Remove QEMU_ARTIFICIAL macro
0be5d0f configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012]
ac9a491 Remove support for compilers that can not do 128-bit arithmetics
1aa7779 configure: Add a test for the minimum compiler version

=== OUTPUT BEGIN ===
  BUILD   fedora
make[1]: Entering directory `/var/tmp/patchew-tester-tmp-qr875vmm/src'
  GEN     /var/tmp/patchew-tester-tmp-qr875vmm/src/docker-src.2018-12-03-12.28.49.24278/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-qr875vmm/src/docker-src.2018-12-03-12.28.49.24278/qemu.tar.vroot'...
done.
Checking out files:  49% (3178/6465)   
Checking out files:  50% (3233/6465)   
Checking out files:  51% (3298/6465)   
Checking out files:  52% (3362/6465)   
Checking out files:  53% (3427/6465)   
Checking out files:  54% (3492/6465)   
Checking out files:  55% (3556/6465)   
Checking out files:  56% (3621/6465)   
Checking out files:  57% (3686/6465)   
Checking out files:  58% (3750/6465)   
Checking out files:  59% (3815/6465)   
Checking out files:  60% (3879/6465)   
Checking out files:  61% (3944/6465)   
Checking out files:  62% (4009/6465)   
Checking out files:  63% (4073/6465)   
Checking out files:  64% (4138/6465)   
Checking out files:  65% (4203/6465)   
Checking out files:  66% (4267/6465)   
Checking out files:  67% (4332/6465)   
Checking out files:  68% (4397/6465)   
Checking out files:  69% (4461/6465)   
Checking out files:  70% (4526/6465)   
Checking out files:  71% (4591/6465)   
Checking out files:  72% (4655/6465)   
Checking out files:  73% (4720/6465)   
Checking out files:  74% (4785/6465)   
Checking out files:  75% (4849/6465)   
Checking out files:  76% (4914/6465)   
Checking out files:  77% (4979/6465)   
Checking out files:  78% (5043/6465)   
Checking out files:  79% (5108/6465)   
Checking out files:  80% (5172/6465)   
Checking out files:  81% (5237/6465)   
Checking out files:  82% (5302/6465)   
Checking out files:  83% (5366/6465)   
Checking out files:  84% (5431/6465)   
Checking out files:  85% (5496/6465)   
Checking out files:  86% (5560/6465)   
Checking out files:  87% (5625/6465)   
Checking out files:  88% (5690/6465)   
Checking out files:  89% (5754/6465)   
Checking out files:  90% (5819/6465)   
Checking out files:  91% (5884/6465)   
Checking out files:  92% (5948/6465)   
Checking out files:  93% (6013/6465)   
Checking out files:  94% (6078/6465)   
Checking out files:  95% (6142/6465)   
Checking out files:  96% (6207/6465)   
Checking out files:  97% (6272/6465)   
Checking out files:  98% (6336/6465)   
Checking out files:  99% (6401/6465)   
Checking out files: 100% (6465/6465)   
Checking out files: 100% (6465/6465), done.
Submodule 'dtc' (https://git.qemu.org/git/dtc.git) registered for path 'dtc'
Cloning into 'dtc'...
Submodule path 'dtc': checked out '88f18909db731a627456f26d779445f84e449536'
Submodule 'ui/keycodemapdb' (https://git.qemu.org/git/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into 'ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce'
  COPY    RUNNER
    RUN test-mingw in qemu:fedora 
Packages installed:
SDL2-devel-2.0.9-1.fc28.x86_64
bc-1.07.1-5.fc28.x86_64
bison-3.0.4-9.fc28.x86_64
bluez-libs-devel-5.50-1.fc28.x86_64
brlapi-devel-0.6.7-19.fc28.x86_64
bzip2-1.0.6-26.fc28.x86_64
bzip2-devel-1.0.6-26.fc28.x86_64
ccache-3.4.2-2.fc28.x86_64
clang-6.0.1-2.fc28.x86_64
device-mapper-multipath-devel-0.7.4-3.git07e7bd5.fc28.x86_64
findutils-4.6.0-19.fc28.x86_64
flex-2.6.1-7.fc28.x86_64
gcc-8.2.1-5.fc28.x86_64
gcc-c++-8.2.1-5.fc28.x86_64
gettext-0.19.8.1-14.fc28.x86_64
git-2.17.2-1.fc28.x86_64
glib2-devel-2.56.3-2.fc28.x86_64
glusterfs-api-devel-4.1.5-1.fc28.x86_64
gnutls-devel-3.6.4-1.fc28.x86_64
gtk3-devel-3.22.30-1.fc28.x86_64
hostname-3.20-3.fc28.x86_64
libaio-devel-0.3.110-11.fc28.x86_64
libasan-8.2.1-5.fc28.x86_64
libattr-devel-2.4.48-3.fc28.x86_64
libcap-devel-2.25-9.fc28.x86_64
libcap-ng-devel-0.7.9-4.fc28.x86_64
libcurl-devel-7.59.0-8.fc28.x86_64
libfdt-devel-1.4.7-1.fc28.x86_64
libpng-devel-1.6.34-6.fc28.x86_64
librbd-devel-12.2.8-1.fc28.x86_64
libssh2-devel-1.8.0-7.fc28.x86_64
libubsan-8.2.1-5.fc28.x86_64
libusbx-devel-1.0.22-1.fc28.x86_64
libxml2-devel-2.9.8-4.fc28.x86_64
llvm-6.0.1-8.fc28.x86_64
lzo-devel-2.08-12.fc28.x86_64
make-4.2.1-6.fc28.x86_64
mingw32-SDL2-2.0.9-1.fc28.noarch
mingw32-bzip2-1.0.6-9.fc27.noarch
mingw32-curl-7.57.0-1.fc28.noarch
mingw32-glib2-2.56.1-1.fc28.noarch
mingw32-gmp-6.1.2-2.fc27.noarch
mingw32-gnutls-3.6.3-1.fc28.noarch
mingw32-gtk3-3.22.30-1.fc28.noarch
mingw32-libjpeg-turbo-1.5.1-3.fc27.noarch
mingw32-libpng-1.6.29-2.fc27.noarch
mingw32-libssh2-1.8.0-3.fc27.noarch
mingw32-libtasn1-4.13-1.fc28.noarch
mingw32-nettle-3.4-1.fc28.noarch
mingw32-pixman-0.34.0-3.fc27.noarch
mingw32-pkg-config-0.28-9.fc27.x86_64
mingw64-SDL2-2.0.9-1.fc28.noarch
mingw64-bzip2-1.0.6-9.fc27.noarch
mingw64-curl-7.57.0-1.fc28.noarch
mingw64-glib2-2.56.1-1.fc28.noarch
mingw64-gmp-6.1.2-2.fc27.noarch
mingw64-gnutls-3.6.3-1.fc28.noarch
mingw64-gtk3-3.22.30-1.fc28.noarch
mingw64-libjpeg-turbo-1.5.1-3.fc27.noarch
mingw64-libpng-1.6.29-2.fc27.noarch
mingw64-libssh2-1.8.0-3.fc27.noarch
mingw64-libtasn1-4.13-1.fc28.noarch
mingw64-nettle-3.4-1.fc28.noarch
mingw64-pixman-0.34.0-3.fc27.noarch
mingw64-pkg-config-0.28-9.fc27.x86_64
ncurses-devel-6.1-5.20180224.fc28.x86_64
nettle-devel-3.4-2.fc28.x86_64
nss-devel-3.39.0-1.0.fc28.x86_64
numactl-devel-2.0.11-8.fc28.x86_64
package PyYAML is not installed
package libjpeg-devel is not installed
perl-5.26.2-414.fc28.x86_64
pixman-devel-0.34.0-8.fc28.x86_64
python3-3.6.6-1.fc28.x86_64
snappy-devel-1.1.7-5.fc28.x86_64
sparse-0.5.2-1.fc28.x86_64
spice-server-devel-0.14.0-4.fc28.x86_64
systemtap-sdt-devel-4.0-1.fc28.x86_64
tar-1.30-3.fc28.x86_64
usbredir-devel-0.8.0-1.fc28.x86_64
virglrenderer-devel-0.6.0-4.20170210git76b3da97b.fc28.x86_64
vte3-devel-0.36.5-6.fc28.x86_64
which-2.21-8.fc28.x86_64
xen-devel-4.10.2-2.fc28.x86_64
zlib-devel-1.2.11-8.fc28.x86_64

Environment variables:
TARGET_LIST=
PACKAGES=bc     bison     bluez-libs-devel     brlapi-devel     bzip2     bzip2-devel     ccache     clang     device-mapper-multipath-devel     findutils     flex     gcc     gcc-c++     gettext     git     glib2-devel     glusterfs-api-devel     gnutls-devel     gtk3-devel     hostname     libaio-devel     libasan     libattr-devel     libcap-devel     libcap-ng-devel     libcurl-devel     libfdt-devel     libjpeg-devel     libpng-devel     librbd-devel     libssh2-devel     libubsan     libusbx-devel     libxml2-devel     llvm     lzo-devel     make     mingw32-bzip2     mingw32-curl     mingw32-glib2     mingw32-gmp     mingw32-gnutls     mingw32-gtk3     mingw32-libjpeg-turbo     mingw32-libpng     mingw32-libssh2     mingw32-libtasn1     mingw32-nettle     mingw32-pixman     mingw32-pkg-config     mingw32-SDL2     mingw64-bzip2     mingw64-curl     mingw64-glib2     mingw64-gmp     mingw64-gnutls     mingw64-gtk3     mingw64-libjpeg-turbo     mingw64-libpng     mingw64-libssh2     mingw64-libtasn1     mingw64-nettle     mingw64-pixman     mingw64-pkg-config     mingw64-SDL2     ncurses-devel     nettle-devel     nss-devel     numactl-devel     perl     pixman-devel     python3     PyYAML     SDL2-devel     snappy-devel     sparse     spice-server-devel     systemtap-sdt-devel     tar     usbredir-devel     virglrenderer-devel     vte3-devel     which     xen-devel     zlib-devel
J=8
V=
HOSTNAME=80a1f5fee747
DEBUG=
SHOW_ENV=1
PWD=/
HOME=/home/patchew
CCACHE_DIR=/var/tmp/ccache
FBR=f28
DISTTAG=f28container
QEMU_CONFIGURE_OPTS=--python=/usr/bin/python3
FGC=f28
TEST_DIR=/tmp/qemu-test
SHLVL=1
FEATURES=mingw clang pyyaml asan dtc
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAKEFLAGS= -j8
EXTRA_CONFIGURE_OPTS=
_=/usr/bin/env

Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install --python=/usr/bin/python3 --cross-prefix=x86_64-w64-mingw32- --enable-trace-backends=simple --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=2.0
Install prefix    /tmp/qemu-test/install
BIOS directory    /tmp/qemu-test/install
firmware path     /tmp/qemu-test/install/share/qemu-firmware
binary directory  /tmp/qemu-test/install
library directory /tmp/qemu-test/install/lib
module directory  /tmp/qemu-test/install/lib
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory  /tmp/qemu-test/install
local state directory   queried at runtime
Windows SDK       no
Source path       /tmp/qemu-test/src
GIT binary        git
GIT submodules    
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            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g 
QEMU_CFLAGS       -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/pixman-1  -I$(SRC_PATH)/dtc/libfdt -Werror -DHAS_LIBSSH2_SFTP_FSYNC -I/usr/x86_64-w64-mingw32/sys-root/mingw/include  -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  -Wexpansion-to-defined -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/libpng16 
LDFLAGS           -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m64 -g 
QEMU_LDFLAGS      -L$(BUILD_DIR)/dtc/libfdt 
make              make
install           install
python            /usr/bin/python3 -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       x86_64-softmmu aarch64-softmmu
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
SDL support       yes (2.0.9)
GTK support       yes (3.22.30)
GTK GL support    no
VTE support       no 
TLS priority      NORMAL
GNUTLS support    yes
libgcrypt         no
nettle            yes (3.4)
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
Multipath 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
HVF support       no
WHPX support      no
TCG support       yes
TCG debug enabled no
TCG interpreter   no
malloc trim support no
RDMA support      no
PVRDMA support    no
fdt support       git
membarrier        no
preadv support    no
fdatasync         no
madvise           no
posix_madvise     no
posix_memalign    no
libcap-ng support no
vhost-net support no
vhost-crypto support no
vhost-scsi support no
vhost-vsock support no
vhost-user 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
mutex debugging   no
crypto afalg      no
GlusterFS support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   yes
TPM passthrough   no
TPM emulator      no
QOM debugging     yes
Live block migration yes
lzo support       no
snappy support    no
bzip2 support     yes
NUMA host support no
libxml2           no
tcmalloc support  no
jemalloc support  no
avx2 optimization yes
replication support yes
VxHS block device no
bochs support     yes
cloop support     yes
dmg support       yes
qcow v1 support   yes
vdi support       yes
vvfat support     yes
qed support       yes
parallels support yes
sheepdog support  yes
capstone          no
docker            no
libpmem support   no
libudev           no

NOTE: cross-compilers enabled:  'x86_64-w64-mingw32-gcc'
  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-gen
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-helpers.h
  GEN     trace/generated-helpers.c
  GEN     aarch64-softmmu/config-devices.mak
  GEN     x86_64-softmmu/config-devices.mak
  GEN     module_block.h
  GEN     ui/input-keymap-atset1-to-qcode.c
  GEN     ui/input-keymap-linux-to-qcode.c
  GEN     ui/input-keymap-qcode-to-atset1.c
  GEN     ui/input-keymap-qcode-to-atset2.c
  GEN     ui/input-keymap-qcode-to-atset3.c
  GEN     ui/input-keymap-qcode-to-linux.c
  GEN     ui/input-keymap-qcode-to-qnum.c
  GEN     ui/input-keymap-qcode-to-sun.c
  GEN     ui/input-keymap-qnum-to-qcode.c
  GEN     ui/input-keymap-usb-to-qcode.c
  GEN     ui/input-keymap-win32-to-qcode.c
  GEN     ui/input-keymap-x11-to-qcode.c
  GEN     ui/input-keymap-xorgevdev-to-qcode.c
  GEN     ui/input-keymap-xorgkbd-to-qcode.c
  GEN     ui/input-keymap-xorgxquartz-to-qcode.c
  GEN     ui/input-keymap-xorgxwin-to-qcode.c
  GEN     ui/input-keymap-osx-to-qcode.c
  GEN     trace-root.h
  GEN     tests/test-qapi-gen
  GEN     accel/kvm/trace.h
  GEN     accel/tcg/trace.h
  GEN     audio/trace.h
  GEN     block/trace.h
  GEN     chardev/trace.h
  GEN     crypto/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/audio/trace.h
  GEN     hw/block/trace.h
  GEN     hw/block/dataplane/trace.h
  GEN     hw/char/trace.h
  GEN     hw/display/trace.h
  GEN     hw/dma/trace.h
  GEN     hw/hppa/trace.h
  GEN     hw/i2c/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/ide/trace.h
  GEN     hw/input/trace.h
  GEN     hw/intc/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/misc/trace.h
  GEN     hw/misc/macio/trace.h
  GEN     hw/net/trace.h
  GEN     hw/nvram/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/pci-host/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/rdma/trace.h
  GEN     hw/rdma/vmw/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/scsi/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/sparc64/trace.h
  GEN     hw/timer/trace.h
  GEN     hw/tpm/trace.h
  GEN     hw/usb/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/virtio/trace.h
  GEN     hw/watchdog/trace.h
  GEN     hw/xen/trace.h
  GEN     io/trace.h
  GEN     linux-user/trace.h
  GEN     migration/trace.h
  GEN     nbd/trace.h
  GEN     net/trace.h
  GEN     qapi/trace.h
  GEN     qom/trace.h
  GEN     scsi/trace.h
  GEN     target/arm/trace.h
  GEN     target/i386/trace.h
  GEN     target/mips/trace.h
  GEN     target/ppc/trace.h
  GEN     target/s390x/trace.h
  GEN     target/sparc/trace.h
  GEN     ui/trace.h
  GEN     util/trace.h
  GEN     trace-root.c
  GEN     accel/kvm/trace.c
  GEN     accel/tcg/trace.c
  GEN     audio/trace.c
  GEN     block/trace.c
  GEN     chardev/trace.c
  GEN     crypto/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/acpi/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/display/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/hppa/trace.c
  GEN     hw/i2c/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/ide/trace.c
  GEN     hw/input/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/misc/macio/trace.c
  GEN     hw/net/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/pci/trace.c
  GEN     hw/pci-host/trace.c
  GEN     hw/ppc/trace.c
  GEN     hw/rdma/trace.c
  GEN     hw/rdma/vmw/trace.c
  GEN     hw/s390x/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/sparc64/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/tpm/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/vfio/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/watchdog/trace.c
  GEN     hw/xen/trace.c
  GEN     io/trace.c
  GEN     linux-user/trace.c
  GEN     migration/trace.c
  GEN     nbd/trace.c
  GEN     net/trace.c
  GEN     qapi/trace.c
  GEN     qom/trace.c
  GEN     scsi/trace.c
  GEN     target/arm/trace.c
  GEN     target/i386/trace.c
  GEN     target/mips/trace.c
  GEN     target/ppc/trace.c
  GEN     target/s390x/trace.c
  GEN     target/sparc/trace.c
  GEN     ui/trace.c
  GEN     util/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_memrsv.c
         DEP /tmp/qemu-test/src/dtc/tests/truncated_string.c
         DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
         DEP /tmp/qemu-test/src/dtc/tests/check_full.c
         DEP /tmp/qemu-test/src/dtc/tests/check_header.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
         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_states.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_cells2.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_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/fdtoverlay.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/dtc.c
         DEP /tmp/qemu-test/src/dtc/data.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_ro.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
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/qapi-gen
  CC      qapi/qapi-builtin-types.o
  CC      qapi/qapi-types.o
  CC      qapi/qapi-types-block-core.o
  CC      qapi/qapi-types-block.o
  CC      qapi/qapi-types-char.o
  CC      qapi/qapi-types-common.o
  CC      qapi/qapi-types-crypto.o
  CC      qapi/qapi-types-introspect.o
  CC      qapi/qapi-types-job.o
  CC      qapi/qapi-types-migration.o
  CC      qapi/qapi-types-misc.o
  CC      qapi/qapi-types-net.o
  CC      qapi/qapi-types-rocker.o
  CC      qapi/qapi-types-run-state.o
  CC      qapi/qapi-types-sockets.o
  CC      qapi/qapi-types-tpm.o
  CC      qapi/qapi-types-trace.o
  CC      qapi/qapi-types-transaction.o
  CC      qapi/qapi-types-ui.o
  CC      qapi/qapi-builtin-visit.o
  CC      qapi/qapi-visit.o
  CC      qapi/qapi-visit-block-core.o
  CC      qapi/qapi-visit-block.o
  CC      qapi/qapi-visit-char.o
  CC      qapi/qapi-visit-common.o
  CC      qapi/qapi-visit-crypto.o
  CC      qapi/qapi-visit-introspect.o
  CC      qapi/qapi-visit-job.o
  CC      qapi/qapi-visit-migration.o
  CC      qapi/qapi-visit-misc.o
  CC      qapi/qapi-visit-net.o
  CC      qapi/qapi-visit-rocker.o
  CC      qapi/qapi-visit-run-state.o
  CC      qapi/qapi-visit-sockets.o
  CC      qapi/qapi-visit-tpm.o
  CC      qapi/qapi-visit-trace.o
  CC      qapi/qapi-visit-transaction.o
  CC      qapi/qapi-visit-ui.o
  CC      qapi/qapi-events.o
  CC      qapi/qapi-events-block-core.o
  CC      qapi/qapi-events-block.o
  CC      qapi/qapi-events-char.o
  CC      qapi/qapi-events-common.o
  CC      qapi/qapi-events-crypto.o
  CC      qapi/qapi-events-introspect.o
  CC      qapi/qapi-events-job.o
  CC      qapi/qapi-events-migration.o
  CC      qapi/qapi-events-misc.o
  CC      qapi/qapi-events-net.o
  CC      qapi/qapi-events-rocker.o
  CC      qapi/qapi-events-run-state.o
  CC      qapi/qapi-events-sockets.o
  CC      qapi/qapi-events-tpm.o
  CC      qapi/qapi-events-trace.o
  CC      qapi/qapi-events-transaction.o
  CC      qapi/qapi-events-ui.o
  CC      qapi/qapi-introspect.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/qnum.o
  CC      qobject/qstring.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qbool.o
  CC      qobject/qlit.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      qobject/block-qdict.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/qemu-timer-common.o
  CC      util/bufferiszero.o
  CC      util/lockcnt.o
  CC      util/aiocb.o
  CC      util/async.o
  CC      util/aio-wait.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/host-utils.o
  CC      util/bitmap.o
  CC      util/bitops.o
  CC      util/hbitmap.o
  CC      util/fifo8.o
  CC      util/acl.o
  CC      util/cacheinfo.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/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/pagesize.o
  CC      util/qdist.o
  CC      util/qht.o
  CC      util/qsp.o
  CC      util/range.o
  CC      util/stats64.o
  CC      util/systemd.o
  CC      util/iova-tree.o
  CC      trace-root.o
  CC      accel/kvm/trace.o
  CC      accel/tcg/trace.o
  CC      audio/trace.o
  CC      block/trace.o
  CC      chardev/trace.o
  CC      crypto/trace.o
  CC      hw/9pfs/trace.o
  CC      hw/acpi/trace.o
  CC      hw/alpha/trace.o
  CC      hw/arm/trace.o
  CC      hw/audio/trace.o
  CC      hw/block/trace.o
  CC      hw/block/dataplane/trace.o
  CC      hw/char/trace.o
  CC      hw/display/trace.o
  CC      hw/dma/trace.o
  CC      hw/hppa/trace.o
  CC      hw/i2c/trace.o
  CC      hw/i386/trace.o
  CC      hw/i386/xen/trace.o
  CC      hw/ide/trace.o
  CC      hw/input/trace.o
  CC      hw/intc/trace.o
  CC      hw/isa/trace.o
  CC      hw/mem/trace.o
  CC      hw/misc/trace.o
  CC      hw/misc/macio/trace.o
  CC      hw/net/trace.o
  CC      hw/nvram/trace.o
  CC      hw/pci/trace.o
  CC      hw/pci-host/trace.o
  CC      hw/ppc/trace.o
  CC      hw/rdma/trace.o
  CC      hw/rdma/vmw/trace.o
  CC      hw/s390x/trace.o
  CC      hw/scsi/trace.o
  CC      hw/sd/trace.o
  CC      hw/sparc/trace.o
  CC      hw/sparc64/trace.o
  CC      hw/timer/trace.o
  CC      hw/tpm/trace.o
  CC      hw/usb/trace.o
  CC      hw/vfio/trace.o
  CC      hw/virtio/trace.o
  CC      hw/watchdog/trace.o
  CC      hw/xen/trace.o
  CC      io/trace.o
  CC      linux-user/trace.o
  CC      migration/trace.o
  CC      nbd/trace.o
  CC      net/trace.o
  CC      qapi/trace.o
  CC      qom/trace.o
  CC      scsi/trace.o
  CC      target/arm/trace.o
  CC      target/i386/trace.o
  CC      target/mips/trace.o
  CC      target/ppc/trace.o
  CC      target/s390x/trace.o
  CC      target/sparc/trace.o
  CC      ui/trace.o
  CC      util/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/change-state-handler.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/tpm.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_memory_device.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      stubs/pci-host-piix.o
  CC      stubs/ram-block.o
  CC      stubs/ramfb.o
  GEN     qemu-img-cmds.h
  CC      block.o
  CC      blockjob.o
  CC      job.o
  CC      qemu-io-cmds.o
  CC      replication.o
  CC      block/raw-format.o
  CC      block/vmdk.o
  CC      block/vpc.o
  CC      block/qcow.o
  CC      block/vdi.o
  CC      block/cloop.o
  CC      block/bochs.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/qcow2-bitmap.o
  CC      block/qed.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/blkdebug.o
  CC      block/blkverify.o
  CC      block/blkreplay.o
  CC      block/parallels.o
  CC      block/blklogwrites.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/mirror.o
  CC      block/commit.o
  CC      block/io.o
  CC      block/create.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/throttle.o
  CC      block/copy-on-read.o
  CC      block/crypto.o
  CC      nbd/server.o
  CC      nbd/client.o
  CC      nbd/common.o
  CC      scsi/utils.o
  CC      scsi/pr-manager-stub.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/tlscredspsk.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-tls.o
  CC      io/channel-watch.o
  CC      io/channel-websock.o
  CC      io/channel-util.o
  CC      io/dns-resolver.o
  CC      io/net-listener.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      qemu-edid.o
  CC      hw/display/edid-generate.o
  CC      blockdev.o
  CC      blockdev-nbd.o
  CC      bootdevice.o
  CC      iothread.o
  CC      job-qmp.o
  CC      qdev-monitor.o
  CC      device-hotplug.o
  CC      os-win32.o
  CC      bt-host.o
  CC      bt-vhci.o
  CC      dma-helpers.o
  CC      vl.o
  CC      tpm.o
  CC      device_tree.o
  CC      qapi/qapi-commands.o
  CC      qapi/qapi-commands-block-core.o
  CC      qapi/qapi-commands-block.o
  CC      qapi/qapi-commands-char.o
  CC      qapi/qapi-commands-common.o
  CC      qapi/qapi-commands-crypto.o
  CC      qapi/qapi-commands-introspect.o
  CC      qapi/qapi-commands-job.o
  CC      qapi/qapi-commands-migration.o
  CC      qapi/qapi-commands-misc.o
  CC      qapi/qapi-commands-net.o
  CC      qapi/qapi-commands-rocker.o
  CC      qapi/qapi-commands-run-state.o
  CC      qapi/qapi-commands-sockets.o
  CC      qapi/qapi-commands-tpm.o
  CC      qapi/qapi-commands-trace.o
  CC      qapi/qapi-commands-transaction.o
  CC      qapi/qapi-commands-ui.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/dsoundaudio.o
  CC      audio/audio_win_int.o
  CC      audio/wavcapture.o
  CC      backends/rng.o
  CC      backends/rng-egd.o
  CC      backends/tpm.o
  CC      backends/hostmem.o
  CC      backends/hostmem-ram.o
  CC      backends/cryptodev.o
  CC      backends/cryptodev-builtin.o
  CC      backends/cryptodev-vhost.o
  CC      block/stream.o
  CC      chardev/msmouse.o
  CC      chardev/wctablet.o
  CC      chardev/testdev.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/audio/soundhw.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/nrf51_uart.o
  CC      hw/char/parallel.o
  CC      hw/char/parallel-isa.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/cmsdk-apb-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/qdev-fw.o
  CC      hw/core/fw-path-provider.o
  CC      hw/core/irq.o
  CC      hw/core/hotplug.o
  CC      hw/core/nmi.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/qdev-properties-system.o
  CC      hw/core/register.o
  CC      hw/core/or-irq.o
  CC      hw/core/split-irq.o
  CC      hw/core/platform-bus.o
  CC      hw/core/generic-loader.o
  CC      hw/core/null-machine.o
  CC      hw/cpu/core.o
  CC      hw/display/ramfb.o
  CC      hw/display/ramfb-standalone.o
  CC      hw/display/ads7846.o
  CC      hw/display/cirrus_vga.o
  CC      hw/display/cirrus_vga_isa.o
  CC      hw/display/pl110.o
  CC      hw/display/sii9022.o
  CC      hw/display/ssd0303.o
  CC      hw/display/ssd0323.o
  CC      hw/display/vga-pci.o
  CC      hw/display/edid-region.o
  CC      hw/display/vga-isa.o
  CC      hw/display/vmware_vga.o
  CC      hw/display/bochs-display.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/xilinx_axidma.o
  CC      hw/dma/xlnx-zynq-devcfg.o
  CC      hw/dma/xlnx-zdma.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/ahci.o
  CC      hw/ide/ich.o
  CC      hw/ide/ahci-allwinner.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/virtio-input-hid.o
  CC      hw/intc/i8259_common.o
  CC      hw/intc/i8259.o
  CC      hw/intc/pl190.o
  CC      hw/intc/xlnx-pmu-iomod-intc.o
  CC      hw/intc/xlnx-zynqmp-ipi.o
  CC      hw/intc/imx_avic.o
  CC      hw/intc/imx_gpcv2.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/isa-superio.o
  CC      hw/isa/apm.o
  CC      hw/mem/pc-dimm.o
  CC      hw/mem/memory-device.o
  CC      hw/mem/nvdimm.o
  CC      hw/misc/applesmc.o
  CC      hw/misc/max111x.o
  CC      hw/misc/tmp105.o
  CC      hw/misc/tmp421.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/edu.o
  CC      hw/misc/pca9552.o
  CC      hw/misc/unimp.o
  CC      hw/misc/vmcoreinfo.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/xgmac.o
  CC      hw/net/ne2000-isa.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/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/net/can/can_sja1000.o
  CC      hw/net/can/can_kvaser_pci.o
  CC      hw/net/can/can_pcm3680_pci.o
  CC      hw/net/can/can_mioe3680_pci.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/pcie_pci_bridge.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-host/designware.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/emulation.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/ssi-sd.o
  CC      hw/sd/sd.o
  CC      hw/sd/core.o
  CC      hw/sd/sdmmc-internal.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/ssi/mss-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/xlnx-zynqmp-rtc.o
  CC      hw/timer/stm32f2xx_timer.o
  CC      hw/timer/aspeed_timer.o
  CC      hw/timer/cmsdk-apb-timer.o
  CC      hw/timer/cmsdk-apb-dualtimer.o
  CC      hw/timer/mss-timer.o
  CC      hw/tpm/tpm_util.o
  CC      hw/tpm/tpm_tis.o
  CC      hw/tpm/tpm_crb.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-xhci-nec.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/host-stub.o
  CC      hw/virtio/virtio-bus.o
  CC      hw/virtio/virtio-rng.o
  CC      hw/virtio/virtio-pci.o
  CC      hw/virtio/virtio-mmio.o
  CC      hw/virtio/vhost-stub.o
  CC      hw/watchdog/watchdog.o
  CC      hw/watchdog/cmsdk-apb-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/channel.o
  CC      migration/savevm.o
  CC      migration/colo.o
  CC      migration/colo-failover.o
  CC      migration/vmstate.o
  CC      migration/vmstate-types.o
  CC      migration/page_cache.o
  CC      migration/qemu-file.o
  CC      migration/global_state.o
  CC      migration/qemu-file-channel.o
  CC      migration/xbzrle.o
  CC      migration/postcopy-ram.o
  CC      migration/qjson.o
  CC      migration/block-dirty-bitmap.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/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      net/tap-win32.o
  CC      net/can/can_core.o
  CC      net/can/can_host.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/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/sdl2.o
  CC      ui/sdl2-input.o
  CC      ui/sdl2-2d.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
  CC      qga/commands.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_dma.raw
  BUILD   optionrom/linuxboot.raw
  BUILD   optionrom/kvmvapic.raw
  SIGN    optionrom/multiboot.bin
  SIGN    optionrom/linuxboot.bin
  SIGN    optionrom/linuxboot_dma.bin
  CC      qga/guest-agent-command-state.o
  SIGN    optionrom/kvmvapic.bin
  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-qapi-commands.o
  AR      libqemuutil.a
  CC      qemu-img.o
  LINK    qemu-io.exe
  LINK    qemu-edid.exe
  GEN     aarch64-softmmu/hmp-commands.h
  GEN     aarch64-softmmu/hmp-commands-info.h
  GEN     aarch64-softmmu/config-target.h
  GEN     x86_64-softmmu/config-target.h
  GEN     x86_64-softmmu/hmp-commands.h
  GEN     x86_64-softmmu/hmp-commands-info.h
  CC      aarch64-softmmu/exec.o
  CC      aarch64-softmmu/tcg/tcg-op-vec.o
  CC      aarch64-softmmu/tcg/tcg.o
  CC      aarch64-softmmu/tcg/tcg-op.o
  CC      aarch64-softmmu/tcg/tcg-op-gvec.o
  CC      x86_64-softmmu/exec.o
  CC      aarch64-softmmu/tcg/tcg-common.o
  LINK    qemu-img.exe
  CC      aarch64-softmmu/tcg/optimize.o
  CC      x86_64-softmmu/tcg/tcg.o
  CC      x86_64-softmmu/tcg/tcg-op.o
  CC      x86_64-softmmu/tcg/tcg-op-vec.o
  CC      aarch64-softmmu/disas.o
  CC      aarch64-softmmu/fpu/softfloat.o
  LINK    qemu-ga.exe
  CC      x86_64-softmmu/tcg/tcg-op-gvec.o
  GEN     aarch64-softmmu/gdbstub-xml.c
  CC      x86_64-softmmu/tcg/tcg-common.o
  CC      aarch64-softmmu/arch_init.o
  CC      aarch64-softmmu/cpus.o
  CC      x86_64-softmmu/tcg/optimize.o
  CC      x86_64-softmmu/fpu/softfloat.o
  CC      x86_64-softmmu/disas.o
  GEN     x86_64-softmmu/gdbstub-xml.c
  CC      aarch64-softmmu/monitor.o
  CC      x86_64-softmmu/arch_init.o
  CC      aarch64-softmmu/gdbstub.o
  CC      aarch64-softmmu/balloon.o
  CC      x86_64-softmmu/cpus.o
  CC      aarch64-softmmu/ioport.o
  CC      x86_64-softmmu/monitor.o
  CC      x86_64-softmmu/gdbstub.o
  CC      x86_64-softmmu/balloon.o
  CC      x86_64-softmmu/ioport.o
  CC      x86_64-softmmu/numa.o
  CC      aarch64-softmmu/numa.o
  CC      x86_64-softmmu/qtest.o
  CC      aarch64-softmmu/qtest.o
  CC      aarch64-softmmu/memory.o
  CC      x86_64-softmmu/memory.o
  CC      aarch64-softmmu/memory_mapping.o
  CC      x86_64-softmmu/memory_mapping.o
  CC      x86_64-softmmu/dump.o
  CC      aarch64-softmmu/dump.o
  CC      aarch64-softmmu/migration/ram.o
  CC      x86_64-softmmu/win_dump.o
  CC      x86_64-softmmu/migration/ram.o
  CC      x86_64-softmmu/accel/accel.o
  CC      aarch64-softmmu/accel/accel.o
  CC      x86_64-softmmu/accel/stubs/hvf-stub.o
  CC      aarch64-softmmu/accel/stubs/hax-stub.o
  CC      x86_64-softmmu/accel/stubs/whpx-stub.o
  CC      aarch64-softmmu/accel/stubs/hvf-stub.o
  CC      aarch64-softmmu/accel/stubs/whpx-stub.o
  CC      x86_64-softmmu/accel/stubs/kvm-stub.o
  CC      x86_64-softmmu/accel/tcg/tcg-all.o
  CC      aarch64-softmmu/accel/stubs/kvm-stub.o
  CC      aarch64-softmmu/accel/tcg/tcg-all.o
  CC      aarch64-softmmu/accel/tcg/cputlb.o
  CC      x86_64-softmmu/accel/tcg/cputlb.o
  CC      x86_64-softmmu/accel/tcg/tcg-runtime.o
  CC      aarch64-softmmu/accel/tcg/tcg-runtime.o
  CC      x86_64-softmmu/accel/tcg/tcg-runtime-gvec.o
  CC      aarch64-softmmu/accel/tcg/tcg-runtime-gvec.o
  CC      x86_64-softmmu/accel/tcg/cpu-exec.o
  CC      aarch64-softmmu/accel/tcg/cpu-exec.o
  CC      x86_64-softmmu/accel/tcg/cpu-exec-common.o
  CC      x86_64-softmmu/accel/tcg/translate-all.o
  CC      aarch64-softmmu/accel/tcg/translate-all.o
  CC      aarch64-softmmu/accel/tcg/cpu-exec-common.o
  CC      x86_64-softmmu/accel/tcg/translator.o
  CC      aarch64-softmmu/accel/tcg/translator.o
  CC      aarch64-softmmu/hw/adc/stm32f2xx_adc.o
  CC      x86_64-softmmu/hw/block/virtio-blk.o
  CC      aarch64-softmmu/hw/block/virtio-blk.o
  CC      aarch64-softmmu/hw/block/dataplane/virtio-blk.o
  CC      x86_64-softmmu/hw/block/dataplane/virtio-blk.o
  CC      aarch64-softmmu/hw/char/exynos4210_uart.o
  CC      x86_64-softmmu/hw/char/virtio-serial-bus.o
  CC      aarch64-softmmu/hw/char/omap_uart.o
  CC      aarch64-softmmu/hw/char/digic-uart.o
  CC      x86_64-softmmu/hw/display/vga.o
  CC      aarch64-softmmu/hw/char/stm32f2xx_usart.o
  CC      aarch64-softmmu/hw/char/bcm2835_aux.o
  CC      x86_64-softmmu/hw/display/virtio-gpu.o
  CC      aarch64-softmmu/hw/char/virtio-serial-bus.o
  CC      x86_64-softmmu/hw/display/virtio-gpu-3d.o
  CC      aarch64-softmmu/hw/cpu/arm11mpcore.o
  CC      aarch64-softmmu/hw/cpu/realview_mpcore.o
  CC      aarch64-softmmu/hw/cpu/a9mpcore.o
  CC      x86_64-softmmu/hw/display/virtio-gpu-pci.o
  CC      x86_64-softmmu/hw/display/virtio-vga.o
  CC      aarch64-softmmu/hw/cpu/a15mpcore.o
  CC      x86_64-softmmu/hw/intc/apic.o
  CC      x86_64-softmmu/hw/intc/apic_common.o
  CC      aarch64-softmmu/hw/display/omap_dss.o
  CC      aarch64-softmmu/hw/display/omap_lcdc.o
  CC      x86_64-softmmu/hw/intc/ioapic.o
  CC      x86_64-softmmu/hw/isa/lpc_ich9.o
  CC      x86_64-softmmu/hw/misc/pvpanic.o
  CC      aarch64-softmmu/hw/display/pxa2xx_lcd.o
  CC      x86_64-softmmu/hw/net/virtio-net.o
  CC      x86_64-softmmu/hw/net/vhost_net.o
  CC      aarch64-softmmu/hw/display/bcm2835_fb.o
  CC      x86_64-softmmu/hw/scsi/virtio-scsi.o
  CC      aarch64-softmmu/hw/display/vga.o
  CC      x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC      x86_64-softmmu/hw/timer/mc146818rtc.o
  CC      aarch64-softmmu/hw/display/virtio-gpu.o
  CC      x86_64-softmmu/hw/virtio/virtio.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-3d.o
  CC      x86_64-softmmu/hw/virtio/virtio-balloon.o
  CC      x86_64-softmmu/hw/virtio/virtio-crypto.o
  CC      aarch64-softmmu/hw/display/virtio-gpu-pci.o
  CC      x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
  CC      aarch64-softmmu/hw/display/dpcd.o
  CC      aarch64-softmmu/hw/display/xlnx_dp.o
  CC      aarch64-softmmu/hw/dma/xlnx_dpdma.o
  CC      aarch64-softmmu/hw/dma/omap_dma.o
  CC      aarch64-softmmu/hw/dma/soc_dma.o
  CC      aarch64-softmmu/hw/dma/pxa2xx_dma.o
  CC      x86_64-softmmu/hw/i386/multiboot.o
  CC      x86_64-softmmu/hw/i386/pc.o
  CC      aarch64-softmmu/hw/dma/bcm2835_dma.o
  CC      x86_64-softmmu/hw/i386/pc_piix.o
  CC      aarch64-softmmu/hw/gpio/omap_gpio.o
  CC      aarch64-softmmu/hw/gpio/imx_gpio.o
  CC      x86_64-softmmu/hw/i386/pc_q35.o
  CC      aarch64-softmmu/hw/gpio/bcm2835_gpio.o
  CC      x86_64-softmmu/hw/i386/pc_sysfw.o
  CC      aarch64-softmmu/hw/i2c/omap_i2c.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      x86_64-softmmu/hw/i386/amd_iommu.o
  CC      x86_64-softmmu/hw/i386/x86-iommu.o
  CC      x86_64-softmmu/hw/i386/intel_iommu.o
  CC      aarch64-softmmu/hw/intc/exynos4210_gic.o
  CC      aarch64-softmmu/hw/intc/exynos4210_combiner.o
  CC      x86_64-softmmu/hw/i386/vmport.o
  CC      aarch64-softmmu/hw/intc/omap_intc.o
  CC      aarch64-softmmu/hw/intc/bcm2835_ic.o
  CC      aarch64-softmmu/hw/intc/bcm2836_control.o
  CC      x86_64-softmmu/hw/i386/vmmouse.o
  CC      x86_64-softmmu/hw/i386/kvmvapic.o
  CC      aarch64-softmmu/hw/intc/allwinner-a10-pic.o
  CC      x86_64-softmmu/hw/i386/acpi-build.o
  CC      x86_64-softmmu/target/i386/helper.o
  CC      aarch64-softmmu/hw/intc/aspeed_vic.o
  CC      x86_64-softmmu/target/i386/cpu.o
  CC      aarch64-softmmu/hw/intc/arm_gicv3_cpuif.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      x86_64-softmmu/target/i386/gdbstub.o
  CC      aarch64-softmmu/hw/misc/exynos4210_clk.o
  CC      aarch64-softmmu/hw/misc/exynos4210_rng.o
  CC      x86_64-softmmu/target/i386/xsave_helper.o
  CC      x86_64-softmmu/target/i386/translate.o
  CC      x86_64-softmmu/target/i386/bpt_helper.o
  CC      x86_64-softmmu/target/i386/cc_helper.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      x86_64-softmmu/target/i386/excp_helper.o
  CC      aarch64-softmmu/hw/misc/imx6_src.o
  CC      aarch64-softmmu/hw/misc/imx6ul_ccm.o
  CC      x86_64-softmmu/target/i386/fpu_helper.o
  CC      aarch64-softmmu/hw/misc/imx7_ccm.o
  CC      x86_64-softmmu/target/i386/int_helper.o
  CC      aarch64-softmmu/hw/misc/imx2_wdt.o
  CC      aarch64-softmmu/hw/misc/imx7_snvs.o
  CC      aarch64-softmmu/hw/misc/imx7_gpr.o
  CC      x86_64-softmmu/target/i386/mem_helper.o
  CC      aarch64-softmmu/hw/misc/mst_fpga.o
  CC      x86_64-softmmu/target/i386/misc_helper.o
  CC      x86_64-softmmu/target/i386/mpx_helper.o
  CC      aarch64-softmmu/hw/misc/omap_gpmc.o
  CC      aarch64-softmmu/hw/misc/omap_clk.o
  CC      x86_64-softmmu/target/i386/seg_helper.o
  CC      aarch64-softmmu/hw/misc/omap_l4.o
  CC      x86_64-softmmu/target/i386/smm_helper.o
  CC      aarch64-softmmu/hw/misc/omap_sdrc.o
  CC      aarch64-softmmu/hw/misc/omap_tap.o
  CC      x86_64-softmmu/target/i386/svm_helper.o
  CC      aarch64-softmmu/hw/misc/bcm2835_mbox.o
  CC      x86_64-softmmu/target/i386/machine.o
  CC      x86_64-softmmu/target/i386/arch_memory_mapping.o
  CC      aarch64-softmmu/hw/misc/bcm2835_property.o
  CC      x86_64-softmmu/target/i386/arch_dump.o
  CC      aarch64-softmmu/hw/misc/bcm2835_rng.o
  CC      aarch64-softmmu/hw/misc/zynq_slcr.o
  CC      x86_64-softmmu/target/i386/monitor.o
  CC      x86_64-softmmu/target/i386/kvm-stub.o
  CC      x86_64-softmmu/target/i386/hyperv-stub.o
  CC      aarch64-softmmu/hw/misc/zynq-xadc.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/misc/stm32f2xx_syscfg.o
  CC      x86_64-softmmu/target/i386/sev-stub.o
  GEN     trace/generated-helpers.c
  CC      x86_64-softmmu/trace/control-target.o
  CC      aarch64-softmmu/hw/misc/mps2-fpgaio.o
  CC      x86_64-softmmu/gdbstub-xml.o
  CC      aarch64-softmmu/hw/misc/mps2-scc.o
  CC      x86_64-softmmu/trace/generated-helpers.o
  CC      aarch64-softmmu/hw/misc/tz-mpc.o
  CC      aarch64-softmmu/hw/misc/tz-msc.o
  CC      aarch64-softmmu/hw/misc/tz-ppc.o
  CC      aarch64-softmmu/hw/misc/iotkit-secctl.o
  CC      aarch64-softmmu/hw/misc/iotkit-sysctl.o
  CC      aarch64-softmmu/hw/misc/iotkit-sysinfo.o
  CC      aarch64-softmmu/hw/misc/auxbus.o
  CC      aarch64-softmmu/hw/misc/aspeed_scu.o
  LINK    x86_64-softmmu/qemu-system-x86_64w.exe
  CC      aarch64-softmmu/hw/misc/aspeed_sdmc.o
  CC      aarch64-softmmu/hw/misc/msf2-sysreg.o
  CC      aarch64-softmmu/hw/net/virtio-net.o
  CC      aarch64-softmmu/hw/net/vhost_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/sd/bcm2835_sdhost.o
  CC      aarch64-softmmu/hw/ssi/omap_spi.o
  GEN     x86_64-softmmu/qemu-system-x86_64.exe
  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/usb/chipidea.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/virt.o
  CC      aarch64-softmmu/hw/arm/sysbus-fdt.o
  CC      aarch64-softmmu/hw/arm/virt-acpi-build.o
  CC      aarch64-softmmu/hw/arm/digic_boards.o
  CC      aarch64-softmmu/hw/arm/exynos4_boards.o
  CC      aarch64-softmmu/hw/arm/highbank.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/netduino2.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/gumstix.o
  CC      aarch64-softmmu/hw/arm/spitz.o
  CC      aarch64-softmmu/hw/arm/tosa.o
  CC      aarch64-softmmu/hw/arm/z2.o
  CC      aarch64-softmmu/hw/arm/realview.o
  CC      aarch64-softmmu/hw/arm/stellaris.o
  CC      aarch64-softmmu/hw/arm/collie.o
  CC      aarch64-softmmu/hw/arm/vexpress.o
  CC      aarch64-softmmu/hw/arm/versatilepb.o
  CC      aarch64-softmmu/hw/arm/xilinx_zynq.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-zcu102.o
  CC      aarch64-softmmu/hw/arm/xlnx-versal.o
  CC      aarch64-softmmu/hw/arm/xlnx-versal-virt.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/hw/arm/mps2.o
  CC      aarch64-softmmu/hw/arm/mps2-tz.o
  CC      aarch64-softmmu/hw/arm/msf2-soc.o
  CC      aarch64-softmmu/hw/arm/msf2-som.o
  CC      aarch64-softmmu/hw/arm/iotkit.o
  CC      aarch64-softmmu/hw/arm/fsl-imx7.o
  CC      aarch64-softmmu/hw/arm/mcimx7d-sabre.o
  CC      aarch64-softmmu/hw/arm/smmu-common.o
  CC      aarch64-softmmu/hw/arm/smmuv3.o
  CC      aarch64-softmmu/hw/arm/fsl-imx6ul.o
  CC      aarch64-softmmu/hw/arm/mcimx6ul-evk.o
  CC      aarch64-softmmu/hw/arm/nrf51_soc.o
  CC      aarch64-softmmu/hw/arm/microbit.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/vec_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     aarch64-softmmu/target/arm/decode-sve.inc.c
  CC      aarch64-softmmu/target/arm/sve_helper.o
  GEN     trace/generated-helpers.c
  CC      aarch64-softmmu/trace/control-target.o
  CC      aarch64-softmmu/gdbstub-xml.o
  CC      aarch64-softmmu/target/arm/translate-sve.o
  CC      aarch64-softmmu/trace/generated-helpers.o
  LINK    aarch64-softmmu/qemu-system-aarch64w.exe
  GEN     aarch64-softmmu/qemu-system-aarch64.exe
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install"
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install"
install -c -m 0755 qemu-ga.exe qemu-img.exe qemu-io.exe qemu-edid.exe  "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install"
x86_64-w64-mingw32-strip "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/qemu-ga.exe" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/qemu-img.exe" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/qemu-io.exe" "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/qemu-edid.exe"
set -e; for x in bios.bin bios-256k.bin sgabios.bin vgabios.bin vgabios-cirrus.bin vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin vgabios-virtio.bin vgabios-ramfb.bin vgabios-bochs-display.bin ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc QEMU,tcx.bin QEMU,cgthree.bin pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom efi-e1000.rom efi-eepro100.rom efi-ne2k_pci.rom efi-pcnet.rom efi-rtl8139.rom efi-virtio.rom efi-e1000e.rom efi-vmxnet3.rom qemu-icon.bmp qemu_logo_no_text.svg bamboo.dtb canyonlands.dtb petalogix-s3adsp1800.dtb petalogix-ml605.dtb multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin s390-ccw.img s390-netboot.img spapr-rtas.bin slof.bin skiboot.lid palcode-clipper u-boot.e500 u-boot-sam460-20100605.bin qemu_vga.ndrv hppa-firmware.img; do \
        install -c -m 0644 /tmp/qemu-test/src/pc-bios/$x "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install"; \
done
make -C po install
make[1]: Entering directory '/tmp/qemu-test/build/po'
  GEN     /tmp/qemu-test/src/po/messages.po
  GEN     /tmp/qemu-test/src/po/hu.po
  GEN     /tmp/qemu-test/src/po/tr.po
  GEN     /tmp/qemu-test/src/po/it.po
  GEN     /tmp/qemu-test/src/po/bg.po
  GEN     /tmp/qemu-test/src/po/fr_FR.po
  GEN     /tmp/qemu-test/src/po/zh_CN.po
  GEN     /tmp/qemu-test/src/po/de_DE.po
  GEN     hu.mo
  GEN     bg.mo
  GEN     it.mo
  GEN     de_DE.mo
  GEN     zh_CN.mo
  GEN     tr.mo
  GEN     fr_FR.mo
for obj in hu.mo tr.mo it.mo bg.mo fr_FR.mo zh_CN.mo de_DE.mo; do \
    base=$(basename $obj .mo); \
    install -d /tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/locale/$base/LC_MESSAGES; \
    install -m644 $obj /tmp/qemu-test/build/=destdir/tmp/qemu-test/install/share/locale/$base/LC_MESSAGES/qemu.mo; \
done
make[1]: Leaving directory '/tmp/qemu-test/build/po'
install -d -m 0755 "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/keymaps"
set -e; for x in da     en-gb  et  fr     fr-ch  is  lt  modifiers  no  pt-br  sv ar      de     en-us  fi  fr-be  hr     it  lv  nl         pl  ru     th common  de-ch  es     fo  fr-ca  hu     ja  mk  nl-be      pt  sl     tr bepo    cz; do \
        install -c -m 0644 /tmp/qemu-test/src/pc-bios/keymaps/$x "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/keymaps"; \
done
install -c -m 0644 /tmp/qemu-test/build/trace-events-all "/tmp/qemu-test/build/=destdir/tmp/qemu-test/install/trace-events-all"
for d in x86_64-softmmu aarch64-softmmu; do \
make --no-print-directory --quiet BUILD_DIR=/tmp/qemu-test/build TARGET_DIR=$d/ -C $d install || exit 1 ; \
        done
rm -f *.timestamp
rm -rf tests/check-qdict.exe tests/check-block-qdict.exe tests/test-char.exe tests/check-qnum.exe tests/check-qstring.exe tests/check-qlist.exe tests/check-qnull.exe tests/check-qobject.exe tests/check-qjson.exe tests/check-qlit.exe tests/test-qobject-output-visitor.exe tests/test-clone-visitor.exe tests/test-qobject-input-visitor.exe tests/test-qmp-cmds.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-bdrv-drain.exe tests/test-blockjob.exe tests/test-blockjob-txn.exe tests/test-block-backend.exe tests/test-image-locking.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-rcu-simpleq.exe tests/test-rcu-tailq.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-util-sockets.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/cdrom-test.exe tests/cpu-plug-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/hexloader-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/m48t59-test.exe tests/machine-none-test.exe tests/megasas-test.exe tests/migration-test.exe tests/ne2000-test.exe tests/numa-test.exe tests/nvme-test.exe tests/pca9552-test.exe tests/pcnet-test.exe tests/pnv-xscom-test.exe tests/prom-env-test.exe tests/pvpanic-test.exe tests/pxe-test.exe tests/q35-test.exe tests/qmp-cmd-test.exe tests/qmp-test.exe tests/qom-test.exe tests/rtas-test.exe tests/rtc-test.exe tests/rtl8139-test.exe tests/sdhci-test.exe tests/spapr-phb-test.exe tests/tco-test.exe tests/test-arm-mptimer.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/tpm-crb-swtpm-test.exe tests/tpm-crb-test.exe tests/tpm-tis-swtpm-test.exe tests/tpm-tis-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-ccw-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/vmgenid-test.exe tests/vmxnet3-test.exe tests/wdt_ib700-test.exe
rm -f tests/test-qapi-gen-timestamp
rm -rf /tmp/qemu-test/build/tests/venv /tmp/qemu-test/build/tests/results
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-edid.exe  qemu-ga TAGS cscope.* *.pod *~ */*~
rm -f fsdev/*.pod scsi/*.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 qapi/qapi-builtin-types.h qapi/qapi-builtin-types.h-timestamp qapi/qapi-builtin-types.c qapi/qapi-builtin-types.c-timestamp qapi/qapi-types.h qapi/qapi-types.h-timestamp qapi/qapi-types.c qapi/qapi-types.c-timestamp qapi/qapi-types-block-core.h qapi/qapi-types-block-core.h-timestamp qapi/qapi-types-block-core.c qapi/qapi-types-block-core.c-timestamp qapi/qapi-types-block.h qapi/qapi-types-block.h-timestamp qapi/qapi-types-block.c qapi/qapi-types-block.c-timestamp qapi/qapi-types-char.h qapi/qapi-types-char.h-timestamp qapi/qapi-types-char.c qapi/qapi-types-char.c-timestamp qapi/qapi-types-common.h qapi/qapi-types-common.h-timestamp qapi/qapi-types-common.c qapi/qapi-types-common.c-timestamp qapi/qapi-types-crypto.h qapi/qapi-types-crypto.h-timestamp qapi/qapi-types-crypto.c qapi/qapi-types-crypto.c-timestamp qapi/qapi-types-introspect.h qapi/qapi-types-introspect.h-timestamp qapi/qapi-types-introspect.c qapi/qapi-types-introspect.c-timestamp qapi/qapi-types-job.h qapi/qapi-types-job.h-timestamp qapi/qapi-types-job.c qapi/qapi-types-job.c-timestamp qapi/qapi-types-migration.h qapi/qapi-types-migration.h-timestamp qapi/qapi-types-migration.c qapi/qapi-types-migration.c-timestamp qapi/qapi-types-misc.h qapi/qapi-types-misc.h-timestamp qapi/qapi-types-misc.c qapi/qapi-types-misc.c-timestamp qapi/qapi-types-net.h qapi/qapi-types-net.h-timestamp qapi/qapi-types-net.c qapi/qapi-types-net.c-timestamp qapi/qapi-types-rocker.h qapi/qapi-types-rocker.h-timestamp qapi/qapi-types-rocker.c qapi/qapi-types-rocker.c-timestamp qapi/qapi-types-run-state.h qapi/qapi-types-run-state.h-timestamp qapi/qapi-types-run-state.c qapi/qapi-types-run-state.c-timestamp qapi/qapi-types-sockets.h qapi/qapi-types-sockets.h-timestamp qapi/qapi-types-sockets.c qapi/qapi-types-sockets.c-timestamp qapi/qapi-types-tpm.h qapi/qapi-types-tpm.h-timestamp qapi/qapi-types-tpm.c qapi/qapi-types-tpm.c-timestamp qapi/qapi-types-trace.h qapi/qapi-types-trace.h-timestamp qapi/qapi-types-trace.c qapi/qapi-types-trace.c-timestamp qapi/qapi-types-transaction.h qapi/qapi-types-transaction.h-timestamp qapi/qapi-types-transaction.c qapi/qapi-types-transaction.c-timestamp qapi/qapi-types-ui.h qapi/qapi-types-ui.h-timestamp qapi/qapi-types-ui.c qapi/qapi-types-ui.c-timestamp qapi/qapi-builtin-visit.h qapi/qapi-builtin-visit.h-timestamp qapi/qapi-builtin-visit.c qapi/qapi-builtin-visit.c-timestamp qapi/qapi-visit.h qapi/qapi-visit.h-timestamp qapi/qapi-visit.c qapi/qapi-visit.c-timestamp qapi/qapi-visit-block-core.h qapi/qapi-visit-block-core.h-timestamp qapi/qapi-visit-block-core.c qapi/qapi-visit-block-core.c-timestamp qapi/qapi-visit-block.h qapi/qapi-visit-block.h-timestamp qapi/qapi-visit-block.c qapi/qapi-visit-block.c-timestamp qapi/qapi-visit-char.h qapi/qapi-visit-char.h-timestamp qapi/qapi-visit-char.c qapi/qapi-visit-char.c-timestamp qapi/qapi-visit-common.h qapi/qapi-visit-common.h-timestamp qapi/qapi-visit-common.c qapi/qapi-visit-common.c-timestamp qapi/qapi-visit-crypto.h qapi/qapi-visit-crypto.h-timestamp qapi/qapi-visit-crypto.c qapi/qapi-visit-crypto.c-timestamp qapi/qapi-visit-introspect.h qapi/qapi-visit-introspect.h-timestamp qapi/qapi-visit-introspect.c qapi/qapi-visit-introspect.c-timestamp qapi/qapi-visit-job.h qapi/qapi-visit-job.h-timestamp qapi/qapi-visit-job.c qapi/qapi-visit-job.c-timestamp qapi/qapi-visit-migration.h qapi/qapi-visit-migration.h-timestamp qapi/qapi-visit-migration.c qapi/qapi-visit-migration.c-timestamp qapi/qapi-visit-misc.h qapi/qapi-visit-misc.h-timestamp qapi/qapi-visit-misc.c qapi/qapi-visit-misc.c-timestamp qapi/qapi-visit-net.h qapi/qapi-visit-net.h-timestamp qapi/qapi-visit-net.c qapi/qapi-visit-net.c-timestamp qapi/qapi-visit-rocker.h qapi/qapi-visit-rocker.h-timestamp qapi/qapi-visit-rocker.c qapi/qapi-visit-rocker.c-timestamp qapi/qapi-visit-run-state.h qapi/qapi-visit-run-state.h-timestamp qapi/qapi-visit-run-state.c qapi/qapi-visit-run-state.c-timestamp qapi/qapi-visit-sockets.h qapi/qapi-visit-sockets.h-timestamp qapi/qapi-visit-sockets.c qapi/qapi-visit-sockets.c-timestamp qapi/qapi-visit-tpm.h qapi/qapi-visit-tpm.h-timestamp qapi/qapi-visit-tpm.c qapi/qapi-visit-tpm.c-timestamp qapi/qapi-visit-trace.h qapi/qapi-visit-trace.h-timestamp qapi/qapi-visit-trace.c qapi/qapi-visit-trace.c-timestamp qapi/qapi-visit-transaction.h qapi/qapi-visit-transaction.h-timestamp qapi/qapi-visit-transaction.c qapi/qapi-visit-transaction.c-timestamp qapi/qapi-visit-ui.h qapi/qapi-visit-ui.h-timestamp qapi/qapi-visit-ui.c qapi/qapi-visit-ui.c-timestamp qapi/qapi-commands.h qapi/qapi-commands.h-timestamp qapi/qapi-commands.c qapi/qapi-commands.c-timestamp qapi/qapi-commands-block-core.h qapi/qapi-commands-block-core.h-timestamp qapi/qapi-commands-block-core.c qapi/qapi-commands-block-core.c-timestamp qapi/qapi-commands-block.h qapi/qapi-commands-block.h-timestamp qapi/qapi-commands-block.c qapi/qapi-commands-block.c-timestamp qapi/qapi-commands-char.h qapi/qapi-commands-char.h-timestamp qapi/qapi-commands-char.c qapi/qapi-commands-char.c-timestamp qapi/qapi-commands-common.h qapi/qapi-commands-common.h-timestamp qapi/qapi-commands-common.c qapi/qapi-commands-common.c-timestamp qapi/qapi-commands-crypto.h qapi/qapi-commands-crypto.h-timestamp qapi/qapi-commands-crypto.c qapi/qapi-commands-crypto.c-timestamp qapi/qapi-commands-introspect.h qapi/qapi-commands-introspect.h-timestamp qapi/qapi-commands-introspect.c qapi/qapi-commands-introspect.c-timestamp qapi/qapi-commands-job.h qapi/qapi-commands-job.h-timestamp qapi/qapi-commands-job.c qapi/qapi-commands-job.c-timestamp qapi/qapi-commands-migration.h qapi/qapi-commands-migration.h-timestamp qapi/qapi-commands-migration.c qapi/qapi-commands-migration.c-timestamp qapi/qapi-commands-misc.h qapi/qapi-commands-misc.h-timestamp qapi/qapi-commands-misc.c qapi/qapi-commands-misc.c-timestamp qapi/qapi-commands-net.h qapi/qapi-commands-net.h-timestamp qapi/qapi-commands-net.c qapi/qapi-commands-net.c-timestamp qapi/qapi-commands-rocker.h qapi/qapi-commands-rocker.h-timestamp qapi/qapi-commands-rocker.c qapi/qapi-commands-rocker.c-timestamp qapi/qapi-commands-run-state.h qapi/qapi-commands-run-state.h-timestamp qapi/qapi-commands-run-state.c qapi/qapi-commands-run-state.c-timestamp qapi/qapi-commands-sockets.h qapi/qapi-commands-sockets.h-timestamp qapi/qapi-commands-sockets.c qapi/qapi-commands-sockets.c-timestamp qapi/qapi-commands-tpm.h qapi/qapi-commands-tpm.h-timestamp qapi/qapi-commands-tpm.c qapi/qapi-commands-tpm.c-timestamp qapi/qapi-commands-trace.h qapi/qapi-commands-trace.h-timestamp qapi/qapi-commands-trace.c qapi/qapi-commands-trace.c-timestamp qapi/qapi-commands-transaction.h qapi/qapi-commands-transaction.h-timestamp qapi/qapi-commands-transaction.c qapi/qapi-commands-transaction.c-timestamp qapi/qapi-commands-ui.h qapi/qapi-commands-ui.h-timestamp qapi/qapi-commands-ui.c qapi/qapi-commands-ui.c-timestamp qapi/qapi-events.h qapi/qapi-events.h-timestamp qapi/qapi-events.c qapi/qapi-events.c-timestamp qapi/qapi-events-block-core.h qapi/qapi-events-block-core.h-timestamp qapi/qapi-events-block-core.c qapi/qapi-events-block-core.c-timestamp qapi/qapi-events-block.h qapi/qapi-events-block.h-timestamp qapi/qapi-events-block.c qapi/qapi-events-block.c-timestamp qapi/qapi-events-char.h qapi/qapi-events-char.h-timestamp qapi/qapi-events-char.c qapi/qapi-events-char.c-timestamp qapi/qapi-events-common.h qapi/qapi-events-common.h-timestamp qapi/qapi-events-common.c qapi/qapi-events-common.c-timestamp qapi/qapi-events-crypto.h qapi/qapi-events-crypto.h-timestamp qapi/qapi-events-crypto.c qapi/qapi-events-crypto.c-timestamp qapi/qapi-events-introspect.h qapi/qapi-events-introspect.h-timestamp qapi/qapi-events-introspect.c qapi/qapi-events-introspect.c-timestamp qapi/qapi-events-job.h qapi/qapi-events-job.h-timestamp qapi/qapi-events-job.c qapi/qapi-events-job.c-timestamp qapi/qapi-events-migration.h qapi/qapi-events-migration.h-timestamp qapi/qapi-events-migration.c qapi/qapi-events-migration.c-timestamp qapi/qapi-events-misc.h qapi/qapi-events-misc.h-timestamp qapi/qapi-events-misc.c qapi/qapi-events-misc.c-timestamp qapi/qapi-events-net.h qapi/qapi-events-net.h-timestamp qapi/qapi-events-net.c qapi/qapi-events-net.c-timestamp qapi/qapi-events-rocker.h qapi/qapi-events-rocker.h-timestamp qapi/qapi-events-rocker.c qapi/qapi-events-rocker.c-timestamp qapi/qapi-events-run-state.h qapi/qapi-events-run-state.h-timestamp qapi/qapi-events-run-state.c qapi/qapi-events-run-state.c-timestamp qapi/qapi-events-sockets.h qapi/qapi-events-sockets.h-timestamp qapi/qapi-events-sockets.c qapi/qapi-events-sockets.c-timestamp qapi/qapi-events-tpm.h qapi/qapi-events-tpm.h-timestamp qapi/qapi-events-tpm.c qapi/qapi-events-tpm.c-timestamp qapi/qapi-events-trace.h qapi/qapi-events-trace.h-timestamp qapi/qapi-events-trace.c qapi/qapi-events-trace.c-timestamp qapi/qapi-events-transaction.h qapi/qapi-events-transaction.h-timestamp qapi/qapi-events-transaction.c qapi/qapi-events-transaction.c-timestamp qapi/qapi-events-ui.h qapi/qapi-events-ui.h-timestamp qapi/qapi-events-ui.c qapi/qapi-events-ui.c-timestamp qapi/qapi-introspect.c qapi/qapi-introspect.c-timestamp qapi/qapi-introspect.h qapi/qapi-introspect.h-timestamp qapi/qapi-doc.texi qapi/qapi-doc.texi-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 accel/kvm/trace.h accel/kvm/trace.h-timestamp accel/tcg/trace.h accel/tcg/trace.h-timestamp audio/trace.h audio/trace.h-timestamp block/trace.h block/trace.h-timestamp chardev/trace.h chardev/trace.h-timestamp crypto/trace.h crypto/trace.h-timestamp hw/9pfs/trace.h hw/9pfs/trace.h-timestamp hw/acpi/trace.h hw/acpi/trace.h-timestamp hw/alpha/trace.h hw/alpha/trace.h-timestamp hw/arm/trace.h hw/arm/trace.h-timestamp hw/audio/trace.h hw/audio/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/display/trace.h hw/display/trace.h-timestamp hw/dma/trace.h hw/dma/trace.h-timestamp hw/hppa/trace.h hw/hppa/trace.h-timestamp hw/i2c/trace.h hw/i2c/trace.h-timestamp hw/i386/trace.h hw/i386/trace.h-timestamp hw/i386/xen/trace.h hw/i386/xen/trace.h-timestamp hw/ide/trace.h hw/ide/trace.h-timestamp hw/input/trace.h hw/input/trace.h-timestamp hw/intc/trace.h hw/intc/trace.h-timestamp hw/isa/trace.h hw/isa/trace.h-timestamp hw/mem/trace.h hw/mem/trace.h-timestamp hw/misc/trace.h hw/misc/trace.h-timestamp hw/misc/macio/trace.h hw/misc/macio/trace.h-timestamp hw/net/trace.h hw/net/trace.h-timestamp hw/nvram/trace.h hw/nvram/trace.h-timestamp hw/pci/trace.h hw/pci/trace.h-timestamp hw/pci-host/trace.h hw/pci-host/trace.h-timestamp hw/ppc/trace.h hw/ppc/trace.h-timestamp hw/rdma/trace.h hw/rdma/trace.h-timestamp hw/rdma/vmw/trace.h hw/rdma/vmw/trace.h-timestamp hw/s390x/trace.h hw/s390x/trace.h-timestamp hw/scsi/trace.h hw/scsi/trace.h-timestamp hw/sd/trace.h hw/sd/trace.h-timestamp hw/sparc/trace.h hw/sparc/trace.h-timestamp hw/sparc64/trace.h hw/sparc64/trace.h-timestamp hw/timer/trace.h hw/timer/trace.h-timestamp hw/tpm/trace.h hw/tpm/trace.h-timestamp hw/usb/trace.h hw/usb/trace.h-timestamp hw/vfio/trace.h hw/vfio/trace.h-timestamp hw/virtio/trace.h hw/virtio/trace.h-timestamp hw/watchdog/trace.h hw/watchdog/trace.h-timestamp hw/xen/trace.h hw/xen/trace.h-timestamp io/trace.h io/trace.h-timestamp linux-user/trace.h linux-user/trace.h-timestamp migration/trace.h migration/trace.h-timestamp nbd/trace.h nbd/trace.h-timestamp net/trace.h net/trace.h-timestamp qapi/trace.h qapi/trace.h-timestamp qom/trace.h qom/trace.h-timestamp scsi/trace.h scsi/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/ppc/trace.h target/ppc/trace.h-timestamp target/s390x/trace.h target/s390x/trace.h-timestamp target/sparc/trace.h target/sparc/trace.h-timestamp ui/trace.h ui/trace.h-timestamp util/trace.h util/trace.h-timestamp trace-root.c trace-root.c-timestamp accel/kvm/trace.c accel/kvm/trace.c-timestamp accel/tcg/trace.c accel/tcg/trace.c-timestamp audio/trace.c audio/trace.c-timestamp block/trace.c block/trace.c-timestamp chardev/trace.c chardev/trace.c-timestamp crypto/trace.c crypto/trace.c-timestamp hw/9pfs/trace.c hw/9pfs/trace.c-timestamp hw/acpi/trace.c hw/acpi/trace.c-timestamp hw/alpha/trace.c hw/alpha/trace.c-timestamp hw/arm/trace.c hw/arm/trace.c-timestamp hw/audio/trace.c hw/audio/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/display/trace.c hw/display/trace.c-timestamp hw/dma/trace.c hw/dma/trace.c-timestamp hw/hppa/trace.c hw/hppa/trace.c-timestamp hw/i2c/trace.c hw/i2c/trace.c-timestamp hw/i386/trace.c hw/i386/trace.c-timestamp hw/i386/xen/trace.c hw/i386/xen/trace.c-timestamp hw/ide/trace.c hw/ide/trace.c-timestamp hw/input/trace.c hw/input/trace.c-timestamp hw/intc/trace.c hw/intc/trace.c-timestamp hw/isa/trace.c hw/isa/trace.c-timestamp hw/mem/trace.c hw/mem/trace.c-timestamp hw/misc/trace.c hw/misc/trace.c-timestamp hw/misc/macio/trace.c hw/misc/macio/trace.c-timestamp hw/net/trace.c hw/net/trace.c-timestamp hw/nvram/trace.c hw/nvram/trace.c-timestamp hw/pci/trace.c hw/pci/trace.c-timestamp hw/pci-host/trace.c hw/pci-host/trace.c-timestamp hw/ppc/trace.c hw/ppc/trace.c-timestamp hw/rdma/trace.c hw/rdma/trace.c-timestamp hw/rdma/vmw/trace.c hw/rdma/vmw/trace.c-timestamp hw/s390x/trace.c hw/s390x/trace.c-timestamp hw/scsi/trace.c hw/scsi/trace.c-timestamp hw/sd/trace.c hw/sd/trace.c-timestamp hw/sparc/trace.c hw/sparc/trace.c-timestamp hw/sparc64/trace.c hw/sparc64/trace.c-timestamp hw/timer/trace.c hw/timer/trace.c-timestamp hw/tpm/trace.c hw/tpm/trace.c-timestamp hw/usb/trace.c hw/usb/trace.c-timestamp hw/vfio/trace.c hw/vfio/trace.c-timestamp hw/virtio/trace.c hw/virtio/trace.c-timestamp hw/watchdog/trace.c hw/watchdog/trace.c-timestamp hw/xen/trace.c hw/xen/trace.c-timestamp io/trace.c io/trace.c-timestamp linux-user/trace.c linux-user/trace.c-timestamp migration/trace.c migration/trace.c-timestamp nbd/trace.c nbd/trace.c-timestamp net/trace.c net/trace.c-timestamp qapi/trace.c qapi/trace.c-timestamp qom/trace.c qom/trace.c-timestamp scsi/trace.c scsi/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/ppc/trace.c target/ppc/trace.c-timestamp target/s390x/trace.c target/s390x/trace.c-timestamp target/sparc/trace.c target/sparc/trace.c-timestamp ui/trace.c ui/trace.c-timestamp util/trace.c util/trace.c-timestamp /tmp/qemu-test/build/trace-events-all /tmp/qemu-test/build/trace-events-all-timestamp .git-submodule-status .git-submodule-status-timestamp ui/input-keymap-atset1-to-qcode.c ui/input-keymap-atset1-to-qcode.c-timestamp ui/input-keymap-linux-to-qcode.c ui/input-keymap-linux-to-qcode.c-timestamp ui/input-keymap-qcode-to-atset1.c ui/input-keymap-qcode-to-atset1.c-timestamp ui/input-keymap-qcode-to-atset2.c ui/input-keymap-qcode-to-atset2.c-timestamp ui/input-keymap-qcode-to-atset3.c ui/input-keymap-qcode-to-atset3.c-timestamp ui/input-keymap-qcode-to-linux.c ui/input-keymap-qcode-to-linux.c-timestamp ui/input-keymap-qcode-to-qnum.c ui/input-keymap-qcode-to-qnum.c-timestamp ui/input-keymap-qcode-to-sun.c ui/input-keymap-qcode-to-sun.c-timestamp ui/input-keymap-qnum-to-qcode.c ui/input-keymap-qnum-to-qcode.c-timestamp ui/input-keymap-usb-to-qcode.c ui/input-keymap-usb-to-qcode.c-timestamp ui/input-keymap-win32-to-qcode.c ui/input-keymap-win32-to-qcode.c-timestamp ui/input-keymap-x11-to-qcode.c ui/input-keymap-x11-to-qcode.c-timestamp ui/input-keymap-xorgevdev-to-qcode.c ui/input-keymap-xorgevdev-to-qcode.c-timestamp ui/input-keymap-xorgkbd-to-qcode.c ui/input-keymap-xorgkbd-to-qcode.c-timestamp ui/input-keymap-xorgxquartz-to-qcode.c ui/input-keymap-xorgxquartz-to-qcode.c-timestamp ui/input-keymap-xorgxwin-to-qcode.c ui/input-keymap-xorgxwin-to-qcode.c-timestamp ui/input-keymap-osx-to-qcode.c ui/input-keymap-osx-to-qcode.c-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-qapi-commands.h tests/test-qapi-commands.h-timestamp tests/test-qapi-events.h tests/test-qapi-events.h-timestamp tests/test-qapi-introspect.h tests/test-qapi-introspect.h-timestamp
rm -f qapi-gen-timestamp
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 '/tmp/qemu-test/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 '/tmp/qemu-test/build/x86_64-softmmu'
make[1]: Entering directory '/tmp/qemu-test/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 '/tmp/qemu-test/build/aarch64-softmmu'
make[1]: Entering directory '/tmp/qemu-test/build/pc-bios/optionrom'
rm -f *.timestamp
rm -f *.o *.d *.raw *.img *.bin *~
make[1]: Leaving directory '/tmp/qemu-test/build/pc-bios/optionrom'
rm -f config-all-devices.mak
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install --python=/usr/bin/python3 --cross-prefix=i686-w64-mingw32- --enable-trace-backends=simple --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=2.0
Install prefix    /tmp/qemu-test/install
BIOS directory    /tmp/qemu-test/install
firmware path     /tmp/qemu-test/install/share/qemu-firmware
binary directory  /tmp/qemu-test/install
library directory /tmp/qemu-test/install/lib
module directory  /tmp/qemu-test/install/lib
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory  /tmp/qemu-test/install
local state directory   queried at runtime
Windows SDK       no
Source path       /tmp/qemu-test/src
GIT binary        git
GIT submodules    
C compiler        i686-w64-mingw32-gcc
Host C compiler   cc
C++ compiler      i686-w64-mingw32-g++
Objective-C compiler clang
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g 
QEMU_CFLAGS       -I/usr/i686-w64-mingw32/sys-root/mingw/include/pixman-1  -I$(SRC_PATH)/dtc/libfdt -Werror -DHAS_LIBSSH2_SFTP_FSYNC -I/usr/i686-w64-mingw32/sys-root/mingw/include  -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  -Wexpansion-to-defined -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/libpng16 
LDFLAGS           -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m32 -g 
QEMU_LDFLAGS      -L$(BUILD_DIR)/dtc/libfdt 
make              make
install           install
python            /usr/bin/python3 -B
smbd              /usr/sbin/smbd
module support    no
host CPU          i386
host big endian   no
target list       x86_64-softmmu aarch64-softmmu
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
SDL support       yes (2.0.9)
GTK support       yes (3.22.30)
GTK GL support    no
VTE support       no 
TLS priority      NORMAL
GNUTLS support    yes
libgcrypt         no
nettle            yes (3.4)
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
Multipath 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
HVF support       no
WHPX support      no
TCG support       yes
TCG debug enabled no
TCG interpreter   no
malloc trim support no
RDMA support      no
PVRDMA support    no
fdt support       git
membarrier        no
preadv support    no
fdatasync         no
madvise           no
posix_madvise     no
posix_memalign    no
libcap-ng support no
vhost-net support no
vhost-crypto support no
vhost-scsi support no
vhost-vsock support no
vhost-user 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
mutex debugging   no
crypto afalg      no
GlusterFS support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   yes
TPM passthrough   no
TPM emulator      no
QOM debugging     yes
Live block migration yes
lzo support       no
snappy support    no
bzip2 support     yes
NUMA host support no
libxml2           no
tcmalloc support  no
jemalloc support  no
avx2 optimization yes
replication support yes
VxHS block device no
bochs support     yes
cloop support     yes
dmg support       yes
qcow v1 support   yes
vdi support       yes
vvfat support     yes
qed support       yes
parallels support yes
sheepdog support  yes
capstone          no
docker            no
libpmem support   no
libudev           no
  GEN     config-all-devices.mak
  GEN     config-host.h
  GEN     qemu-options.def
  GEN     qapi-gen
  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     ui/input-keymap-atset1-to-qcode.c
  GEN     ui/input-keymap-linux-to-qcode.c
  GEN     ui/input-keymap-qcode-to-atset1.c
  GEN     ui/input-keymap-qcode-to-atset2.c
  GEN     ui/input-keymap-qcode-to-atset3.c
  GEN     ui/input-keymap-qcode-to-linux.c
  GEN     ui/input-keymap-qcode-to-qnum.c
  GEN     ui/input-keymap-qcode-to-sun.c
  GEN     ui/input-keymap-usb-to-qcode.c
  GEN     ui/input-keymap-qnum-to-qcode.c
  GEN     ui/input-keymap-win32-to-qcode.c
  GEN     ui/input-keymap-x11-to-qcode.c
  GEN     ui/input-keymap-xorgevdev-to-qcode.c
  GEN     ui/input-keymap-xorgkbd-to-qcode.c
  GEN     ui/input-keymap-xorgxquartz-to-qcode.c
  GEN     ui/input-keymap-xorgxwin-to-qcode.c
  GEN     ui/input-keymap-osx-to-qcode.c
  GEN     tests/test-qapi-gen
  GEN     trace-root.h
  GEN     accel/kvm/trace.h
  GEN     accel/tcg/trace.h
  GEN     audio/trace.h
  GEN     block/trace.h
  GEN     chardev/trace.h
  GEN     crypto/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/audio/trace.h
  GEN     hw/block/trace.h
  GEN     hw/block/dataplane/trace.h
  GEN     hw/char/trace.h
  GEN     hw/display/trace.h
  GEN     hw/dma/trace.h
  GEN     hw/hppa/trace.h
  GEN     hw/i2c/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/ide/trace.h
  GEN     hw/input/trace.h
  GEN     hw/intc/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/misc/trace.h
  GEN     hw/misc/macio/trace.h
  GEN     hw/net/trace.h
  GEN     hw/nvram/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/pci-host/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/rdma/trace.h
  GEN     hw/rdma/vmw/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/scsi/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/sparc64/trace.h
  GEN     hw/timer/trace.h
  GEN     hw/tpm/trace.h
  GEN     hw/usb/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/virtio/trace.h
  GEN     hw/watchdog/trace.h
  GEN     hw/xen/trace.h
  GEN     io/trace.h
  GEN     linux-user/trace.h
  GEN     migration/trace.h
  GEN     nbd/trace.h
  GEN     net/trace.h
  GEN     qapi/trace.h
  GEN     qom/trace.h
  GEN     scsi/trace.h
  GEN     target/arm/trace.h
  GEN     target/i386/trace.h
  GEN     target/mips/trace.h
  GEN     target/ppc/trace.h
  GEN     target/s390x/trace.h
  GEN     target/sparc/trace.h
  GEN     ui/trace.h
  GEN     util/trace.h
  GEN     trace-root.c
  GEN     accel/kvm/trace.c
  GEN     accel/tcg/trace.c
  GEN     audio/trace.c
  GEN     block/trace.c
  GEN     chardev/trace.c
  GEN     crypto/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/acpi/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/display/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/hppa/trace.c
  GEN     hw/i2c/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/ide/trace.c
  GEN     hw/input/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/misc/macio/trace.c
  GEN     hw/net/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/pci/trace.c
  GEN     hw/pci-host/trace.c
  GEN     hw/ppc/trace.c
  GEN     hw/rdma/trace.c
  GEN     hw/rdma/vmw/trace.c
  GEN     hw/s390x/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/sparc64/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/tpm/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/vfio/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/watchdog/trace.c
  GEN     hw/xen/trace.c
  GEN     io/trace.c
  GEN     linux-user/trace.c
  GEN     migration/trace.c
  GEN     nbd/trace.c
  GEN     net/trace.c
  GEN     qapi/trace.c
  GEN     qom/trace.c
  GEN     scsi/trace.c
  GEN     target/arm/trace.c
  GEN     target/i386/trace.c
  GEN     target/mips/trace.c
  GEN     target/ppc/trace.c
  GEN     target/s390x/trace.c
  GEN     target/sparc/trace.c
  GEN     ui/trace.c
  GEN     util/trace.c
         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_memrsv.c
         DEP /tmp/qemu-test/src/dtc/tests/truncated_string.c
         DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
         DEP /tmp/qemu-test/src/dtc/tests/check_full.c
         DEP /tmp/qemu-test/src/dtc/tests/check_header.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
         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_states.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_cells2.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_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/fdtoverlay.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
         DEP convert-dtsv0-lexer.lex.c
         DEP /tmp/qemu-test/src/dtc/srcpos.c
         DEP dtc-parser.tab.c
         DEP 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/dtc.c
         DEP /tmp/qemu-test/src/dtc/data.c
         DEP /tmp/qemu-test/src/dtc/checks.c
         CC libfdt/fdt.o
         CC libfdt/fdt_ro.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
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
  RC      version.o
  GEN     qga/qapi-generated/qapi-gen
  CC      qapi/qapi-builtin-types.o
  CC      qapi/qapi-types.o
  CC      qapi/qapi-types-block-core.o
  CC      qapi/qapi-types-block.o
  CC      qapi/qapi-types-char.o
  CC      qapi/qapi-types-common.o
  CC      qapi/qapi-types-crypto.o
  CC      qapi/qapi-types-job.o
  CC      qapi/qapi-types-introspect.o
  CC      qapi/qapi-types-migration.o
  CC      qapi/qapi-types-misc.o
  CC      qapi/qapi-types-net.o
  CC      qapi/qapi-types-rocker.o
  CC      qapi/qapi-types-run-state.o
  CC      qapi/qapi-types-sockets.o
  CC      qapi/qapi-types-tpm.o
  CC      qapi/qapi-types-trace.o
  CC      qapi/qapi-types-transaction.o
  CC      qapi/qapi-types-ui.o
  CC      qapi/qapi-builtin-visit.o
  CC      qapi/qapi-visit.o
  CC      qapi/qapi-visit-block-core.o
  CC      qapi/qapi-visit-block.o
  CC      qapi/qapi-visit-char.o
  CC      qapi/qapi-visit-common.o
  CC      qapi/qapi-visit-crypto.o
  CC      qapi/qapi-visit-introspect.o
  CC      qapi/qapi-visit-job.o
  CC      qapi/qapi-visit-migration.o
  CC      qapi/qapi-visit-misc.o
  CC      qapi/qapi-visit-net.o
  CC      qapi/qapi-visit-rocker.o
  CC      qapi/qapi-visit-run-state.o
  CC      qapi/qapi-visit-sockets.o
  CC      qapi/qapi-visit-tpm.o
  CC      qapi/qapi-visit-trace.o
  CC      qapi/qapi-visit-transaction.o
  CC      qapi/qapi-visit-ui.o
  CC      qapi/qapi-events.o
  CC      qapi/qapi-events-block-core.o
  CC      qapi/qapi-events-block.o
  CC      qapi/qapi-events-char.o
  CC      qapi/qapi-events-common.o
  CC      qapi/qapi-events-crypto.o
  CC      qapi/qapi-events-introspect.o
  CC      qapi/qapi-events-job.o
  CC      qapi/qapi-events-migration.o
  CC      qapi/qapi-events-misc.o
  CC      qapi/qapi-events-net.o
  CC      qapi/qapi-events-rocker.o
  CC      qapi/qapi-events-run-state.o
  CC      qapi/qapi-events-sockets.o
  CC      qapi/qapi-events-tpm.o
  CC      qapi/qapi-events-trace.o
  CC      qapi/qapi-events-transaction.o
  CC      qapi/qapi-events-ui.o
  CC      qapi/qapi-introspect.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/qnum.o
  CC      qobject/qstring.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qbool.o
  CC      qobject/qlit.o
In file included from /tmp/qemu-test/src/include/qemu/bitops.h:16:0,
                 from /tmp/qemu-test/src/include/qemu/timer.h:5,
                 from /tmp/qemu-test/src/include/sysemu/sysemu.h:7,
                 from /tmp/qemu-test/src/qapi/qmp-dispatch.c:20:
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'mulu64':
/tmp/qemu-test/src/include/qemu/host-utils.h:34:5: error: unknown type name '__uint128_t'; did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
     ^~~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
                      ^~~~~~~~~~~
                      __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: note: each undeclared identifier is reported only once for each function it appears in
/tmp/qemu-test/src/include/qemu/host-utils.h:34:34: error: expected ',' or ';' before 'a'
     __uint128_t r = (__uint128_t)a * b;
                                  ^
/tmp/qemu-test/src/include/qemu/host-utils.h:36:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muls64':
/tmp/qemu-test/src/include/qemu/host-utils.h:42:5: error: unknown type name '__int128_t'; did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
     ^~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:21: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
                     ^~~~~~~~~~
                     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:32: error: expected ',' or ';' before 'a'
     __int128_t r = (__int128_t)a * b;
                                ^
/tmp/qemu-test/src/include/qemu/host-utils.h:44:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muldiv64':
/tmp/qemu-test/src/include/qemu/host-utils.h:50:13: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     return (__int128_t)a * b / c;
             ^~~~~~~~~~
             __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:50:24: error: expected ';' before 'a'
     return (__int128_t)a * b / c;
                        ^
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divu128':
/tmp/qemu-test/src/include/qemu/host-utils.h:58:9: error: unknown type name '__uint128_t'; did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:58:34: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
                                  ^~~~~~~~~~~
                                  __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:59:21: error: expected ';' before 'result'
         __uint128_t result = dividend / divisor;
                     ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:60:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divs128':
/tmp/qemu-test/src/include/qemu/host-utils.h:71:9: error: unknown type name '__int128_t'; did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:71:33: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
                                 ^~~~~~~~~~
                                 __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:72:20: error: expected ';' before 'result'
         __int128_t result = dividend / divisor;
                    ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:73:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
cc1: all warnings being treated as errors
  CC      qobject/qjson.o
make: *** [/tmp/qemu-test/src/rules.mak:69: qapi/qmp-dispatch.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from /tmp/qemu-test/src/qapi/string-output-visitor.c:17:0:
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'mulu64':
/tmp/qemu-test/src/include/qemu/host-utils.h:34:5: error: unknown type name '__uint128_t'; did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
     ^~~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
                      ^~~~~~~~~~~
                      __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: note: each undeclared identifier is reported only once for each function it appears in
/tmp/qemu-test/src/include/qemu/host-utils.h:34:34: error: expected ',' or ';' before 'a'
     __uint128_t r = (__uint128_t)a * b;
                                  ^
/tmp/qemu-test/src/include/qemu/host-utils.h:36:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muls64':
/tmp/qemu-test/src/include/qemu/host-utils.h:42:5: error: unknown type name '__int128_t'; did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
     ^~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:21: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
                     ^~~~~~~~~~
                     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:32: error: expected ',' or ';' before 'a'
     __int128_t r = (__int128_t)a * b;
                                ^
/tmp/qemu-test/src/include/qemu/host-utils.h:44:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muldiv64':
/tmp/qemu-test/src/include/qemu/host-utils.h:50:13: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     return (__int128_t)a * b / c;
             ^~~~~~~~~~
             __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:50:24: error: expected ';' before 'a'
     return (__int128_t)a * b / c;
                        ^
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divu128':
/tmp/qemu-test/src/include/qemu/host-utils.h:58:9: error: unknown type name '__uint128_t'; did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:58:34: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
                                  ^~~~~~~~~~~
                                  __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:59:21: error: expected ';' before 'result'
         __uint128_t result = dividend / divisor;
                     ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:60:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divs128':
/tmp/qemu-test/src/include/qemu/host-utils.h:71:9: error: unknown type name '__int128_t'; did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:71:33: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
                                 ^~~~~~~~~~
                                 __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:72:20: error: expected ';' before 'result'
         __int128_t result = dividend / divisor;
                    ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:73:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
cc1: all warnings being treated as errors
make: *** [/tmp/qemu-test/src/rules.mak:69: qapi/string-output-visitor.o] Error 1
In file included from /tmp/qemu-test/src/include/qemu/bitops.h:16:0,
                 from /tmp/qemu-test/src/include/qemu/bitmap.h:16,
                 from /tmp/qemu-test/src/include/hw/qdev-core.h:5,
                 from /tmp/qemu-test/src/include/qom/cpu.h:23,
                 from /tmp/qemu-test/src/trace/control-internal.h:13,
                 from /tmp/qemu-test/src/trace/control.h:270,
                 from /tmp/qemu-test/build/qapi/trace.h:7,
                 from /tmp/qemu-test/src/qapi/qapi-visit-core.c:21:
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'mulu64':
/tmp/qemu-test/src/include/qemu/host-utils.h:34:5: error: unknown type name '__uint128_t'; did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
     ^~~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
                      ^~~~~~~~~~~
                      __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: note: each undeclared identifier is reported only once for each function it appears in
/tmp/qemu-test/src/include/qemu/host-utils.h:34:34: error: expected ',' or ';' before 'a'
     __uint128_t r = (__uint128_t)a * b;
                                  ^
/tmp/qemu-test/src/include/qemu/host-utils.h:36:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muls64':
/tmp/qemu-test/src/include/qemu/host-utils.h:42:5: error: unknown type name '__int128_t'; did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
     ^~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:21: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
                     ^~~~~~~~~~
                     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:32: error: expected ',' or ';' before 'a'
     __int128_t r = (__int128_t)a * b;
                                ^
/tmp/qemu-test/src/include/qemu/host-utils.h:44:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muldiv64':
/tmp/qemu-test/src/include/qemu/host-utils.h:50:13: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     return (__int128_t)a * b / c;
             ^~~~~~~~~~
             __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:50:24: error: expected ';' before 'a'
     return (__int128_t)a * b / c;
                        ^
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divu128':
/tmp/qemu-test/src/include/qemu/host-utils.h:58:9: error: unknown type name '__uint128_t'; did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:58:34: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
                                  ^~~~~~~~~~~
                                  __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:59:21: error: expected ';' before 'result'
         __uint128_t result = dividend / divisor;
                     ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:60:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divs128':
/tmp/qemu-test/src/include/qemu/host-utils.h:71:9: error: unknown type name '__int128_t'; did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:71:33: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
                                 ^~~~~~~~~~
                                 __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:72:20: error: expected ';' before 'result'
         __int128_t result = dividend / divisor;
                    ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:73:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
cc1: all warnings being treated as errors
make: *** [/tmp/qemu-test/src/rules.mak:69: qapi/qapi-visit-core.o] Error 1
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 563, in <module>
    sys.exit(main())
  File "./tests/docker/docker.py", line 560, in main
    return args.cmdobj.run(args, argv)
  File "./tests/docker/docker.py", line 306, in run
    return Docker().run(argv, args.keep, quiet=args.quiet)
  File "./tests/docker/docker.py", line 274, in run
    quiet=quiet)
  File "./tests/docker/docker.py", line 181, in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 542, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=f2618952f72011e8a37868b59973b7d0', '-u', '1001', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-qr875vmm/src/docker-src.2018-12-03-12.28.49.24278:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-qr875vmm/src'
make: *** [docker-run-test-mingw@fedora] Error 2

real    7m38.906s
user    0m17.581s
sys     0m3.837s
=== OUTPUT END ===

Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

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

* Re: [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions
  2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
                   ` (7 preceding siblings ...)
  2018-12-03 17:36 ` [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions no-reply
@ 2018-12-04  2:36 ` no-reply
  8 siblings, 0 replies; 23+ messages in thread
From: no-reply @ 2018-12-04  2:36 UTC (permalink / raw)
  To: thuth; +Cc: famz, qemu-devel, peter.maydell, pbonzini, rth

Patchew URL: https://patchew.org/QEMU/1543845937-300-1-git-send-email-thuth@redhat.com/



Hi,

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

=== TEST SCRIPT BEGIN ===
#!/bin/bash
time make docker-test-mingw@fedora SHOW_ENV=1 J=8
=== TEST SCRIPT END ===

                 from /tmp/qemu-test/build/qapi/trace.h:7,
                 from /tmp/qemu-test/src/qapi/qapi-visit-core.c:21:
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'mulu64':
/tmp/qemu-test/src/include/qemu/host-utils.h:34:5: error: unknown type name '__uint128_t'; did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
     ^~~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
                      ^~~~~~~~~~~
                      __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: note: each undeclared identifier is reported only once for each function it appears in
/tmp/qemu-test/src/include/qemu/host-utils.h:34:34: error: expected ',' or ';' before 'a'
     __uint128_t r = (__uint128_t)a * b;
                                  ^
/tmp/qemu-test/src/include/qemu/host-utils.h:36:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muls64':
/tmp/qemu-test/src/include/qemu/host-utils.h:42:5: error: unknown type name '__int128_t'; did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
     ^~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:21: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
                     ^~~~~~~~~~
                     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:32: error: expected ',' or ';' before 'a'
     __int128_t r = (__int128_t)a * b;
                                ^
/tmp/qemu-test/src/include/qemu/host-utils.h:44:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muldiv64':
/tmp/qemu-test/src/include/qemu/host-utils.h:50:13: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     return (__int128_t)a * b / c;
             ^~~~~~~~~~
             __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:50:24: error: expected ';' before 'a'
     return (__int128_t)a * b / c;
                        ^
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divu128':
/tmp/qemu-test/src/include/qemu/host-utils.h:58:9: error: unknown type name '__uint128_t'; did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:58:34: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
                                  ^~~~~~~~~~~
                                  __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:59:21: error: expected ';' before 'result'
         __uint128_t result = dividend / divisor;
                     ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:60:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divs128':
/tmp/qemu-test/src/include/qemu/host-utils.h:71:9: error: unknown type name '__int128_t'; did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:71:33: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
                                 ^~~~~~~~~~
                                 __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:72:20: error: expected ';' before 'result'
         __int128_t result = dividend / divisor;
                    ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:73:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
cc1: all warnings being treated as errors
---
                 from /tmp/qemu-test/src/include/sysemu/sysemu.h:7,
                 from /tmp/qemu-test/src/qapi/qmp-dispatch.c:20:
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'mulu64':
/tmp/qemu-test/src/include/qemu/host-utils.h:34:5: error: unknown type name '__uint128_t'; did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
     ^~~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
                      ^~~~~~~~~~~
                      __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: note: each undeclared identifier is reported only once for each function it appears in
/tmp/qemu-test/src/include/qemu/host-utils.h:34:34: error: expected ',' or ';' before 'a'
     __uint128_t r = (__uint128_t)a * b;
                                  ^
/tmp/qemu-test/src/include/qemu/host-utils.h:36:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muls64':
/tmp/qemu-test/src/include/qemu/host-utils.h:42:5: error: unknown type name '__int128_t'; did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
     ^~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:21: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
                     ^~~~~~~~~~
                     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:32: error: expected ',' or ';' before 'a'
     __int128_t r = (__int128_t)a * b;
                                ^
/tmp/qemu-test/src/include/qemu/host-utils.h:44:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muldiv64':
/tmp/qemu-test/src/include/qemu/host-utils.h:50:13: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     return (__int128_t)a * b / c;
             ^~~~~~~~~~
             __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:50:24: error: expected ';' before 'a'
     return (__int128_t)a * b / c;
                        ^
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divu128':
/tmp/qemu-test/src/include/qemu/host-utils.h:58:9: error: unknown type name '__uint128_t'; did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:58:34: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
                                  ^~~~~~~~~~~
                                  __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:59:21: error: expected ';' before 'result'
         __uint128_t result = dividend / divisor;
                     ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:60:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divs128':
/tmp/qemu-test/src/include/qemu/host-utils.h:71:9: error: unknown type name '__int128_t'; did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:71:33: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
                                 ^~~~~~~~~~
                                 __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:72:20: error: expected ';' before 'result'
         __int128_t result = dividend / divisor;
                    ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:73:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
cc1: all warnings being treated as errors
In file included from /tmp/qemu-test/src/qapi/string-output-visitor.c:17:0:
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'mulu64':
/tmp/qemu-test/src/include/qemu/host-utils.h:34:5: error: unknown type name '__uint128_t'; did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
     ^~~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
     __uint128_t r = (__uint128_t)a * b;
                      ^~~~~~~~~~~
                      __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:34:22: note: each undeclared identifier is reported only once for each function it appears in
/tmp/qemu-test/src/include/qemu/host-utils.h:34:34: error: expected ',' or ';' before 'a'
     __uint128_t r = (__uint128_t)a * b;
                                  ^
/tmp/qemu-test/src/include/qemu/host-utils.h:36:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muls64':
/tmp/qemu-test/src/include/qemu/host-utils.h:42:5: error: unknown type name '__int128_t'; did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
     ^~~~~~~~~~
     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:21: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     __int128_t r = (__int128_t)a * b;
                     ^~~~~~~~~~
                     __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:42:32: error: expected ',' or ';' before 'a'
     __int128_t r = (__int128_t)a * b;
                                ^
/tmp/qemu-test/src/include/qemu/host-utils.h:44:16: error: right shift count >= width of type [-Werror=shift-count-overflow]
     *phigh = r >> 64;
                ^~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'muldiv64':
/tmp/qemu-test/src/include/qemu/host-utils.h:50:13: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
     return (__int128_t)a * b / c;
             ^~~~~~~~~~
             __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:50:24: error: expected ';' before 'a'
     return (__int128_t)a * b / c;
                        ^
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divu128':
/tmp/qemu-test/src/include/qemu/host-utils.h:58:9: error: unknown type name '__uint128_t'; did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:58:34: error: '__uint128_t' undeclared (first use in this function); did you mean '__int128'?
         __uint128_t dividend = ((__uint128_t)*phigh << 64) | *plow;
                                  ^~~~~~~~~~~
                                  __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:59:21: error: expected ';' before 'result'
         __uint128_t result = dividend / divisor;
                     ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:60:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h: In function 'divs128':
/tmp/qemu-test/src/include/qemu/host-utils.h:71:9: error: unknown type name '__int128_t'; did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
         ^~~~~~~~~~
         __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:71:33: error: '__int128_t' undeclared (first use in this function); did you mean '__int128'?
         __int128_t dividend = ((__int128_t)*phigh << 64) | *plow;
                                 ^~~~~~~~~~
                                 __int128
/tmp/qemu-test/src/include/qemu/host-utils.h:72:20: error: expected ';' before 'result'
         __int128_t result = dividend / divisor;
                    ^~~~~~
/tmp/qemu-test/src/include/qemu/host-utils.h:73:17: error: 'result' undeclared (first use in this function)
         *plow = result;
                 ^~~~~~
cc1: all warnings being treated as errors


The full log is available at
http://patchew.org/logs/1543845937-300-1-git-send-email-thuth@redhat.com/testing.docker-mingw@fedora/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

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

* Re: [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version Thomas Huth
  2018-12-03 14:16   ` Daniel P. Berrangé
@ 2018-12-05 17:30   ` Philippe Mathieu-Daudé
  2018-12-06  5:34     ` Thomas Huth
  1 sibling, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-12-05 17:30 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel; +Cc: peter.maydell, pbonzini, Richard Henderson

On 12/3/18 3:05 PM, Thomas Huth wrote:
> So far we only had implicit requirements for the minimum compiler version,
> e.g. we require at least GCC 4.1 for the support of atomics. However,
> such old compiler versions are not tested anymore by the developers, so
> they are not really supported anymore. Since we recently declared explicitly
> what platforms we intend to support, we can also get more explicit on the
> compiler version now. The supported distributions use the following version
> of GCC:
> 
>       RHEL-7: 4.8.5
>       Debian (Stretch): 6.3.0
>       Debian (Jessie): 4.8.4
>       OpenBSD (ports): 4.9.4
>       FreeBSD (ports): 8.2.0
>       OpenSUSE Leap 15: 7.3.1
>       Ubuntu (Xenial): 5.3.1
>       macOS (Homebrew): 8.2.0

I'd like to track this in a machine parsable format, but sure where it
better fits however, I'd prefer the git repo, and having the wiki
pointing to the git repo.

[...]

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

* Re: [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-05 17:30   ` Philippe Mathieu-Daudé
@ 2018-12-06  5:34     ` Thomas Huth
  2018-12-06  9:53       ` Daniel P. Berrangé
  0 siblings, 1 reply; 23+ messages in thread
From: Thomas Huth @ 2018-12-06  5:34 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: peter.maydell, pbonzini, Richard Henderson, Daniel P. Berrangé

On 2018-12-05 18:30, Philippe Mathieu-Daudé wrote:
> On 12/3/18 3:05 PM, Thomas Huth wrote:
>> So far we only had implicit requirements for the minimum compiler version,
>> e.g. we require at least GCC 4.1 for the support of atomics. However,
>> such old compiler versions are not tested anymore by the developers, so
>> they are not really supported anymore. Since we recently declared explicitly
>> what platforms we intend to support, we can also get more explicit on the
>> compiler version now. The supported distributions use the following version
>> of GCC:
>>
>>       RHEL-7: 4.8.5
>>       Debian (Stretch): 6.3.0
>>       Debian (Jessie): 4.8.4
>>       OpenBSD (ports): 4.9.4
>>       FreeBSD (ports): 8.2.0
>>       OpenSUSE Leap 15: 7.3.1
>>       Ubuntu (Xenial): 5.3.1
>>       macOS (Homebrew): 8.2.0
> 
> I'd like to track this in a machine parsable format, but sure where it
> better fits however, I'd prefer the git repo, and having the wiki
> pointing to the git repo.

I don't think that it makes sense to put fixed version numbers into the
git or wiki - the information will expire soon, and it is additional
maintenance to keep them up to date. We already got the generic
description here:

https://qemu.weilnetz.de/doc/qemu-doc.html#Supported-build-platforms

So you just have to follow these instructions to get to the supported
versions.

 Thomas

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

* Re: [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version
  2018-12-06  5:34     ` Thomas Huth
@ 2018-12-06  9:53       ` Daniel P. Berrangé
  0 siblings, 0 replies; 23+ messages in thread
From: Daniel P. Berrangé @ 2018-12-06  9:53 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Philippe Mathieu-Daudé,
	qemu-devel, peter.maydell, pbonzini, Richard Henderson

On Thu, Dec 06, 2018 at 06:34:25AM +0100, Thomas Huth wrote:
> On 2018-12-05 18:30, Philippe Mathieu-Daudé wrote:
> > On 12/3/18 3:05 PM, Thomas Huth wrote:
> >> So far we only had implicit requirements for the minimum compiler version,
> >> e.g. we require at least GCC 4.1 for the support of atomics. However,
> >> such old compiler versions are not tested anymore by the developers, so
> >> they are not really supported anymore. Since we recently declared explicitly
> >> what platforms we intend to support, we can also get more explicit on the
> >> compiler version now. The supported distributions use the following version
> >> of GCC:
> >>
> >>       RHEL-7: 4.8.5
> >>       Debian (Stretch): 6.3.0
> >>       Debian (Jessie): 4.8.4
> >>       OpenBSD (ports): 4.9.4
> >>       FreeBSD (ports): 8.2.0
> >>       OpenSUSE Leap 15: 7.3.1
> >>       Ubuntu (Xenial): 5.3.1
> >>       macOS (Homebrew): 8.2.0
> > 
> > I'd like to track this in a machine parsable format, but sure where it
> > better fits however, I'd prefer the git repo, and having the wiki
> > pointing to the git repo.
> 
> I don't think that it makes sense to put fixed version numbers into the
> git or wiki - the information will expire soon, and it is additional
> maintenance to keep them up to date. We already got the generic
> description here:
> 
> https://qemu.weilnetz.de/doc/qemu-doc.html#Supported-build-platforms
> 
> So you just have to follow these instructions to get to the supported
> versions.

Agreed, I don't really see a benefit in tracking the per-distro versions
in QEMU - they're only useful for informing us abuot what min version
to pick, which then goes into configure.

If we absolutely wanted to, we could use a standard variable name in
configure to make it easy to grep for min versions.

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

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

end of thread, other threads:[~2018-12-06  9:54 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-03 14:05 [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions Thomas Huth
2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 1/7] configure: Add a test for the minimum compiler version Thomas Huth
2018-12-03 14:16   ` Daniel P. Berrangé
2018-12-03 14:18     ` Peter Maydell
2018-12-03 14:27     ` Thomas Huth
2018-12-03 15:33       ` Daniel P. Berrangé
2018-12-05 17:30   ` Philippe Mathieu-Daudé
2018-12-06  5:34     ` Thomas Huth
2018-12-06  9:53       ` Daniel P. Berrangé
2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 2/7] Remove support for compilers that can not do 128-bit arithmetics Thomas Huth
2018-12-03 14:11   ` Richard Henderson
2018-12-03 14:16     ` Thomas Huth
2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 3/7] configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012] Thomas Huth
2018-12-03 16:11   ` Richard Henderson
2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 4/7] Remove QEMU_ARTIFICIAL macro Thomas Huth
2018-12-03 16:13   ` Richard Henderson
2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 5/7] tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro Thomas Huth
2018-12-03 16:13   ` Richard Henderson
2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 6/7] audio/alsaaudio: Remove compiler check around pragma Thomas Huth
2018-12-03 14:05 ` [Qemu-devel] [PATCH for-4.0 7/7] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" Thomas Huth
2018-12-03 16:20   ` Richard Henderson
2018-12-03 17:36 ` [Qemu-devel] [PATCH for-4.0 0/7] Assume GCC v4.8 and Clang v3.4 as minimum compiler versions no-reply
2018-12-04  2:36 ` no-reply

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.