All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] qemu: Upgrade to version 4.1
@ 2019-08-15 21:31 Alistair Francis
  2019-08-15 21:31 ` [PATCH 2/3] scripts/runqemu: Add support for the BIOS variable Alistair Francis
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Alistair Francis @ 2019-08-15 21:31 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
 meta/conf/distro/include/tcmode-default.inc   |   2 +-
 meta/recipes-devtools/qemu/qemu-native.inc    |   4 +-
 ...u-native_4.0.0.bb => qemu-native_4.1.0.bb} |   0
 ...e_4.0.0.bb => qemu-system-native_4.1.0.bb} |   2 +-
 meta/recipes-devtools/qemu/qemu.inc           |  20 +-
 ...emu-Add-missing-wacom-HID-descriptor.patch |  10 +-
 ...test-which-runs-all-unit-test-cases-.patch |   6 +-
 ...n-environment-space-to-boot-loader-q.patch |   4 +-
 .../qemu/0004-qemu-disable-Valgrind.patch     |   6 +-
 ...-searched-during-user-mode-emulation.patch | 146 --------
 ...d.bfd-fix-cflags-and-set-some-envir.patch} |   6 +-
 ...connect-socket-to-a-spawned-command.patch} |  18 +-
 ... 0007-apic-fixup-fallthrough-to-PIC.patch} |   6 +-
 ...ebkitgtk-hangs-on-32-bit-x86-target.patch} |   6 +-
 ...-fix-mmap-munmap-mprotect-mremap-sh.patch} |  58 +--
 ...-libcap-header-issue-on-some-distro.patch} |   0
 ...messages-when-qemi_cpu_kick_thread-.patch} |   2 +-
 ...et-arm-Fix-vector-operation-segfault.patch |  66 ----
 ...o-handle-variably-sized-SIOCGSTAMP-w.patch | 339 ------------------
 .../qemu/qemu/CVE-2019-12155.patch            |  35 --
 .../qemu/{qemu_4.0.0.bb => qemu_4.1.0.bb}     |   0
 21 files changed, 59 insertions(+), 677 deletions(-)
 rename meta/recipes-devtools/qemu/{qemu-native_4.0.0.bb => qemu-native_4.1.0.bb} (100%)
 rename meta/recipes-devtools/qemu/{qemu-system-native_4.0.0.bb => qemu-system-native_4.1.0.bb} (99%)
 delete mode 100644 meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
 rename meta/recipes-devtools/qemu/qemu/{0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch => 0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch} (82%)
 rename meta/recipes-devtools/qemu/qemu/{0007-chardev-connect-socket-to-a-spawned-command.patch => 0006-chardev-connect-socket-to-a-spawned-command.patch} (93%)
 rename meta/recipes-devtools/qemu/qemu/{0008-apic-fixup-fallthrough-to-PIC.patch => 0007-apic-fixup-fallthrough-to-PIC.patch} (90%)
 rename meta/recipes-devtools/qemu/qemu/{0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch => 0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch} (90%)
 rename meta/recipes-devtools/qemu/qemu/{0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch => 0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch} (63%)
 rename meta/recipes-devtools/qemu/qemu/{0011-fix-libcap-header-issue-on-some-distro.patch => 0010-fix-libcap-header-issue-on-some-distro.patch} (100%)
 rename meta/recipes-devtools/qemu/qemu/{0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch => 0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch} (97%)
 delete mode 100644 meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
 rename meta/recipes-devtools/qemu/{qemu_4.0.0.bb => qemu_4.1.0.bb} (100%)

diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 1966dbd521..c89b8e012d 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -24,7 +24,7 @@ BINUVERSION ?= "2.32%"
 GDBVERSION ?= "8.3%"
 GLIBCVERSION ?= "2.30%"
 LINUXLIBCVERSION ?= "5.0%"
-QEMUVERSION ?= "4.0%"
+QEMUVERSION ?= "4.1%"
 GOVERSION ?= "1.12%"
 # This can not use wildcards like 8.0.% since it is also used in mesa to denote
 # llvm version being used, so always bump it with llvm recipe version bump
diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc
index c04297cad0..69c2c43e6b 100644
--- a/meta/recipes-devtools/qemu/qemu-native.inc
+++ b/meta/recipes-devtools/qemu/qemu-native.inc
@@ -3,8 +3,8 @@ inherit native
 require qemu.inc
 
 SRC_URI_append = " \
-            file://0011-fix-libcap-header-issue-on-some-distro.patch \
-            file://0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
+            file://0010-fix-libcap-header-issue-on-some-distro.patch \
+            file://0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
             "
 
 EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
diff --git a/meta/recipes-devtools/qemu/qemu-native_4.0.0.bb b/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu-native_4.0.0.bb
rename to meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
similarity index 99%
rename from meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
rename to meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
index 964dcee524..d83ee59375 100644
--- a/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
@@ -2,7 +2,7 @@ BPN = "qemu"
 
 require qemu-native.inc
 
-# As some of the files installed by qemu-native and qemu-system-native 
+# As some of the files installed by qemu-native and qemu-system-native
 # are the same, we depend on qemu-native to get the full installation set
 # and avoid file clashes
 DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native"
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 46c40b7d4f..a83e835028 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -17,20 +17,16 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
            file://0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch \
            file://0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch \
            file://0004-qemu-disable-Valgrind.patch \
-           file://0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch \
-           file://0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
-           file://0007-chardev-connect-socket-to-a-spawned-command.patch \
-           file://0008-apic-fixup-fallthrough-to-PIC.patch \
-           file://0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
-           file://0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
-           file://0013-target-arm-Fix-vector-operation-segfault.patch \
-           file://0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch \
-	   file://CVE-2019-12155.patch \
+           file://0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
+           file://0006-chardev-connect-socket-to-a-spawned-command.patch \
+           file://0007-apic-fixup-fallthrough-to-PIC.patch \
+           file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
+           file://0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
-SRC_URI[md5sum] = "0afeca336fd57ae3d3086ec07f59d708"
-SRC_URI[sha256sum] = "13a93dfe75b86734326f8d5b475fde82ec692d5b5a338b4262aeeb6b0fa4e469"
+SRC_URI[md5sum] = "cdf2b5ca52b9abac9bacb5842fa420f8"
+SRC_URI[sha256sum] = "656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6"
 
 COMPATIBLE_HOST_mipsarchn32 = "null"
 COMPATIBLE_HOST_mipsarchn64 = "null"
@@ -141,7 +137,7 @@ PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
 PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native"
 PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native"
 PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
-PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2,"
+PACKAGECONFIG[ssh] = "--enable-libssh,--disable-libssh,libssh,"
 PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt,"
 PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle"
 PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1"
diff --git a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
index 5373915ff0..9478102ae5 100644
--- a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
+++ b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
@@ -1,4 +1,4 @@
-From 1cb804cf0e47116202011f3386b4739af668224a Mon Sep 17 00:00:00 2001
+From 4655dc18074e0be9d239f51dac32b61435da8549 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Thu, 27 Nov 2014 14:04:29 +0000
 Subject: [PATCH] qemu: Add missing wacom HID descriptor
@@ -19,10 +19,10 @@ Upstream-Status: Submitted
  1 file changed, 93 insertions(+), 1 deletion(-)
 
 diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
-index ac0bc83b..6f9b22d4 100644
+index 8c43db93..3ff8ca28 100644
 --- a/hw/usb/dev-wacom.c
 +++ b/hw/usb/dev-wacom.c
-@@ -72,6 +72,89 @@ static const USBDescStrings desc_strings = {
+@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = {
      [STR_SERIALNUMBER]     = "1",
  };
  
@@ -112,7 +112,7 @@ index ac0bc83b..6f9b22d4 100644
  static const USBDescIface desc_iface_wacom = {
      .bInterfaceNumber              = 0,
      .bNumEndpoints                 = 1,
-@@ -89,7 +172,7 @@ static const USBDescIface desc_iface_wacom = {
+@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wacom = {
                  0x00,          /*  u8  country_code */
                  0x01,          /*  u8  num_descriptors */
                  0x22,          /*  u8  type: Report */
@@ -121,7 +121,7 @@ index ac0bc83b..6f9b22d4 100644
              },
          },
      },
-@@ -269,6 +352,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
+@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
      }
  
      switch (request) {
diff --git a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
index 7b7c5d71a0..2ccddd53cf 100644
--- a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
+++ b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
@@ -1,4 +1,4 @@
-From 281116b31981b0b9e174bda8abe00f4eaa33c2ae Mon Sep 17 00:00:00 2001
+From 67751f3a23e3db3012f391b3b3b73a4484488ce9 Mon Sep 17 00:00:00 2001
 From: Juro Bystricky <juro.bystricky@intel.com>
 Date: Thu, 31 Aug 2017 11:06:56 -0700
 Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for
@@ -15,10 +15,10 @@ Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
  1 file changed, 8 insertions(+)
 
 diff --git a/tests/Makefile.include b/tests/Makefile.include
-index 36fc73fe..01fecd4d 100644
+index fd7fdb86..83b7f409 100644
 --- a/tests/Makefile.include
 +++ b/tests/Makefile.include
-@@ -1184,4 +1184,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
+@@ -1183,4 +1183,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
  -include $(wildcard tests/*.d)
  -include $(wildcard tests/libqos/*.d)
  
diff --git a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
index 9a18ca18e4..5c42d68030 100644
--- a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
+++ b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
@@ -1,4 +1,4 @@
-From bf04acef9ec31ddcc18ddbb4ac5b7b1e7368bf7d Mon Sep 17 00:00:00 2001
+From 235b94f1188597873c8776b019fed49947983392 Mon Sep 17 00:00:00 2001
 From: Jason Wessel <jason.wessel@windriver.com>
 Date: Fri, 28 Mar 2014 17:42:43 +0800
 Subject: [PATCH] qemu: Add addition environment space to boot loader
@@ -19,7 +19,7 @@ Signed-off-by: Roy Li <rongqing.li@windriver.com>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
-index 439665ab..285c78ef 100644
+index 20e019bf..d150b01c 100644
 --- a/hw/mips/mips_malta.c
 +++ b/hw/mips/mips_malta.c
 @@ -60,7 +60,7 @@
diff --git a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
index 9e326081f2..0ac4ab40b1 100644
--- a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
+++ b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
@@ -1,4 +1,4 @@
-From e40f797548bc3ff06c71b6cbe042a46406894d18 Mon Sep 17 00:00:00 2001
+From 3ad7a375015d47fdf5016e03e11fa93440d6d8bd Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Tue, 20 Oct 2015 22:19:08 +0100
 Subject: [PATCH] qemu: disable Valgrind
@@ -13,10 +13,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
  1 file changed, 9 deletions(-)
 
 diff --git a/configure b/configure
-index 1c563a70..eaf9bb5e 100755
+index 714e7fb6..dad4fc59 100755
 --- a/configure
 +++ b/configure
-@@ -5311,15 +5311,6 @@ fi
+@@ -5335,15 +5335,6 @@ fi
  # check if we have valgrind/valgrind.h
  
  valgrind_h=no
diff --git a/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
deleted file mode 100644
index 819720a3f2..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From 547c3710a1493d2fd6bb56b819cf162db433756a Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 9 Mar 2016 22:49:02 +0000
-Subject: [PATCH] qemu: Limit paths searched during user mode emulation
-
-By default qemu builds a complete list of directories within the user
-emulation sysroot (-L option). The OE sysroot directory is large and
-this is confusing, for example it indexes all pkgdata. In particular this
-confuses strace of qemu binaries with tons of irrelevant paths.
-
-This patch stops the code indexing up front and instead only indexes
-things if/as/when it needs to. This drastically reduces the files it
-reads and reduces memory usage and cleans up strace.
-
-It would also avoid the infinite directory traversal bug in [YOCTO #6996]
-although the code could still be vulnerable if it parsed those specific
-paths.
-
-RP
-2016/3/9
-Upstream-Status: Pending
-
----
- util/path.c | 44 ++++++++++++++++++++++----------------------
- 1 file changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/util/path.c b/util/path.c
-index 7f9fc272..a416cd4a 100644
---- a/util/path.c
-+++ b/util/path.c
-@@ -15,6 +15,7 @@ struct pathelem
-     char *name;
-     /* Full path name, eg. /usr/gnemul/x86-linux/lib. */
-     char *pathname;
-+    int populated_entries;
-     struct pathelem *parent;
-     /* Children */
-     unsigned int num_entries;
-@@ -45,6 +46,7 @@ static struct pathelem *new_entry(const char *root,
-     new->name = g_strdup(name);
-     new->pathname = g_strdup_printf("%s/%s", root, name);
-     new->num_entries = 0;
-+    new->populated_entries = 0;
-     return new;
- }
- 
-@@ -53,15 +55,16 @@ static struct pathelem *new_entry(const char *root,
- /* Not all systems provide this feature */
- #if defined(DT_DIR) && defined(DT_UNKNOWN) && defined(DT_LNK)
- # define dirent_type(dirent) ((dirent)->d_type)
--# define is_dir_maybe(type) \
--    ((type) == DT_DIR || (type) == DT_UNKNOWN || (type) == DT_LNK)
-+# define is_not_dir(type) \
-+    ((type) != DT_DIR && (type) != DT_UNKNOWN && (type) != DT_LNK)
- #else
- # define dirent_type(dirent) (1)
--# define is_dir_maybe(type)  (type)
-+# define is_not_dir(type)  (0)
- #endif
- 
- static struct pathelem *add_dir_maybe(struct pathelem *path)
- {
-+    unsigned int i;
-     DIR *dir;
- 
-     if ((dir = opendir(path->pathname)) != NULL) {
-@@ -74,6 +77,11 @@ static struct pathelem *add_dir_maybe(struct pathelem *path)
-         }
-         closedir(dir);
-     }
-+
-+    for (i = 0; i < path->num_entries; i++)
-+        (path->entries[i])->parent = path;
-+
-+    path->populated_entries = 1;
-     return path;
- }
- 
-@@ -89,26 +97,16 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name,
-     e = &root->entries[root->num_entries-1];
- 
-     *e = new_entry(root->pathname, root, name);
--    if (is_dir_maybe(type)) {
--        *e = add_dir_maybe(*e);
-+    if (is_not_dir(type)) {
-+        (*e)->populated_entries = 1;
-     }
- 
-     return root;
- }
- 
--/* This needs to be done after tree is stabilized (ie. no more reallocs!). */
--static void set_parents(struct pathelem *child, struct pathelem *parent)
--{
--    unsigned int i;
--
--    child->parent = parent;
--    for (i = 0; i < child->num_entries; i++)
--        set_parents(child->entries[i], child);
--}
--
- /* FIXME: Doesn't handle DIR/.. where DIR is not in emulated dir. */
- static const char *
--follow_path(const struct pathelem *cursor, const char *name)
-+follow_path(struct pathelem *cursor, struct pathelem **source, const char *name)
- {
-     unsigned int i, namelen;
- 
-@@ -119,14 +117,18 @@ follow_path(const struct pathelem *cursor, const char *name)
-         return cursor->pathname;
- 
-     if (strneq(name, namelen, ".."))
--        return follow_path(cursor->parent, name + namelen);
-+        return follow_path(cursor->parent, &cursor->parent, name + namelen);
- 
-     if (strneq(name, namelen, "."))
--        return follow_path(cursor, name + namelen);
-+        return follow_path(cursor, source, name + namelen);
-+
-+    if (!cursor->populated_entries)
-+        *source = add_dir_maybe(cursor);
-+        cursor = *source;
- 
-     for (i = 0; i < cursor->num_entries; i++)
-         if (strneq(name, namelen, cursor->entries[i]->name))
--            return follow_path(cursor->entries[i], name + namelen);
-+            return follow_path(cursor->entries[i], &cursor->entries[i], name + namelen);
- 
-     /* Not found */
-     return NULL;
-@@ -160,8 +162,6 @@ void init_paths(const char *prefix)
-         g_free(base->name);
-         g_free(base);
-         base = NULL;
--    } else {
--        set_parents(base, base);
-     }
- }
- 
-@@ -173,5 +173,5 @@ const char *path(const char *name)
-     if (!base || !name || name[0] != '/')
-         return name;
- 
--    return follow_path(base, name) ?: name;
-+    return follow_path(base, &base, name) ?: name;
- }
diff --git a/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
similarity index 82%
rename from meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
rename to meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
index b62a588c66..a73681510e 100644
--- a/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
+++ b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
@@ -1,4 +1,4 @@
-From 107fd860529a3c1319d54c3c225758457b0d9394 Mon Sep 17 00:00:00 2001
+From 80e6070bcdfe636b103a13598e6c38ad0d0e7624 Mon Sep 17 00:00:00 2001
 From: Stephen Arnold <sarnold@vctlabs.com>
 Date: Sun, 12 Jun 2016 18:09:56 -0700
 Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment
@@ -10,10 +10,10 @@ Upstream-Status: Pending
  1 file changed, 4 deletions(-)
 
 diff --git a/configure b/configure
-index eaf9bb5e..de2933d1 100755
+index dad4fc59..685bbe5e 100755
 --- a/configure
 +++ b/configure
-@@ -5928,10 +5928,6 @@ write_c_skeleton
+@@ -5971,10 +5971,6 @@ write_c_skeleton
  if test "$gcov" = "yes" ; then
    CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
    LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
diff --git a/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
similarity index 93%
rename from meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
rename to meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
index f3f3dc3f5e..a42385530f 100644
--- a/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
+++ b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
@@ -1,4 +1,4 @@
-From 136e159482a1bc8676cbe6e767055d0c3fb20065 Mon Sep 17 00:00:00 2001
+From ad853601e75f6d0dd09672bcca05fbe4fac766a4 Mon Sep 17 00:00:00 2001
 From: Alistair Francis <alistair.francis@xilinx.com>
 Date: Thu, 21 Dec 2017 11:35:16 -0800
 Subject: [PATCH] chardev: connect socket to a spawned command
@@ -52,10 +52,10 @@ Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
  3 files changed, 109 insertions(+)
 
 diff --git a/chardev/char-socket.c b/chardev/char-socket.c
-index 3916505d..a8e9dce8 100644
+index 7ca5d97a..207fae4a 100644
 --- a/chardev/char-socket.c
 +++ b/chardev/char-socket.c
-@@ -1273,6 +1273,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
+@@ -1278,6 +1278,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
      return true;
  }
  
@@ -123,7 +123,7 @@ index 3916505d..a8e9dce8 100644
  
  static void qmp_chardev_open_socket(Chardev *chr,
                                      ChardevBackend *backend,
-@@ -1281,6 +1342,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
+@@ -1286,6 +1347,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
  {
      SocketChardev *s = SOCKET_CHARDEV(chr);
      ChardevSocket *sock = backend->u.socket.data;
@@ -133,7 +133,7 @@ index 3916505d..a8e9dce8 100644
      bool do_nodelay     = sock->has_nodelay ? sock->nodelay : false;
      bool is_listen      = sock->has_server  ? sock->server  : true;
      bool is_telnet      = sock->has_telnet  ? sock->telnet  : false;
-@@ -1346,6 +1410,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
+@@ -1351,6 +1415,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
  
      update_disconnected_filename(s);
  
@@ -148,7 +148,7 @@ index 3916505d..a8e9dce8 100644
      if (s->is_listen) {
          if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
                                             is_waitconnect, errp) < 0) {
-@@ -1365,9 +1437,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
+@@ -1370,9 +1442,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
      const char *host = qemu_opt_get(opts, "host");
      const char *port = qemu_opt_get(opts, "port");
      const char *fd = qemu_opt_get(opts, "fd");
@@ -175,7 +175,7 @@ index 3916505d..a8e9dce8 100644
      if ((!!path + !!fd + !!host) != 1) {
          error_setg(errp,
                     "Exactly one of 'path', 'fd' or 'host' required");
-@@ -1410,12 +1499,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
+@@ -1415,12 +1504,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
      sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
      sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
  
@@ -201,10 +201,10 @@ index 3916505d..a8e9dce8 100644
          addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
          addr->u.inet.data = g_new(InetSocketAddress, 1);
 diff --git a/chardev/char.c b/chardev/char.c
-index 514cd6b0..36a40d67 100644
+index 7b6b2cb1..0c2ca64b 100644
 --- a/chardev/char.c
 +++ b/chardev/char.c
-@@ -835,6 +835,9 @@ QemuOptsList qemu_chardev_opts = {
+@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = {
          },{
              .name = "path",
              .type = QEMU_OPT_STRING,
diff --git a/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
similarity index 90%
rename from meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
rename to meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
index 13037f33f3..b50e8c2545 100644
--- a/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
+++ b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
@@ -1,4 +1,4 @@
-From 1b3f264e2ba18caf658fae27293c426c8366c6a3 Mon Sep 17 00:00:00 2001
+From f51e49e7d7d87b7254242b7360f99c2df94a5a2d Mon Sep 17 00:00:00 2001
 From: Mark Asselstine <mark.asselstine@windriver.com>
 Date: Tue, 26 Feb 2013 11:43:28 -0500
 Subject: [PATCH] apic: fixup fallthrough to PIC
@@ -30,10 +30,10 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/hw/intc/apic.c b/hw/intc/apic.c
-index 6ea619c3..f892811e 100644
+index bce89911..df4b582e 100644
 --- a/hw/intc/apic.c
 +++ b/hw/intc/apic.c
-@@ -604,7 +604,7 @@ int apic_accept_pic_intr(DeviceState *dev)
+@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev)
      APICCommonState *s = APIC(dev);
      uint32_t lvt0;
  
diff --git a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
similarity index 90%
rename from meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
rename to meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
index c572ff94d0..e562f25bec 100644
--- a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
+++ b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
@@ -1,4 +1,4 @@
-From a33ae91504ea4d254b5ace64a84791d3c96c9773 Mon Sep 17 00:00:00 2001
+From 25a064f91f73630e5dff2a6aeb23d953c469cea6 Mon Sep 17 00:00:00 2001
 From: Alistair Francis <alistair.francis@xilinx.com>
 Date: Wed, 17 Jan 2018 10:51:49 -0800
 Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target
@@ -19,10 +19,10 @@ Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/linux-user/main.c b/linux-user/main.c
-index a0aba9cb..34c54924 100644
+index 8ffc5251..4067e739 100644
 --- a/linux-user/main.c
 +++ b/linux-user/main.c
-@@ -69,7 +69,7 @@ int have_guest_base;
+@@ -77,7 +77,7 @@ int have_guest_base;
        (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32))
  /* There are a number of places where we assign reserved_va to a variable
     of type abi_ulong and expect it to fit.  Avoid the last page.  */
diff --git a/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch b/meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
similarity index 63%
rename from meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
rename to meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
index 3418eb7c65..15a8d6ce95 100644
--- a/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
+++ b/meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
@@ -1,4 +1,4 @@
-From 2a66bd95c856de6950fbd802c5b99075207c1d76 Mon Sep 17 00:00:00 2001
+From 36d61e01738549c481bac1ec43cc98e40728e352 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <martin.jansa@lge.com>
 Date: Fri, 1 Jun 2018 08:41:07 +0000
 Subject: [PATCH] Revert "linux-user: fix mmap/munmap/mprotect/mremap/shmat"
@@ -16,17 +16,16 @@ This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583.
 Upstream-Status: Pending
 
 ---
- include/exec/cpu-all.h  |  6 +-----
- include/exec/cpu_ldst.h | 16 +++++++++-------
- linux-user/mmap.c       | 17 ++++-------------
- linux-user/syscall.c    |  5 +----
- 4 files changed, 15 insertions(+), 29 deletions(-)
+ include/exec/cpu-all.h |  6 +-----
+ linux-user/mmap.c      | 17 ++++-------------
+ linux-user/syscall.c   |  5 +----
+ 3 files changed, 6 insertions(+), 22 deletions(-)
 
 diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
-index b16c9ec5..612db6a0 100644
+index 536ea58f..4c63a6a2 100644
 --- a/include/exec/cpu-all.h
 +++ b/include/exec/cpu-all.h
-@@ -163,12 +163,8 @@ extern unsigned long guest_base;
+@@ -162,12 +162,8 @@ extern unsigned long guest_base;
  extern int have_guest_base;
  extern unsigned long reserved_va;
  
@@ -40,38 +39,11 @@ index b16c9ec5..612db6a0 100644
  #else
  
  #include "exec/hwaddr.h"
-diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
-index d78041d7..845639f7 100644
---- a/include/exec/cpu_ldst.h
-+++ b/include/exec/cpu_ldst.h
-@@ -62,13 +62,15 @@ typedef uint64_t abi_ptr;
- /* All direct uses of g2h and h2g need to go away for usermode softmmu.  */
- #define g2h(x) ((void *)((unsigned long)(abi_ptr)(x) + guest_base))
- 
--#define guest_addr_valid(x) ((x) <= GUEST_ADDR_MAX)
--#define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base)
--
--static inline int guest_range_valid(unsigned long start, unsigned long len)
--{
--    return len - 1 <= GUEST_ADDR_MAX && start <= GUEST_ADDR_MAX - len + 1;
--}
-+#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
-+#define h2g_valid(x) 1
-+#else
-+#define h2g_valid(x) ({ \
-+    unsigned long __guest = (unsigned long)(x) - guest_base; \
-+    (__guest < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \
-+    (!reserved_va || (__guest < reserved_va)); \
-+})
-+#endif
- 
- #define h2g_nocheck(x) ({ \
-     unsigned long __ret = (unsigned long)(x) - guest_base; \
 diff --git a/linux-user/mmap.c b/linux-user/mmap.c
-index e0249efe..cfe34b35 100644
+index 46a6e3a7..77354654 100644
 --- a/linux-user/mmap.c
 +++ b/linux-user/mmap.c
-@@ -79,7 +79,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
+@@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
          return -TARGET_EINVAL;
      len = TARGET_PAGE_ALIGN(len);
      end = start + len;
@@ -80,7 +52,7 @@ index e0249efe..cfe34b35 100644
          return -TARGET_ENOMEM;
      }
      prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
-@@ -490,8 +490,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
+@@ -495,8 +495,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
           * It can fail only on 64-bit host with 32-bit target.
           * On any other target/host host mmap() handles this error correctly.
           */
@@ -91,7 +63,7 @@ index e0249efe..cfe34b35 100644
              goto fail;
          }
  
-@@ -631,10 +631,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
+@@ -636,10 +636,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
      if (start & ~TARGET_PAGE_MASK)
          return -TARGET_EINVAL;
      len = TARGET_PAGE_ALIGN(len);
@@ -103,7 +75,7 @@ index e0249efe..cfe34b35 100644
      mmap_lock();
      end = start + len;
      real_start = start & qemu_host_page_mask;
-@@ -689,13 +687,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
+@@ -694,13 +692,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
      int prot;
      void *host_addr;
  
@@ -118,10 +90,10 @@ index e0249efe..cfe34b35 100644
  
      if (flags & MREMAP_FIXED) {
 diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 96cd4bf8..e6754772 100644
+index 8367cb13..6030402b 100644
 --- a/linux-user/syscall.c
 +++ b/linux-user/syscall.c
-@@ -3860,9 +3860,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
+@@ -4030,9 +4030,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
              return -TARGET_EINVAL;
          }
      }
@@ -131,7 +103,7 @@ index 96cd4bf8..e6754772 100644
  
      mmap_lock();
  
-@@ -6633,7 +6630,7 @@ static int open_self_maps(void *cpu_env, int fd)
+@@ -6880,7 +6877,7 @@ static int open_self_maps(void *cpu_env, int fd)
          }
          if (h2g_valid(min)) {
              int flags = page_get_flags(h2g(min));
diff --git a/meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch b/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch
rename to meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
diff --git a/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
similarity index 97%
rename from meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
rename to meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
index 04664195d1..e5ebfc1267 100644
--- a/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
+++ b/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
@@ -37,7 +37,7 @@ index e83f72b4..e6e2576e 100644
      if (err && err != ESRCH) {
          fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
 +        fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
-+        cpu_dump_state(cpu, stderr, fprintf, 0);
++        cpu_dump_state(cpu, stderr, 0);
 +        backtrace_print();
          exit(1);
      }
diff --git a/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch b/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
deleted file mode 100644
index c1dd957dc9..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 2f143d3ad1c05e91cf2cdf5de06d59a80a95e6c8 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Thu, 23 May 2019 14:47:43 +0100
-Subject: [PATCH] target/arm: Fix vector operation segfault
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Commit 89e68b575 "target/arm: Use vector operations for saturation"
-causes this abort() when booting QEMU ARM with a Cortex-A15:
-
-0  0x00007ffff4c2382f in raise () at /usr/lib/libc.so.6
-1  0x00007ffff4c0e672 in abort () at /usr/lib/libc.so.6
-2  0x00005555559c1839 in disas_neon_data_insn (insn=<optimized out>, s=<optimized out>) at ./target/arm/translate.c:6673
-3  0x00005555559c1839 in disas_neon_data_insn (s=<optimized out>, insn=<optimized out>) at ./target/arm/translate.c:6386
-4  0x00005555559cd8a4 in disas_arm_insn (insn=4081107068, s=0x7fffe59a9510) at ./target/arm/translate.c:9289
-5  0x00005555559cd8a4 in arm_tr_translate_insn (dcbase=0x7fffe59a9510, cpu=<optimized out>) at ./target/arm/translate.c:13612
-6  0x00005555558d1d39 in translator_loop (ops=0x5555561cc580 <arm_translator_ops>, db=0x7fffe59a9510, cpu=0x55555686a2f0, tb=<optimized out>, max_insns=<optimized out>) at ./accel/tcg/translator.c:96
-7  0x00005555559d10d4 in gen_intermediate_code (cpu=cpu@entry=0x55555686a2f0, tb=tb@entry=0x7fffd7840080 <code_gen_buffer+126091347>, max_insns=max_insns@entry=512) at ./target/arm/translate.c:13901
-8  0x00005555558d06b9 in tb_gen_code (cpu=cpu@entry=0x55555686a2f0, pc=3067096216, cs_base=0, flags=192, cflags=-16252928, cflags@entry=524288) at ./accel/tcg/translate-all.c:1736
-9  0x00005555558ce467 in tb_find (cf_mask=524288, tb_exit=1, last_tb=0x7fffd783e640 <code_gen_buffer+126084627>, cpu=0x1) at ./accel/tcg/cpu-exec.c:407
-10 0x00005555558ce467 in cpu_exec (cpu=cpu@entry=0x55555686a2f0) at ./accel/tcg/cpu-exec.c:728
-11 0x000055555588b0cf in tcg_cpu_exec (cpu=0x55555686a2f0) at ./cpus.c:1431
-12 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=0x55555686a2f0) at ./cpus.c:1735
-13 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=arg@entry=0x55555686a2f0) at ./cpus.c:1709
-14 0x0000555555d2629a in qemu_thread_start (args=<optimized out>) at ./util/qemu-thread-posix.c:502
-15 0x00007ffff4db8a92 in start_thread () at /usr/lib/libpthread.
-
-This patch ensures that we don't hit the abort() in the second switch
-case in disas_neon_data_insn() as we will return from the first case.
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
-Tested-by: Alex Bennée <alex.bennee@linaro.org>
-Message-id: ad91b397f360b2fc7f4087e476f7df5b04d42ddb.1558021877.git.alistair.francis@wdc.com
-Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-Upstream-Status: Backport [4.1.0]
----
- target/arm/translate.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/target/arm/translate.c b/target/arm/translate.c
-index dd053c80d6..298c262825 100644
---- a/target/arm/translate.c
-+++ b/target/arm/translate.c
-@@ -6598,13 +6598,13 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
-             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
-                            rn_ofs, rm_ofs, vec_size, vec_size,
-                            (u ? uqadd_op : sqadd_op) + size);
--            break;
-+            return 0;
- 
-         case NEON_3R_VQSUB:
-             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
-                            rn_ofs, rm_ofs, vec_size, vec_size,
-                            (u ? uqsub_op : sqsub_op) + size);
--            break;
-+            return 0;
- 
-         case NEON_3R_VMUL: /* VMUL */
-             if (u) {
--- 
-2.21.0
-
diff --git a/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch b/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
deleted file mode 100644
index 7cac8ef3d1..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
+++ /dev/null
@@ -1,339 +0,0 @@
-From 8104018ba4c66e568d2583a3a0ee940851ee7471 Mon Sep 17 00:00:00 2001
-From: Daniel P. Berrangé <berrange@redhat.com>
-Date: Tue, 23 Jul 2019 17:50:00 +0200
-Subject: [PATCH] linux-user: fix to handle variably sized SIOCGSTAMP with new
- kernels
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The SIOCGSTAMP symbol was previously defined in the
-asm-generic/sockios.h header file. QEMU sees that header
-indirectly via sys/socket.h
-
-In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
-the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
-Instead it provides only SIOCGSTAMP_OLD, which only uses a
-32-bit time_t on 32-bit architectures.
-
-The linux/sockios.h header then defines SIOCGSTAMP using
-either SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. If
-SIOCGSTAMP_NEW is used, then the tv_sec field is 64-bit even
-on 32-bit architectures
-
-To cope with this we must now convert the old and new type from
-the target to the host one.
-
-Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-Reviewed-by: Arnd Bergmann <arnd@arndb.de>
-Message-Id: <20190718130641.15294-1-laurent@vivier.eu>
-Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
----
-Upstream-Status: Backport [upstream commit: 6d5d5dde9adb5acb32e6b8e3dfbf47fff0f308d2]
-
- linux-user/ioctls.h        |  21 +++++-
- linux-user/syscall.c       | 140 +++++++++++++++++++++++++++++--------
- linux-user/syscall_defs.h  |  30 +++++++-
- linux-user/syscall_types.h |   6 --
- 4 files changed, 159 insertions(+), 38 deletions(-)
-
-diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
-index ae8951625f..e6a27ad9d6 100644
---- a/linux-user/ioctls.h
-+++ b/linux-user/ioctls.h
-@@ -219,8 +219,25 @@
-   IOCTL(SIOCGRARP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
-   IOCTL(SIOCGIWNAME, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_char_ifreq)))
-   IOCTL(SIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) /* pid_t */
--  IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval)))
--  IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec)))
-+
-+  /*
-+   * We can't use IOCTL_SPECIAL() because it will set
-+   * host_cmd to XXX_OLD and XXX_NEW and these macros
-+   * are not defined with kernel prior to 5.2.
-+   * We must set host_cmd to the same value as in target_cmd
-+   * otherwise the consistency check in syscall_init()
-+   * will trigger an error.
-+   * host_cmd is ignored by the do_ioctl_XXX() helpers.
-+   * FIXME: create a macro to define this kind of entry
-+   */
-+  { TARGET_SIOCGSTAMP_OLD, TARGET_SIOCGSTAMP_OLD,
-+    "SIOCGSTAMP_OLD", IOC_R, do_ioctl_SIOCGSTAMP },
-+  { TARGET_SIOCGSTAMPNS_OLD, TARGET_SIOCGSTAMPNS_OLD,
-+    "SIOCGSTAMPNS_OLD", IOC_R, do_ioctl_SIOCGSTAMPNS },
-+  { TARGET_SIOCGSTAMP_NEW, TARGET_SIOCGSTAMP_NEW,
-+    "SIOCGSTAMP_NEW", IOC_R, do_ioctl_SIOCGSTAMP },
-+  { TARGET_SIOCGSTAMPNS_NEW, TARGET_SIOCGSTAMPNS_NEW,
-+    "SIOCGSTAMPNS_NEW", IOC_R, do_ioctl_SIOCGSTAMPNS },
- 
-   IOCTL(RNDGETENTCNT, IOC_R, MK_PTR(TYPE_INT))
-   IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT))
-diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 96cd4bf86d..6df480e13d 100644
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -37,6 +37,7 @@
- #include <sched.h>
- #include <sys/timex.h>
- #include <sys/socket.h>
-+#include <linux/sockios.h>
- #include <sys/un.h>
- #include <sys/uio.h>
- #include <poll.h>
-@@ -1139,8 +1140,9 @@ static inline abi_long copy_from_user_timeval(struct timeval *tv,
- {
-     struct target_timeval *target_tv;
- 
--    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1))
-+    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1)) {
-         return -TARGET_EFAULT;
-+    }
- 
-     __get_user(tv->tv_sec, &target_tv->tv_sec);
-     __get_user(tv->tv_usec, &target_tv->tv_usec);
-@@ -1155,8 +1157,26 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
- {
-     struct target_timeval *target_tv;
- 
--    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0))
-+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
-+        return -TARGET_EFAULT;
-+    }
-+
-+    __put_user(tv->tv_sec, &target_tv->tv_sec);
-+    __put_user(tv->tv_usec, &target_tv->tv_usec);
-+
-+    unlock_user_struct(target_tv, target_tv_addr, 1);
-+
-+    return 0;
-+}
-+
-+static inline abi_long copy_to_user_timeval64(abi_ulong target_tv_addr,
-+                                             const struct timeval *tv)
-+{
-+    struct target__kernel_sock_timeval *target_tv;
-+
-+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
-         return -TARGET_EFAULT;
-+    }
- 
-     __put_user(tv->tv_sec, &target_tv->tv_sec);
-     __put_user(tv->tv_usec, &target_tv->tv_usec);
-@@ -1166,6 +1186,48 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
-     return 0;
- }
- 
-+static inline abi_long target_to_host_timespec(struct timespec *host_ts,
-+                                               abi_ulong target_addr)
-+{
-+    struct target_timespec *target_ts;
-+
-+    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1)) {
-+        return -TARGET_EFAULT;
-+    }
-+    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
-+    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+    unlock_user_struct(target_ts, target_addr, 0);
-+    return 0;
-+}
-+
-+static inline abi_long host_to_target_timespec(abi_ulong target_addr,
-+                                               struct timespec *host_ts)
-+{
-+    struct target_timespec *target_ts;
-+
-+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
-+        return -TARGET_EFAULT;
-+    }
-+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
-+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+    unlock_user_struct(target_ts, target_addr, 1);
-+    return 0;
-+}
-+
-+static inline abi_long host_to_target_timespec64(abi_ulong target_addr,
-+                                                 struct timespec *host_ts)
-+{
-+    struct target__kernel_timespec *target_ts;
-+
-+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
-+        return -TARGET_EFAULT;
-+    }
-+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
-+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+    unlock_user_struct(target_ts, target_addr, 1);
-+    return 0;
-+}
-+
- static inline abi_long copy_from_user_timezone(struct timezone *tz,
-                                                abi_ulong target_tz_addr)
- {
-@@ -4790,6 +4852,54 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp,
-     return get_errno(safe_ioctl(fd, ie->host_cmd, sig));
- }
- 
-+static abi_long do_ioctl_SIOCGSTAMP(const IOCTLEntry *ie, uint8_t *buf_temp,
-+                                    int fd, int cmd, abi_long arg)
-+{
-+    struct timeval tv;
-+    abi_long ret;
-+
-+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMP, &tv));
-+    if (is_error(ret)) {
-+        return ret;
-+    }
-+
-+    if (cmd == (int)TARGET_SIOCGSTAMP_OLD) {
-+        if (copy_to_user_timeval(arg, &tv)) {
-+            return -TARGET_EFAULT;
-+        }
-+    } else {
-+        if (copy_to_user_timeval64(arg, &tv)) {
-+            return -TARGET_EFAULT;
-+        }
-+    }
-+
-+    return ret;
-+}
-+
-+static abi_long do_ioctl_SIOCGSTAMPNS(const IOCTLEntry *ie, uint8_t *buf_temp,
-+                                      int fd, int cmd, abi_long arg)
-+{
-+    struct timespec ts;
-+    abi_long ret;
-+
-+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMPNS, &ts));
-+    if (is_error(ret)) {
-+        return ret;
-+    }
-+
-+    if (cmd == (int)TARGET_SIOCGSTAMPNS_OLD) {
-+        if (host_to_target_timespec(arg, &ts)) {
-+            return -TARGET_EFAULT;
-+        }
-+    } else{
-+        if (host_to_target_timespec64(arg, &ts)) {
-+            return -TARGET_EFAULT;
-+        }
-+    }
-+
-+    return ret;
-+}
-+
- #ifdef TIOCGPTPEER
- static abi_long do_ioctl_tiocgptpeer(const IOCTLEntry *ie, uint8_t *buf_temp,
-                                      int fd, int cmd, abi_long arg)
-@@ -6160,32 +6270,6 @@ static inline abi_long target_ftruncate64(void *cpu_env, abi_long arg1,
- }
- #endif
- 
--static inline abi_long target_to_host_timespec(struct timespec *host_ts,
--                                               abi_ulong target_addr)
--{
--    struct target_timespec *target_ts;
--
--    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1))
--        return -TARGET_EFAULT;
--    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
--    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
--    unlock_user_struct(target_ts, target_addr, 0);
--    return 0;
--}
--
--static inline abi_long host_to_target_timespec(abi_ulong target_addr,
--                                               struct timespec *host_ts)
--{
--    struct target_timespec *target_ts;
--
--    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0))
--        return -TARGET_EFAULT;
--    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
--    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
--    unlock_user_struct(target_ts, target_addr, 1);
--    return 0;
--}
--
- static inline abi_long target_to_host_itimerspec(struct itimerspec *host_itspec,
-                                                  abi_ulong target_addr)
- {
-diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
-index 12c8407144..c918419306 100644
---- a/linux-user/syscall_defs.h
-+++ b/linux-user/syscall_defs.h
-@@ -208,16 +208,34 @@ struct target_linger {
-     abi_int l_linger;       /* How long to linger for       */
- };
- 
-+#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
-+struct target_timeval {
-+    abi_long tv_sec;
-+    abi_int tv_usec;
-+};
-+#define target__kernel_sock_timeval target_timeval
-+#else
- struct target_timeval {
-     abi_long tv_sec;
-     abi_long tv_usec;
- };
- 
-+struct target__kernel_sock_timeval {
-+    abi_llong tv_sec;
-+    abi_llong tv_usec;
-+};
-+#endif
-+
- struct target_timespec {
-     abi_long tv_sec;
-     abi_long tv_nsec;
- };
- 
-+struct target__kernel_timespec {
-+    abi_llong tv_sec;
-+    abi_llong tv_nsec;
-+};
-+
- struct target_timezone {
-     abi_int tz_minuteswest;
-     abi_int tz_dsttime;
-@@ -743,8 +761,16 @@ struct target_pollfd {
- #define TARGET_SIOCATMARK      0x8905
- #define TARGET_SIOCGPGRP       0x8904
- #endif
--#define TARGET_SIOCGSTAMP      0x8906          /* Get stamp (timeval) */
--#define TARGET_SIOCGSTAMPNS    0x8907          /* Get stamp (timespec) */
-+#if defined(TARGET_SH4)
-+#define TARGET_SIOCGSTAMP_OLD   TARGET_IOR('s', 100, struct target_timeval)
-+#define TARGET_SIOCGSTAMPNS_OLD TARGET_IOR('s', 101, struct target_timespec)
-+#else
-+#define TARGET_SIOCGSTAMP_OLD   0x8906
-+#define TARGET_SIOCGSTAMPNS_OLD 0x8907
-+#endif
-+
-+#define TARGET_SIOCGSTAMP_NEW   TARGET_IOR(0x89, 0x06, abi_llong[2])
-+#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2])
- 
- /* Networking ioctls */
- #define TARGET_SIOCADDRT       0x890B          /* add routing table entry */
-diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
-index b98a23b0f1..4e36983826 100644
---- a/linux-user/syscall_types.h
-+++ b/linux-user/syscall_types.h
-@@ -14,12 +14,6 @@ STRUCT(serial_icounter_struct,
- STRUCT(sockaddr,
-        TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
- 
--STRUCT(timeval,
--       MK_ARRAY(TYPE_LONG, 2))
--
--STRUCT(timespec,
--       MK_ARRAY(TYPE_LONG, 2))
--
- STRUCT(rtentry,
-        TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
-        TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
--- 
-2.21.0
-
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch b/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
deleted file mode 100644
index c49a5e9a2a..0000000000
--- a/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d52680fc932efb8a2f334cc6993e705ed1e31e99 Mon Sep 17 00:00:00 2001
-From: Prasad J Pandit <pjp@fedoraproject.org>
-Date: Thu, 25 Apr 2019 12:05:34 +0530
-Subject: [PATCH] qxl: check release info object
-
-When releasing spice resources in release_resource() routine,
-if release info object 'ext.info' is null, it leads to null
-pointer dereference. Add check to avoid it.
-
-Reported-by: Bugs SysSec <bugs-syssec@rub.de>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Message-id: 20190425063534.32747-1-ppandit@redhat.com
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-
-Upstream-Status: Backport
-CVE: CVE-2019-12155
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- hw/display/qxl.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/hw/display/qxl.c b/hw/display/qxl.c
-index c8ce5781e03..632923add23 100644
---- a/hw/display/qxl.c
-+++ b/hw/display/qxl.c
-@@ -777,6 +777,9 @@ static void interface_release_resource(QXLInstance *sin,
-     QXLReleaseRing *ring;
-     uint64_t *item, id;
- 
-+    if (!ext.info) {
-+        return;
-+    }
-     if (ext.group_id == MEMSLOT_GROUP_HOST) {
-         /* host group -> vga mode update request */
-         QXLCommandExt *cmdext = (void *)(intptr_t)(ext.info->id);
diff --git a/meta/recipes-devtools/qemu/qemu_4.0.0.bb b/meta/recipes-devtools/qemu/qemu_4.1.0.bb
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu_4.0.0.bb
rename to meta/recipes-devtools/qemu/qemu_4.1.0.bb
-- 
2.22.0



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

* [PATCH 2/3] scripts/runqemu: Add support for the BIOS variable
  2019-08-15 21:31 [PATCH 1/3] qemu: Upgrade to version 4.1 Alistair Francis
@ 2019-08-15 21:31 ` Alistair Francis
  2019-08-15 21:31 ` [PATCH 3/3] qemuriscv64: Specify the firmware as a bios instead of kernel Alistair Francis
  2019-08-17 13:57 ` [PATCH 1/3] qemu: Upgrade to version 4.1 Khem Raj
  2 siblings, 0 replies; 7+ messages in thread
From: Alistair Francis @ 2019-08-15 21:31 UTC (permalink / raw)
  To: openembedded-core

Add support for specifying a BIOS the same way that the KERNEL variable
is specified. This includes specifying a QB_DEFAULT_BIOS variable.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
 scripts/runqemu | 53 +++++++++++++++++++++++++++----------------------
 1 file changed, 29 insertions(+), 24 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index df3c8aad08..e9b83737cb 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -59,6 +59,7 @@ def print_usage():
 Usage: you can run this script with any valid combination
 of the following environment variables (in any order):
   KERNEL - the kernel image file to use
+  BIOS - the bios image file to use
   ROOTFS - the rootfs image file or nfsroot directory to use
   DEVICE_TREE - the device tree blob to use
   MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified)
@@ -77,8 +78,6 @@ of the following environment variables (in any order):
     audio - enable audio
     [*/]ovmf* - OVMF firmware file or base name for booting with UEFI
   tcpserial=<port> - specify tcp serial port number
-  biosdir=<dir> - specify custom bios dir
-  biosfilename=<filename> - specify bios filename
   qemuparams=<xyz> - specify custom parameters to QEMU
   bootparams=<xyz> - specify custom kernel parameters during boot
   help, -h, --help: print this text
@@ -129,6 +128,7 @@ class BaseConfig(object):
         self.env_vars = ('MACHINE',
                         'ROOTFS',
                         'KERNEL',
+                        'BIOS',
                         'DEVICE_TREE',
                         'DEPLOY_DIR_IMAGE',
                         'OE_TMPDIR',
@@ -155,6 +155,7 @@ class BaseConfig(object):
         self.qemuboot = ''
         self.qbconfload = False
         self.kernel = ''
+        self.bios = ''
         self.kernel_cmdline = ''
         self.kernel_cmdline_script = ''
         self.bootparams = ''
@@ -171,7 +172,6 @@ class BaseConfig(object):
         self.saved_stty = ''
         self.audio_enabled = False
         self.tcpserial_portnum = ''
-        self.custombiosdir = ''
         self.taplock = ''
         self.taplock_descriptor = None
         self.portlocks = {}
@@ -480,10 +480,6 @@ class BaseConfig(object):
                 self.qemu_opt_script += ' -vnc :0'
             elif arg.startswith('tcpserial='):
                 self.tcpserial_portnum = '%s' % arg[len('tcpserial='):]
-            elif arg.startswith('biosdir='):
-                self.custombiosdir = arg[len('biosdir='):]
-            elif arg.startswith('biosfilename='):
-                self.qemu_opt_script += ' -bios %s' % arg[len('biosfilename='):]
             elif arg.startswith('qemuparams='):
                 self.qemuparams = ' %s' % arg[len('qemuparams='):]
             elif arg.startswith('bootparams='):
@@ -725,25 +721,30 @@ class BaseConfig(object):
             if not os.path.exists(self.dtb):
                 raise RunQemuError('DTB not found: %s, %s or %s' % cmds)
 
-    def check_biosdir(self):
-        """Check custombiosdir"""
-        if not self.custombiosdir:
+    def check_bios(self):
+        """Check and set bios"""
+
+        # See if the user supplied a BIOS option
+        if self.get('BIOS'):
+            self.bios = self.get('BIOS')
+
+        # QB_DEFAULT_BIOS is always a full file path
+        bios_name = os.path.basename(self.get('QB_DEFAULT_BIOS'))
+
+        # The user didn't want a bios to be loaded
+        if (bios_name == "" or bios_name == "none") and not self.bios:
             return
 
-        biosdir = ""
-        biosdir_native = "%s/%s" % (self.get('STAGING_DIR_NATIVE'), self.custombiosdir)
-        biosdir_host = "%s/%s" % (self.get('STAGING_DIR_HOST'), self.custombiosdir)
-        for i in (self.custombiosdir, biosdir_native, biosdir_host):
-            if os.path.isdir(i):
-                biosdir = i
-                break
+        if not self.bios:
+            deploy_dir_image = self.get('DEPLOY_DIR_IMAGE')
+            self.bios = "%s/%s" % (deploy_dir_image, bios_name)
+
+            if not self.bios:
+                raise RunQemuError('BIOS not found: %s' % bios_match_name)
+
+        if not os.path.exists(self.bios):
+            raise RunQemuError("KERNEL %s not found" % self.bios)
 
-        if biosdir:
-            logger.debug("Assuming biosdir is: %s" % biosdir)
-            self.qemu_opt_script += ' -L %s' % biosdir
-        else:
-            logger.error("Custom BIOS directory not found. Tried: %s, %s, and %s" % (self.custombiosdir, biosdir_native, biosdir_host))
-            raise RunQemuError("Invalid custombiosdir: %s" % self.custombiosdir)
 
     def check_mem(self):
         """
@@ -811,7 +812,7 @@ class BaseConfig(object):
         self.check_ovmf()
         self.check_kernel()
         self.check_dtb()
-        self.check_biosdir()
+        self.check_bios()
         self.check_mem()
         self.check_tcpserial()
 
@@ -923,6 +924,8 @@ class BaseConfig(object):
         logger.info('Continuing with the following parameters:\n')
         if not self.fstype in self.vmtypes:
             print('KERNEL: [%s]' % self.kernel)
+            if self.bios:
+                print('BIOS: [%s]' % self.bios)
             if self.dtb:
                 print('DTB: [%s]' % self.dtb)
         print('MACHINE: [%s]' % self.get('MACHINE'))
@@ -1339,6 +1342,8 @@ class BaseConfig(object):
             kernel_opts = "-kernel %s -append '%s %s %s %s'" % (self.kernel, self.kernel_cmdline,
                                                                 self.kernel_cmdline_script, self.get('QB_KERNEL_CMDLINE_APPEND'),
                                                                 self.bootparams)
+            if self.bios:
+                kernel_opts += " -bios %s" % self.bios
             if self.dtb:
                 kernel_opts += " -dtb %s" % self.dtb
         else:
-- 
2.22.0



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

* [PATCH 3/3] qemuriscv64: Specify the firmware as a bios instead of kernel
  2019-08-15 21:31 [PATCH 1/3] qemu: Upgrade to version 4.1 Alistair Francis
  2019-08-15 21:31 ` [PATCH 2/3] scripts/runqemu: Add support for the BIOS variable Alistair Francis
@ 2019-08-15 21:31 ` Alistair Francis
  2019-08-16  6:40   ` Jacob Kroon
  2019-08-17 13:57 ` [PATCH 1/3] qemu: Upgrade to version 4.1 Khem Raj
  2 siblings, 1 reply; 7+ messages in thread
From: Alistair Francis @ 2019-08-15 21:31 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
 meta/conf/machine/include/riscv/qemuriscv.inc | 2 +-
 meta/conf/machine/qemuriscv64.conf            | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
index 797a27660d..2ebd0a01f2 100644
--- a/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -28,7 +28,7 @@ UBOOT_ENTRYPOINT_riscv64 = "0x80200000"
 QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi"
 QB_MEM = "-m 512"
 QB_MACHINE = "-machine virt"
-QB_DEFAULT_KERNEL = "fw_jump.elf"
+QB_DEFAULT_BIOS = "fw_jump.elf"
 QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
 QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
 QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
diff --git a/meta/conf/machine/qemuriscv64.conf b/meta/conf/machine/qemuriscv64.conf
index dba8f09e93..99b48b309b 100644
--- a/meta/conf/machine/qemuriscv64.conf
+++ b/meta/conf/machine/qemuriscv64.conf
@@ -4,8 +4,6 @@
 
 require conf/machine/include/riscv/qemuriscv.inc
 
-QB_OPT_APPEND += "-show-cursor -monitor null -device loader,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE},addr=0x80200000"
-
 EXTRA_IMAGEDEPENDS += "u-boot"
 UBOOT_MACHINE = "qemu-riscv64_defconfig"
 UBOOT_ELF = "u-boot"
-- 
2.22.0



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

* Re: [PATCH 3/3] qemuriscv64: Specify the firmware as a bios instead of kernel
  2019-08-15 21:31 ` [PATCH 3/3] qemuriscv64: Specify the firmware as a bios instead of kernel Alistair Francis
@ 2019-08-16  6:40   ` Jacob Kroon
  2019-08-16 17:06     ` Alistair Francis
  0 siblings, 1 reply; 7+ messages in thread
From: Jacob Kroon @ 2019-08-16  6:40 UTC (permalink / raw)
  To: Alistair Francis, openembedded-core

Hi,

On 8/15/19 11:31 PM, Alistair Francis wrote:
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>   meta/conf/machine/include/riscv/qemuriscv.inc | 2 +-
>   meta/conf/machine/qemuriscv64.conf            | 2 --
>   2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
> index 797a27660d..2ebd0a01f2 100644
> --- a/meta/conf/machine/include/riscv/qemuriscv.inc
> +++ b/meta/conf/machine/include/riscv/qemuriscv.inc
> @@ -28,7 +28,7 @@ UBOOT_ENTRYPOINT_riscv64 = "0x80200000"
>   QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi"
>   QB_MEM = "-m 512"
>   QB_MACHINE = "-machine virt"
> -QB_DEFAULT_KERNEL = "fw_jump.elf"
> +QB_DEFAULT_BIOS = "fw_jump.elf"
>   QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
>   QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
>   QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
> diff --git a/meta/conf/machine/qemuriscv64.conf b/meta/conf/machine/qemuriscv64.conf
> index dba8f09e93..99b48b309b 100644
> --- a/meta/conf/machine/qemuriscv64.conf
> +++ b/meta/conf/machine/qemuriscv64.conf
> @@ -4,8 +4,6 @@
>
>   require conf/machine/include/riscv/qemuriscv.inc
>
> -QB_OPT_APPEND += "-show-cursor -monitor null -device loader,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE},addr=0x80200000"
> -

Was it intentional to remove these lines aswell ? I can't tell from the
commit message.

/Jacob

>   EXTRA_IMAGEDEPENDS += "u-boot"
>   UBOOT_MACHINE = "qemu-riscv64_defconfig"
>   UBOOT_ELF = "u-boot"
>



[mikrodidakt]
Jacob Kroon • +46 46325040

mikrodidakt.se • Skiffervägen 48, SE-224 78 LUND, Sweden

Consultans since 1980 • SW, HW, Embedded Systems, Linux



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

* Re: [PATCH 3/3] qemuriscv64: Specify the firmware as a bios instead of kernel
  2019-08-16  6:40   ` Jacob Kroon
@ 2019-08-16 17:06     ` Alistair Francis
  0 siblings, 0 replies; 7+ messages in thread
From: Alistair Francis @ 2019-08-16 17:06 UTC (permalink / raw)
  To: Jacob Kroon; +Cc: openembedded-core

On Thu, Aug 15, 2019 at 11:40 PM Jacob Kroon <jacob.kroon@mikrodidakt.se> wrote:
>
> Hi,
>
> On 8/15/19 11:31 PM, Alistair Francis wrote:
> > Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> > ---
> >   meta/conf/machine/include/riscv/qemuriscv.inc | 2 +-
> >   meta/conf/machine/qemuriscv64.conf            | 2 --
> >   2 files changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
> > index 797a27660d..2ebd0a01f2 100644
> > --- a/meta/conf/machine/include/riscv/qemuriscv.inc
> > +++ b/meta/conf/machine/include/riscv/qemuriscv.inc
> > @@ -28,7 +28,7 @@ UBOOT_ENTRYPOINT_riscv64 = "0x80200000"
> >   QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi"
> >   QB_MEM = "-m 512"
> >   QB_MACHINE = "-machine virt"
> > -QB_DEFAULT_KERNEL = "fw_jump.elf"
> > +QB_DEFAULT_BIOS = "fw_jump.elf"
> >   QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
> >   QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
> >   QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
> > diff --git a/meta/conf/machine/qemuriscv64.conf b/meta/conf/machine/qemuriscv64.conf
> > index dba8f09e93..99b48b309b 100644
> > --- a/meta/conf/machine/qemuriscv64.conf
> > +++ b/meta/conf/machine/qemuriscv64.conf
> > @@ -4,8 +4,6 @@
> >
> >   require conf/machine/include/riscv/qemuriscv.inc
> >
> > -QB_OPT_APPEND += "-show-cursor -monitor null -device loader,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE},addr=0x80200000"
> > -
>
> Was it intentional to remove these lines aswell ? I can't tell from the
> commit message.

This was intentional.

We used to use:
 -kernel: Specify the firmware
 -device (above): Specify the kernel

Now we can use:
 -bios: Specify the firmware
 -kernel: Specify the kernel

So this line isn't required.

Alistair

>
> /Jacob
>
> >   EXTRA_IMAGEDEPENDS += "u-boot"
> >   UBOOT_MACHINE = "qemu-riscv64_defconfig"
> >   UBOOT_ELF = "u-boot"
> >
>
>
>
> [mikrodidakt]
> Jacob Kroon • +46 46325040
>
> mikrodidakt.se • Skiffervägen 48, SE-224 78 LUND, Sweden
>
> Consultans since 1980 • SW, HW, Embedded Systems, Linux
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 1/3] qemu: Upgrade to version 4.1
  2019-08-15 21:31 [PATCH 1/3] qemu: Upgrade to version 4.1 Alistair Francis
  2019-08-15 21:31 ` [PATCH 2/3] scripts/runqemu: Add support for the BIOS variable Alistair Francis
  2019-08-15 21:31 ` [PATCH 3/3] qemuriscv64: Specify the firmware as a bios instead of kernel Alistair Francis
@ 2019-08-17 13:57 ` Khem Raj
  2019-08-20 18:31   ` Alistair Francis
  2 siblings, 1 reply; 7+ messages in thread
From: Khem Raj @ 2019-08-17 13:57 UTC (permalink / raw)
  To: Alistair Francis; +Cc: Patches and discussions about the oe-core layer

this seems to fail in qemu-user mode for mips why compiling webkitgtk
got qemumips

qemu-mips: TOPDIR/build/tmp/work/x86_64-linux/qemu-native/4.1.0-r0/qemu-4.1.0/accel/tcg/translate-all.c:2562:
page_check_range: Assertion `start < ((target_ulong)1 <<
L1_MAP_ADDR_SPACE_BITS)' failed.
If the above error message is about missing .so libraries, then
setting up GIR_EXTRA_LIBS_PATH in the recipe should help.
(typically like this: GIR_EXTRA_LIBS_PATH="${B}/something/.libs" )
Command '['TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/recipe-sysroot/usr/bin/g-ir-scanner-qemuwrapper',
'TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/build/Source/WebKit/tmp-introspectsorfb5_3/WebKit2-4.0',
'--introspect-dump=TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/build/Source/WebKit/tmp-introspectsorfb5_3/functions.txt,TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/build/Source/WebKit/tmp-introspectsorfb5_3/dump.xml']'
returned non-zero exit status 1.
ninja: build stopped: subcommand failed.

see
https://errors.yoctoproject.org/Errors/Details/263491/

On Thu, Aug 15, 2019 at 2:45 PM Alistair Francis
<alistair.francis@wdc.com> wrote:
>
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> ---
>  meta/conf/distro/include/tcmode-default.inc   |   2 +-
>  meta/recipes-devtools/qemu/qemu-native.inc    |   4 +-
>  ...u-native_4.0.0.bb => qemu-native_4.1.0.bb} |   0
>  ...e_4.0.0.bb => qemu-system-native_4.1.0.bb} |   2 +-
>  meta/recipes-devtools/qemu/qemu.inc           |  20 +-
>  ...emu-Add-missing-wacom-HID-descriptor.patch |  10 +-
>  ...test-which-runs-all-unit-test-cases-.patch |   6 +-
>  ...n-environment-space-to-boot-loader-q.patch |   4 +-
>  .../qemu/0004-qemu-disable-Valgrind.patch     |   6 +-
>  ...-searched-during-user-mode-emulation.patch | 146 --------
>  ...d.bfd-fix-cflags-and-set-some-envir.patch} |   6 +-
>  ...connect-socket-to-a-spawned-command.patch} |  18 +-
>  ... 0007-apic-fixup-fallthrough-to-PIC.patch} |   6 +-
>  ...ebkitgtk-hangs-on-32-bit-x86-target.patch} |   6 +-
>  ...-fix-mmap-munmap-mprotect-mremap-sh.patch} |  58 +--
>  ...-libcap-header-issue-on-some-distro.patch} |   0
>  ...messages-when-qemi_cpu_kick_thread-.patch} |   2 +-
>  ...et-arm-Fix-vector-operation-segfault.patch |  66 ----
>  ...o-handle-variably-sized-SIOCGSTAMP-w.patch | 339 ------------------
>  .../qemu/qemu/CVE-2019-12155.patch            |  35 --
>  .../qemu/{qemu_4.0.0.bb => qemu_4.1.0.bb}     |   0
>  21 files changed, 59 insertions(+), 677 deletions(-)
>  rename meta/recipes-devtools/qemu/{qemu-native_4.0.0.bb => qemu-native_4.1.0.bb} (100%)
>  rename meta/recipes-devtools/qemu/{qemu-system-native_4.0.0.bb => qemu-system-native_4.1.0.bb} (99%)
>  delete mode 100644 meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
>  rename meta/recipes-devtools/qemu/qemu/{0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch => 0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch} (82%)
>  rename meta/recipes-devtools/qemu/qemu/{0007-chardev-connect-socket-to-a-spawned-command.patch => 0006-chardev-connect-socket-to-a-spawned-command.patch} (93%)
>  rename meta/recipes-devtools/qemu/qemu/{0008-apic-fixup-fallthrough-to-PIC.patch => 0007-apic-fixup-fallthrough-to-PIC.patch} (90%)
>  rename meta/recipes-devtools/qemu/qemu/{0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch => 0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch} (90%)
>  rename meta/recipes-devtools/qemu/qemu/{0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch => 0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch} (63%)
>  rename meta/recipes-devtools/qemu/qemu/{0011-fix-libcap-header-issue-on-some-distro.patch => 0010-fix-libcap-header-issue-on-some-distro.patch} (100%)
>  rename meta/recipes-devtools/qemu/qemu/{0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch => 0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch} (97%)
>  delete mode 100644 meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
>  delete mode 100644 meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
>  delete mode 100644 meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
>  rename meta/recipes-devtools/qemu/{qemu_4.0.0.bb => qemu_4.1.0.bb} (100%)
>
> diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> index 1966dbd521..c89b8e012d 100644
> --- a/meta/conf/distro/include/tcmode-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -24,7 +24,7 @@ BINUVERSION ?= "2.32%"
>  GDBVERSION ?= "8.3%"
>  GLIBCVERSION ?= "2.30%"
>  LINUXLIBCVERSION ?= "5.0%"
> -QEMUVERSION ?= "4.0%"
> +QEMUVERSION ?= "4.1%"
>  GOVERSION ?= "1.12%"
>  # This can not use wildcards like 8.0.% since it is also used in mesa to denote
>  # llvm version being used, so always bump it with llvm recipe version bump
> diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc
> index c04297cad0..69c2c43e6b 100644
> --- a/meta/recipes-devtools/qemu/qemu-native.inc
> +++ b/meta/recipes-devtools/qemu/qemu-native.inc
> @@ -3,8 +3,8 @@ inherit native
>  require qemu.inc
>
>  SRC_URI_append = " \
> -            file://0011-fix-libcap-header-issue-on-some-distro.patch \
> -            file://0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
> +            file://0010-fix-libcap-header-issue-on-some-distro.patch \
> +            file://0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
>              "
>
>  EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
> diff --git a/meta/recipes-devtools/qemu/qemu-native_4.0.0.bb b/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/qemu/qemu-native_4.0.0.bb
> rename to meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
> diff --git a/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
> similarity index 99%
> rename from meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
> rename to meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
> index 964dcee524..d83ee59375 100644
> --- a/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
> +++ b/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
> @@ -2,7 +2,7 @@ BPN = "qemu"
>
>  require qemu-native.inc
>
> -# As some of the files installed by qemu-native and qemu-system-native
> +# As some of the files installed by qemu-native and qemu-system-native
>  # are the same, we depend on qemu-native to get the full installation set
>  # and avoid file clashes
>  DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native"
> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> index 46c40b7d4f..a83e835028 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -17,20 +17,16 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
>             file://0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch \
>             file://0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch \
>             file://0004-qemu-disable-Valgrind.patch \
> -           file://0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch \
> -           file://0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
> -           file://0007-chardev-connect-socket-to-a-spawned-command.patch \
> -           file://0008-apic-fixup-fallthrough-to-PIC.patch \
> -           file://0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
> -           file://0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
> -           file://0013-target-arm-Fix-vector-operation-segfault.patch \
> -           file://0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch \
> -          file://CVE-2019-12155.patch \
> +           file://0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
> +           file://0006-chardev-connect-socket-to-a-spawned-command.patch \
> +           file://0007-apic-fixup-fallthrough-to-PIC.patch \
> +           file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
> +           file://0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
>             "
>  UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
>
> -SRC_URI[md5sum] = "0afeca336fd57ae3d3086ec07f59d708"
> -SRC_URI[sha256sum] = "13a93dfe75b86734326f8d5b475fde82ec692d5b5a338b4262aeeb6b0fa4e469"
> +SRC_URI[md5sum] = "cdf2b5ca52b9abac9bacb5842fa420f8"
> +SRC_URI[sha256sum] = "656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6"
>
>  COMPATIBLE_HOST_mipsarchn32 = "null"
>  COMPATIBLE_HOST_mipsarchn64 = "null"
> @@ -141,7 +137,7 @@ PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
>  PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native"
>  PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native"
>  PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
> -PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2,"
> +PACKAGECONFIG[ssh] = "--enable-libssh,--disable-libssh,libssh,"
>  PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt,"
>  PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle"
>  PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1"
> diff --git a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
> index 5373915ff0..9478102ae5 100644
> --- a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
> @@ -1,4 +1,4 @@
> -From 1cb804cf0e47116202011f3386b4739af668224a Mon Sep 17 00:00:00 2001
> +From 4655dc18074e0be9d239f51dac32b61435da8549 Mon Sep 17 00:00:00 2001
>  From: Richard Purdie <richard.purdie@linuxfoundation.org>
>  Date: Thu, 27 Nov 2014 14:04:29 +0000
>  Subject: [PATCH] qemu: Add missing wacom HID descriptor
> @@ -19,10 +19,10 @@ Upstream-Status: Submitted
>   1 file changed, 93 insertions(+), 1 deletion(-)
>
>  diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
> -index ac0bc83b..6f9b22d4 100644
> +index 8c43db93..3ff8ca28 100644
>  --- a/hw/usb/dev-wacom.c
>  +++ b/hw/usb/dev-wacom.c
> -@@ -72,6 +72,89 @@ static const USBDescStrings desc_strings = {
> +@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = {
>       [STR_SERIALNUMBER]     = "1",
>   };
>
> @@ -112,7 +112,7 @@ index ac0bc83b..6f9b22d4 100644
>   static const USBDescIface desc_iface_wacom = {
>       .bInterfaceNumber              = 0,
>       .bNumEndpoints                 = 1,
> -@@ -89,7 +172,7 @@ static const USBDescIface desc_iface_wacom = {
> +@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wacom = {
>                   0x00,          /*  u8  country_code */
>                   0x01,          /*  u8  num_descriptors */
>                   0x22,          /*  u8  type: Report */
> @@ -121,7 +121,7 @@ index ac0bc83b..6f9b22d4 100644
>               },
>           },
>       },
> -@@ -269,6 +352,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
> +@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
>       }
>
>       switch (request) {
> diff --git a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
> index 7b7c5d71a0..2ccddd53cf 100644
> --- a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
> @@ -1,4 +1,4 @@
> -From 281116b31981b0b9e174bda8abe00f4eaa33c2ae Mon Sep 17 00:00:00 2001
> +From 67751f3a23e3db3012f391b3b3b73a4484488ce9 Mon Sep 17 00:00:00 2001
>  From: Juro Bystricky <juro.bystricky@intel.com>
>  Date: Thu, 31 Aug 2017 11:06:56 -0700
>  Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for
> @@ -15,10 +15,10 @@ Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
>   1 file changed, 8 insertions(+)
>
>  diff --git a/tests/Makefile.include b/tests/Makefile.include
> -index 36fc73fe..01fecd4d 100644
> +index fd7fdb86..83b7f409 100644
>  --- a/tests/Makefile.include
>  +++ b/tests/Makefile.include
> -@@ -1184,4 +1184,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
> +@@ -1183,4 +1183,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
>   -include $(wildcard tests/*.d)
>   -include $(wildcard tests/libqos/*.d)
>
> diff --git a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> index 9a18ca18e4..5c42d68030 100644
> --- a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> @@ -1,4 +1,4 @@
> -From bf04acef9ec31ddcc18ddbb4ac5b7b1e7368bf7d Mon Sep 17 00:00:00 2001
> +From 235b94f1188597873c8776b019fed49947983392 Mon Sep 17 00:00:00 2001
>  From: Jason Wessel <jason.wessel@windriver.com>
>  Date: Fri, 28 Mar 2014 17:42:43 +0800
>  Subject: [PATCH] qemu: Add addition environment space to boot loader
> @@ -19,7 +19,7 @@ Signed-off-by: Roy Li <rongqing.li@windriver.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> -index 439665ab..285c78ef 100644
> +index 20e019bf..d150b01c 100644
>  --- a/hw/mips/mips_malta.c
>  +++ b/hw/mips/mips_malta.c
>  @@ -60,7 +60,7 @@
> diff --git a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
> index 9e326081f2..0ac4ab40b1 100644
> --- a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
> @@ -1,4 +1,4 @@
> -From e40f797548bc3ff06c71b6cbe042a46406894d18 Mon Sep 17 00:00:00 2001
> +From 3ad7a375015d47fdf5016e03e11fa93440d6d8bd Mon Sep 17 00:00:00 2001
>  From: Ross Burton <ross.burton@intel.com>
>  Date: Tue, 20 Oct 2015 22:19:08 +0100
>  Subject: [PATCH] qemu: disable Valgrind
> @@ -13,10 +13,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
>   1 file changed, 9 deletions(-)
>
>  diff --git a/configure b/configure
> -index 1c563a70..eaf9bb5e 100755
> +index 714e7fb6..dad4fc59 100755
>  --- a/configure
>  +++ b/configure
> -@@ -5311,15 +5311,6 @@ fi
> +@@ -5335,15 +5335,6 @@ fi
>   # check if we have valgrind/valgrind.h
>
>   valgrind_h=no
> diff --git a/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
> deleted file mode 100644
> index 819720a3f2..0000000000
> --- a/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
> +++ /dev/null
> @@ -1,146 +0,0 @@
> -From 547c3710a1493d2fd6bb56b819cf162db433756a Mon Sep 17 00:00:00 2001
> -From: Richard Purdie <richard.purdie@linuxfoundation.org>
> -Date: Wed, 9 Mar 2016 22:49:02 +0000
> -Subject: [PATCH] qemu: Limit paths searched during user mode emulation
> -
> -By default qemu builds a complete list of directories within the user
> -emulation sysroot (-L option). The OE sysroot directory is large and
> -this is confusing, for example it indexes all pkgdata. In particular this
> -confuses strace of qemu binaries with tons of irrelevant paths.
> -
> -This patch stops the code indexing up front and instead only indexes
> -things if/as/when it needs to. This drastically reduces the files it
> -reads and reduces memory usage and cleans up strace.
> -
> -It would also avoid the infinite directory traversal bug in [YOCTO #6996]
> -although the code could still be vulnerable if it parsed those specific
> -paths.
> -
> -RP
> -2016/3/9
> -Upstream-Status: Pending
> -
> ----
> - util/path.c | 44 ++++++++++++++++++++++----------------------
> - 1 file changed, 22 insertions(+), 22 deletions(-)
> -
> -diff --git a/util/path.c b/util/path.c
> -index 7f9fc272..a416cd4a 100644
> ---- a/util/path.c
> -+++ b/util/path.c
> -@@ -15,6 +15,7 @@ struct pathelem
> -     char *name;
> -     /* Full path name, eg. /usr/gnemul/x86-linux/lib. */
> -     char *pathname;
> -+    int populated_entries;
> -     struct pathelem *parent;
> -     /* Children */
> -     unsigned int num_entries;
> -@@ -45,6 +46,7 @@ static struct pathelem *new_entry(const char *root,
> -     new->name = g_strdup(name);
> -     new->pathname = g_strdup_printf("%s/%s", root, name);
> -     new->num_entries = 0;
> -+    new->populated_entries = 0;
> -     return new;
> - }
> -
> -@@ -53,15 +55,16 @@ static struct pathelem *new_entry(const char *root,
> - /* Not all systems provide this feature */
> - #if defined(DT_DIR) && defined(DT_UNKNOWN) && defined(DT_LNK)
> - # define dirent_type(dirent) ((dirent)->d_type)
> --# define is_dir_maybe(type) \
> --    ((type) == DT_DIR || (type) == DT_UNKNOWN || (type) == DT_LNK)
> -+# define is_not_dir(type) \
> -+    ((type) != DT_DIR && (type) != DT_UNKNOWN && (type) != DT_LNK)
> - #else
> - # define dirent_type(dirent) (1)
> --# define is_dir_maybe(type)  (type)
> -+# define is_not_dir(type)  (0)
> - #endif
> -
> - static struct pathelem *add_dir_maybe(struct pathelem *path)
> - {
> -+    unsigned int i;
> -     DIR *dir;
> -
> -     if ((dir = opendir(path->pathname)) != NULL) {
> -@@ -74,6 +77,11 @@ static struct pathelem *add_dir_maybe(struct pathelem *path)
> -         }
> -         closedir(dir);
> -     }
> -+
> -+    for (i = 0; i < path->num_entries; i++)
> -+        (path->entries[i])->parent = path;
> -+
> -+    path->populated_entries = 1;
> -     return path;
> - }
> -
> -@@ -89,26 +97,16 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name,
> -     e = &root->entries[root->num_entries-1];
> -
> -     *e = new_entry(root->pathname, root, name);
> --    if (is_dir_maybe(type)) {
> --        *e = add_dir_maybe(*e);
> -+    if (is_not_dir(type)) {
> -+        (*e)->populated_entries = 1;
> -     }
> -
> -     return root;
> - }
> -
> --/* This needs to be done after tree is stabilized (ie. no more reallocs!). */
> --static void set_parents(struct pathelem *child, struct pathelem *parent)
> --{
> --    unsigned int i;
> --
> --    child->parent = parent;
> --    for (i = 0; i < child->num_entries; i++)
> --        set_parents(child->entries[i], child);
> --}
> --
> - /* FIXME: Doesn't handle DIR/.. where DIR is not in emulated dir. */
> - static const char *
> --follow_path(const struct pathelem *cursor, const char *name)
> -+follow_path(struct pathelem *cursor, struct pathelem **source, const char *name)
> - {
> -     unsigned int i, namelen;
> -
> -@@ -119,14 +117,18 @@ follow_path(const struct pathelem *cursor, const char *name)
> -         return cursor->pathname;
> -
> -     if (strneq(name, namelen, ".."))
> --        return follow_path(cursor->parent, name + namelen);
> -+        return follow_path(cursor->parent, &cursor->parent, name + namelen);
> -
> -     if (strneq(name, namelen, "."))
> --        return follow_path(cursor, name + namelen);
> -+        return follow_path(cursor, source, name + namelen);
> -+
> -+    if (!cursor->populated_entries)
> -+        *source = add_dir_maybe(cursor);
> -+        cursor = *source;
> -
> -     for (i = 0; i < cursor->num_entries; i++)
> -         if (strneq(name, namelen, cursor->entries[i]->name))
> --            return follow_path(cursor->entries[i], name + namelen);
> -+            return follow_path(cursor->entries[i], &cursor->entries[i], name + namelen);
> -
> -     /* Not found */
> -     return NULL;
> -@@ -160,8 +162,6 @@ void init_paths(const char *prefix)
> -         g_free(base->name);
> -         g_free(base);
> -         base = NULL;
> --    } else {
> --        set_parents(base, base);
> -     }
> - }
> -
> -@@ -173,5 +173,5 @@ const char *path(const char *name)
> -     if (!base || !name || name[0] != '/')
> -         return name;
> -
> --    return follow_path(base, name) ?: name;
> -+    return follow_path(base, &base, name) ?: name;
> - }
> diff --git a/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> similarity index 82%
> rename from meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> rename to meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> index b62a588c66..a73681510e 100644
> --- a/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> @@ -1,4 +1,4 @@
> -From 107fd860529a3c1319d54c3c225758457b0d9394 Mon Sep 17 00:00:00 2001
> +From 80e6070bcdfe636b103a13598e6c38ad0d0e7624 Mon Sep 17 00:00:00 2001
>  From: Stephen Arnold <sarnold@vctlabs.com>
>  Date: Sun, 12 Jun 2016 18:09:56 -0700
>  Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment
> @@ -10,10 +10,10 @@ Upstream-Status: Pending
>   1 file changed, 4 deletions(-)
>
>  diff --git a/configure b/configure
> -index eaf9bb5e..de2933d1 100755
> +index dad4fc59..685bbe5e 100755
>  --- a/configure
>  +++ b/configure
> -@@ -5928,10 +5928,6 @@ write_c_skeleton
> +@@ -5971,10 +5971,6 @@ write_c_skeleton
>   if test "$gcov" = "yes" ; then
>     CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
>     LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
> diff --git a/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
> similarity index 93%
> rename from meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
> rename to meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
> index f3f3dc3f5e..a42385530f 100644
> --- a/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
> @@ -1,4 +1,4 @@
> -From 136e159482a1bc8676cbe6e767055d0c3fb20065 Mon Sep 17 00:00:00 2001
> +From ad853601e75f6d0dd09672bcca05fbe4fac766a4 Mon Sep 17 00:00:00 2001
>  From: Alistair Francis <alistair.francis@xilinx.com>
>  Date: Thu, 21 Dec 2017 11:35:16 -0800
>  Subject: [PATCH] chardev: connect socket to a spawned command
> @@ -52,10 +52,10 @@ Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
>   3 files changed, 109 insertions(+)
>
>  diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> -index 3916505d..a8e9dce8 100644
> +index 7ca5d97a..207fae4a 100644
>  --- a/chardev/char-socket.c
>  +++ b/chardev/char-socket.c
> -@@ -1273,6 +1273,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
> +@@ -1278,6 +1278,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
>       return true;
>   }
>
> @@ -123,7 +123,7 @@ index 3916505d..a8e9dce8 100644
>
>   static void qmp_chardev_open_socket(Chardev *chr,
>                                       ChardevBackend *backend,
> -@@ -1281,6 +1342,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
> +@@ -1286,6 +1347,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
>   {
>       SocketChardev *s = SOCKET_CHARDEV(chr);
>       ChardevSocket *sock = backend->u.socket.data;
> @@ -133,7 +133,7 @@ index 3916505d..a8e9dce8 100644
>       bool do_nodelay     = sock->has_nodelay ? sock->nodelay : false;
>       bool is_listen      = sock->has_server  ? sock->server  : true;
>       bool is_telnet      = sock->has_telnet  ? sock->telnet  : false;
> -@@ -1346,6 +1410,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
> +@@ -1351,6 +1415,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
>
>       update_disconnected_filename(s);
>
> @@ -148,7 +148,7 @@ index 3916505d..a8e9dce8 100644
>       if (s->is_listen) {
>           if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
>                                              is_waitconnect, errp) < 0) {
> -@@ -1365,9 +1437,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
> +@@ -1370,9 +1442,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
>       const char *host = qemu_opt_get(opts, "host");
>       const char *port = qemu_opt_get(opts, "port");
>       const char *fd = qemu_opt_get(opts, "fd");
> @@ -175,7 +175,7 @@ index 3916505d..a8e9dce8 100644
>       if ((!!path + !!fd + !!host) != 1) {
>           error_setg(errp,
>                      "Exactly one of 'path', 'fd' or 'host' required");
> -@@ -1410,12 +1499,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
> +@@ -1415,12 +1504,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
>       sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
>       sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
>
> @@ -201,10 +201,10 @@ index 3916505d..a8e9dce8 100644
>           addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
>           addr->u.inet.data = g_new(InetSocketAddress, 1);
>  diff --git a/chardev/char.c b/chardev/char.c
> -index 514cd6b0..36a40d67 100644
> +index 7b6b2cb1..0c2ca64b 100644
>  --- a/chardev/char.c
>  +++ b/chardev/char.c
> -@@ -835,6 +835,9 @@ QemuOptsList qemu_chardev_opts = {
> +@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = {
>           },{
>               .name = "path",
>               .type = QEMU_OPT_STRING,
> diff --git a/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
> similarity index 90%
> rename from meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
> rename to meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
> index 13037f33f3..b50e8c2545 100644
> --- a/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
> @@ -1,4 +1,4 @@
> -From 1b3f264e2ba18caf658fae27293c426c8366c6a3 Mon Sep 17 00:00:00 2001
> +From f51e49e7d7d87b7254242b7360f99c2df94a5a2d Mon Sep 17 00:00:00 2001
>  From: Mark Asselstine <mark.asselstine@windriver.com>
>  Date: Tue, 26 Feb 2013 11:43:28 -0500
>  Subject: [PATCH] apic: fixup fallthrough to PIC
> @@ -30,10 +30,10 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/hw/intc/apic.c b/hw/intc/apic.c
> -index 6ea619c3..f892811e 100644
> +index bce89911..df4b582e 100644
>  --- a/hw/intc/apic.c
>  +++ b/hw/intc/apic.c
> -@@ -604,7 +604,7 @@ int apic_accept_pic_intr(DeviceState *dev)
> +@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev)
>       APICCommonState *s = APIC(dev);
>       uint32_t lvt0;
>
> diff --git a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> similarity index 90%
> rename from meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> rename to meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> index c572ff94d0..e562f25bec 100644
> --- a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> @@ -1,4 +1,4 @@
> -From a33ae91504ea4d254b5ace64a84791d3c96c9773 Mon Sep 17 00:00:00 2001
> +From 25a064f91f73630e5dff2a6aeb23d953c469cea6 Mon Sep 17 00:00:00 2001
>  From: Alistair Francis <alistair.francis@xilinx.com>
>  Date: Wed, 17 Jan 2018 10:51:49 -0800
>  Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target
> @@ -19,10 +19,10 @@ Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/linux-user/main.c b/linux-user/main.c
> -index a0aba9cb..34c54924 100644
> +index 8ffc5251..4067e739 100644
>  --- a/linux-user/main.c
>  +++ b/linux-user/main.c
> -@@ -69,7 +69,7 @@ int have_guest_base;
> +@@ -77,7 +77,7 @@ int have_guest_base;
>         (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32))
>   /* There are a number of places where we assign reserved_va to a variable
>      of type abi_ulong and expect it to fit.  Avoid the last page.  */
> diff --git a/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch b/meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> similarity index 63%
> rename from meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> rename to meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> index 3418eb7c65..15a8d6ce95 100644
> --- a/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> @@ -1,4 +1,4 @@
> -From 2a66bd95c856de6950fbd802c5b99075207c1d76 Mon Sep 17 00:00:00 2001
> +From 36d61e01738549c481bac1ec43cc98e40728e352 Mon Sep 17 00:00:00 2001
>  From: Martin Jansa <martin.jansa@lge.com>
>  Date: Fri, 1 Jun 2018 08:41:07 +0000
>  Subject: [PATCH] Revert "linux-user: fix mmap/munmap/mprotect/mremap/shmat"
> @@ -16,17 +16,16 @@ This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583.
>  Upstream-Status: Pending
>
>  ---
> - include/exec/cpu-all.h  |  6 +-----
> - include/exec/cpu_ldst.h | 16 +++++++++-------
> - linux-user/mmap.c       | 17 ++++-------------
> - linux-user/syscall.c    |  5 +----
> - 4 files changed, 15 insertions(+), 29 deletions(-)
> + include/exec/cpu-all.h |  6 +-----
> + linux-user/mmap.c      | 17 ++++-------------
> + linux-user/syscall.c   |  5 +----
> + 3 files changed, 6 insertions(+), 22 deletions(-)
>
>  diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
> -index b16c9ec5..612db6a0 100644
> +index 536ea58f..4c63a6a2 100644
>  --- a/include/exec/cpu-all.h
>  +++ b/include/exec/cpu-all.h
> -@@ -163,12 +163,8 @@ extern unsigned long guest_base;
> +@@ -162,12 +162,8 @@ extern unsigned long guest_base;
>   extern int have_guest_base;
>   extern unsigned long reserved_va;
>
> @@ -40,38 +39,11 @@ index b16c9ec5..612db6a0 100644
>   #else
>
>   #include "exec/hwaddr.h"
> -diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
> -index d78041d7..845639f7 100644
> ---- a/include/exec/cpu_ldst.h
> -+++ b/include/exec/cpu_ldst.h
> -@@ -62,13 +62,15 @@ typedef uint64_t abi_ptr;
> - /* All direct uses of g2h and h2g need to go away for usermode softmmu.  */
> - #define g2h(x) ((void *)((unsigned long)(abi_ptr)(x) + guest_base))
> -
> --#define guest_addr_valid(x) ((x) <= GUEST_ADDR_MAX)
> --#define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base)
> --
> --static inline int guest_range_valid(unsigned long start, unsigned long len)
> --{
> --    return len - 1 <= GUEST_ADDR_MAX && start <= GUEST_ADDR_MAX - len + 1;
> --}
> -+#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
> -+#define h2g_valid(x) 1
> -+#else
> -+#define h2g_valid(x) ({ \
> -+    unsigned long __guest = (unsigned long)(x) - guest_base; \
> -+    (__guest < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \
> -+    (!reserved_va || (__guest < reserved_va)); \
> -+})
> -+#endif
> -
> - #define h2g_nocheck(x) ({ \
> -     unsigned long __ret = (unsigned long)(x) - guest_base; \
>  diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> -index e0249efe..cfe34b35 100644
> +index 46a6e3a7..77354654 100644
>  --- a/linux-user/mmap.c
>  +++ b/linux-user/mmap.c
> -@@ -79,7 +79,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
> +@@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
>           return -TARGET_EINVAL;
>       len = TARGET_PAGE_ALIGN(len);
>       end = start + len;
> @@ -80,7 +52,7 @@ index e0249efe..cfe34b35 100644
>           return -TARGET_ENOMEM;
>       }
>       prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
> -@@ -490,8 +490,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
> +@@ -495,8 +495,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
>            * It can fail only on 64-bit host with 32-bit target.
>            * On any other target/host host mmap() handles this error correctly.
>            */
> @@ -91,7 +63,7 @@ index e0249efe..cfe34b35 100644
>               goto fail;
>           }
>
> -@@ -631,10 +631,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
> +@@ -636,10 +636,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
>       if (start & ~TARGET_PAGE_MASK)
>           return -TARGET_EINVAL;
>       len = TARGET_PAGE_ALIGN(len);
> @@ -103,7 +75,7 @@ index e0249efe..cfe34b35 100644
>       mmap_lock();
>       end = start + len;
>       real_start = start & qemu_host_page_mask;
> -@@ -689,13 +687,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
> +@@ -694,13 +692,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
>       int prot;
>       void *host_addr;
>
> @@ -118,10 +90,10 @@ index e0249efe..cfe34b35 100644
>
>       if (flags & MREMAP_FIXED) {
>  diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> -index 96cd4bf8..e6754772 100644
> +index 8367cb13..6030402b 100644
>  --- a/linux-user/syscall.c
>  +++ b/linux-user/syscall.c
> -@@ -3860,9 +3860,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
> +@@ -4030,9 +4030,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
>               return -TARGET_EINVAL;
>           }
>       }
> @@ -131,7 +103,7 @@ index 96cd4bf8..e6754772 100644
>
>       mmap_lock();
>
> -@@ -6633,7 +6630,7 @@ static int open_self_maps(void *cpu_env, int fd)
> +@@ -6880,7 +6877,7 @@ static int open_self_maps(void *cpu_env, int fd)
>           }
>           if (h2g_valid(min)) {
>               int flags = page_get_flags(h2g(min));
> diff --git a/meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch b/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
> similarity index 100%
> rename from meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch
> rename to meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
> diff --git a/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> similarity index 97%
> rename from meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> rename to meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> index 04664195d1..e5ebfc1267 100644
> --- a/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> @@ -37,7 +37,7 @@ index e83f72b4..e6e2576e 100644
>       if (err && err != ESRCH) {
>           fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
>  +        fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
> -+        cpu_dump_state(cpu, stderr, fprintf, 0);
> ++        cpu_dump_state(cpu, stderr, 0);
>  +        backtrace_print();
>           exit(1);
>       }
> diff --git a/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch b/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
> deleted file mode 100644
> index c1dd957dc9..0000000000
> --- a/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -From 2f143d3ad1c05e91cf2cdf5de06d59a80a95e6c8 Mon Sep 17 00:00:00 2001
> -From: Alistair Francis <alistair.francis@wdc.com>
> -Date: Thu, 23 May 2019 14:47:43 +0100
> -Subject: [PATCH] target/arm: Fix vector operation segfault
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Commit 89e68b575 "target/arm: Use vector operations for saturation"
> -causes this abort() when booting QEMU ARM with a Cortex-A15:
> -
> -0  0x00007ffff4c2382f in raise () at /usr/lib/libc.so.6
> -1  0x00007ffff4c0e672 in abort () at /usr/lib/libc.so.6
> -2  0x00005555559c1839 in disas_neon_data_insn (insn=<optimized out>, s=<optimized out>) at ./target/arm/translate.c:6673
> -3  0x00005555559c1839 in disas_neon_data_insn (s=<optimized out>, insn=<optimized out>) at ./target/arm/translate.c:6386
> -4  0x00005555559cd8a4 in disas_arm_insn (insn=4081107068, s=0x7fffe59a9510) at ./target/arm/translate.c:9289
> -5  0x00005555559cd8a4 in arm_tr_translate_insn (dcbase=0x7fffe59a9510, cpu=<optimized out>) at ./target/arm/translate.c:13612
> -6  0x00005555558d1d39 in translator_loop (ops=0x5555561cc580 <arm_translator_ops>, db=0x7fffe59a9510, cpu=0x55555686a2f0, tb=<optimized out>, max_insns=<optimized out>) at ./accel/tcg/translator.c:96
> -7  0x00005555559d10d4 in gen_intermediate_code (cpu=cpu@entry=0x55555686a2f0, tb=tb@entry=0x7fffd7840080 <code_gen_buffer+126091347>, max_insns=max_insns@entry=512) at ./target/arm/translate.c:13901
> -8  0x00005555558d06b9 in tb_gen_code (cpu=cpu@entry=0x55555686a2f0, pc=3067096216, cs_base=0, flags=192, cflags=-16252928, cflags@entry=524288) at ./accel/tcg/translate-all.c:1736
> -9  0x00005555558ce467 in tb_find (cf_mask=524288, tb_exit=1, last_tb=0x7fffd783e640 <code_gen_buffer+126084627>, cpu=0x1) at ./accel/tcg/cpu-exec.c:407
> -10 0x00005555558ce467 in cpu_exec (cpu=cpu@entry=0x55555686a2f0) at ./accel/tcg/cpu-exec.c:728
> -11 0x000055555588b0cf in tcg_cpu_exec (cpu=0x55555686a2f0) at ./cpus.c:1431
> -12 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=0x55555686a2f0) at ./cpus.c:1735
> -13 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=arg@entry=0x55555686a2f0) at ./cpus.c:1709
> -14 0x0000555555d2629a in qemu_thread_start (args=<optimized out>) at ./util/qemu-thread-posix.c:502
> -15 0x00007ffff4db8a92 in start_thread () at /usr/lib/libpthread.
> -
> -This patch ensures that we don't hit the abort() in the second switch
> -case in disas_neon_data_insn() as we will return from the first case.
> -
> -Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> -Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> -Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> -Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> -Tested-by: Alex Bennée <alex.bennee@linaro.org>
> -Message-id: ad91b397f360b2fc7f4087e476f7df5b04d42ddb.1558021877.git.alistair.francis@wdc.com
> -Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> -Upstream-Status: Backport [4.1.0]
> ----
> - target/arm/translate.c | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/target/arm/translate.c b/target/arm/translate.c
> -index dd053c80d6..298c262825 100644
> ---- a/target/arm/translate.c
> -+++ b/target/arm/translate.c
> -@@ -6598,13 +6598,13 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
> -             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
> -                            rn_ofs, rm_ofs, vec_size, vec_size,
> -                            (u ? uqadd_op : sqadd_op) + size);
> --            break;
> -+            return 0;
> -
> -         case NEON_3R_VQSUB:
> -             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
> -                            rn_ofs, rm_ofs, vec_size, vec_size,
> -                            (u ? uqsub_op : sqsub_op) + size);
> --            break;
> -+            return 0;
> -
> -         case NEON_3R_VMUL: /* VMUL */
> -             if (u) {
> ---
> -2.21.0
> -
> diff --git a/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch b/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
> deleted file mode 100644
> index 7cac8ef3d1..0000000000
> --- a/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
> +++ /dev/null
> @@ -1,339 +0,0 @@
> -From 8104018ba4c66e568d2583a3a0ee940851ee7471 Mon Sep 17 00:00:00 2001
> -From: Daniel P. Berrangé <berrange@redhat.com>
> -Date: Tue, 23 Jul 2019 17:50:00 +0200
> -Subject: [PATCH] linux-user: fix to handle variably sized SIOCGSTAMP with new
> - kernels
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -The SIOCGSTAMP symbol was previously defined in the
> -asm-generic/sockios.h header file. QEMU sees that header
> -indirectly via sys/socket.h
> -
> -In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
> -the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
> -Instead it provides only SIOCGSTAMP_OLD, which only uses a
> -32-bit time_t on 32-bit architectures.
> -
> -The linux/sockios.h header then defines SIOCGSTAMP using
> -either SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. If
> -SIOCGSTAMP_NEW is used, then the tv_sec field is 64-bit even
> -on 32-bit architectures
> -
> -To cope with this we must now convert the old and new type from
> -the target to the host one.
> -
> -Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> -Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> -Reviewed-by: Arnd Bergmann <arnd@arndb.de>
> -Message-Id: <20190718130641.15294-1-laurent@vivier.eu>
> -Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> -Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ----
> -Upstream-Status: Backport [upstream commit: 6d5d5dde9adb5acb32e6b8e3dfbf47fff0f308d2]
> -
> - linux-user/ioctls.h        |  21 +++++-
> - linux-user/syscall.c       | 140 +++++++++++++++++++++++++++++--------
> - linux-user/syscall_defs.h  |  30 +++++++-
> - linux-user/syscall_types.h |   6 --
> - 4 files changed, 159 insertions(+), 38 deletions(-)
> -
> -diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
> -index ae8951625f..e6a27ad9d6 100644
> ---- a/linux-user/ioctls.h
> -+++ b/linux-user/ioctls.h
> -@@ -219,8 +219,25 @@
> -   IOCTL(SIOCGRARP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
> -   IOCTL(SIOCGIWNAME, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_char_ifreq)))
> -   IOCTL(SIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) /* pid_t */
> --  IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval)))
> --  IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec)))
> -+
> -+  /*
> -+   * We can't use IOCTL_SPECIAL() because it will set
> -+   * host_cmd to XXX_OLD and XXX_NEW and these macros
> -+   * are not defined with kernel prior to 5.2.
> -+   * We must set host_cmd to the same value as in target_cmd
> -+   * otherwise the consistency check in syscall_init()
> -+   * will trigger an error.
> -+   * host_cmd is ignored by the do_ioctl_XXX() helpers.
> -+   * FIXME: create a macro to define this kind of entry
> -+   */
> -+  { TARGET_SIOCGSTAMP_OLD, TARGET_SIOCGSTAMP_OLD,
> -+    "SIOCGSTAMP_OLD", IOC_R, do_ioctl_SIOCGSTAMP },
> -+  { TARGET_SIOCGSTAMPNS_OLD, TARGET_SIOCGSTAMPNS_OLD,
> -+    "SIOCGSTAMPNS_OLD", IOC_R, do_ioctl_SIOCGSTAMPNS },
> -+  { TARGET_SIOCGSTAMP_NEW, TARGET_SIOCGSTAMP_NEW,
> -+    "SIOCGSTAMP_NEW", IOC_R, do_ioctl_SIOCGSTAMP },
> -+  { TARGET_SIOCGSTAMPNS_NEW, TARGET_SIOCGSTAMPNS_NEW,
> -+    "SIOCGSTAMPNS_NEW", IOC_R, do_ioctl_SIOCGSTAMPNS },
> -
> -   IOCTL(RNDGETENTCNT, IOC_R, MK_PTR(TYPE_INT))
> -   IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT))
> -diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> -index 96cd4bf86d..6df480e13d 100644
> ---- a/linux-user/syscall.c
> -+++ b/linux-user/syscall.c
> -@@ -37,6 +37,7 @@
> - #include <sched.h>
> - #include <sys/timex.h>
> - #include <sys/socket.h>
> -+#include <linux/sockios.h>
> - #include <sys/un.h>
> - #include <sys/uio.h>
> - #include <poll.h>
> -@@ -1139,8 +1140,9 @@ static inline abi_long copy_from_user_timeval(struct timeval *tv,
> - {
> -     struct target_timeval *target_tv;
> -
> --    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1))
> -+    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1)) {
> -         return -TARGET_EFAULT;
> -+    }
> -
> -     __get_user(tv->tv_sec, &target_tv->tv_sec);
> -     __get_user(tv->tv_usec, &target_tv->tv_usec);
> -@@ -1155,8 +1157,26 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
> - {
> -     struct target_timeval *target_tv;
> -
> --    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0))
> -+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
> -+        return -TARGET_EFAULT;
> -+    }
> -+
> -+    __put_user(tv->tv_sec, &target_tv->tv_sec);
> -+    __put_user(tv->tv_usec, &target_tv->tv_usec);
> -+
> -+    unlock_user_struct(target_tv, target_tv_addr, 1);
> -+
> -+    return 0;
> -+}
> -+
> -+static inline abi_long copy_to_user_timeval64(abi_ulong target_tv_addr,
> -+                                             const struct timeval *tv)
> -+{
> -+    struct target__kernel_sock_timeval *target_tv;
> -+
> -+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
> -         return -TARGET_EFAULT;
> -+    }
> -
> -     __put_user(tv->tv_sec, &target_tv->tv_sec);
> -     __put_user(tv->tv_usec, &target_tv->tv_usec);
> -@@ -1166,6 +1186,48 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
> -     return 0;
> - }
> -
> -+static inline abi_long target_to_host_timespec(struct timespec *host_ts,
> -+                                               abi_ulong target_addr)
> -+{
> -+    struct target_timespec *target_ts;
> -+
> -+    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1)) {
> -+        return -TARGET_EFAULT;
> -+    }
> -+    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
> -+    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> -+    unlock_user_struct(target_ts, target_addr, 0);
> -+    return 0;
> -+}
> -+
> -+static inline abi_long host_to_target_timespec(abi_ulong target_addr,
> -+                                               struct timespec *host_ts)
> -+{
> -+    struct target_timespec *target_ts;
> -+
> -+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
> -+        return -TARGET_EFAULT;
> -+    }
> -+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
> -+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> -+    unlock_user_struct(target_ts, target_addr, 1);
> -+    return 0;
> -+}
> -+
> -+static inline abi_long host_to_target_timespec64(abi_ulong target_addr,
> -+                                                 struct timespec *host_ts)
> -+{
> -+    struct target__kernel_timespec *target_ts;
> -+
> -+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
> -+        return -TARGET_EFAULT;
> -+    }
> -+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
> -+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> -+    unlock_user_struct(target_ts, target_addr, 1);
> -+    return 0;
> -+}
> -+
> - static inline abi_long copy_from_user_timezone(struct timezone *tz,
> -                                                abi_ulong target_tz_addr)
> - {
> -@@ -4790,6 +4852,54 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp,
> -     return get_errno(safe_ioctl(fd, ie->host_cmd, sig));
> - }
> -
> -+static abi_long do_ioctl_SIOCGSTAMP(const IOCTLEntry *ie, uint8_t *buf_temp,
> -+                                    int fd, int cmd, abi_long arg)
> -+{
> -+    struct timeval tv;
> -+    abi_long ret;
> -+
> -+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMP, &tv));
> -+    if (is_error(ret)) {
> -+        return ret;
> -+    }
> -+
> -+    if (cmd == (int)TARGET_SIOCGSTAMP_OLD) {
> -+        if (copy_to_user_timeval(arg, &tv)) {
> -+            return -TARGET_EFAULT;
> -+        }
> -+    } else {
> -+        if (copy_to_user_timeval64(arg, &tv)) {
> -+            return -TARGET_EFAULT;
> -+        }
> -+    }
> -+
> -+    return ret;
> -+}
> -+
> -+static abi_long do_ioctl_SIOCGSTAMPNS(const IOCTLEntry *ie, uint8_t *buf_temp,
> -+                                      int fd, int cmd, abi_long arg)
> -+{
> -+    struct timespec ts;
> -+    abi_long ret;
> -+
> -+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMPNS, &ts));
> -+    if (is_error(ret)) {
> -+        return ret;
> -+    }
> -+
> -+    if (cmd == (int)TARGET_SIOCGSTAMPNS_OLD) {
> -+        if (host_to_target_timespec(arg, &ts)) {
> -+            return -TARGET_EFAULT;
> -+        }
> -+    } else{
> -+        if (host_to_target_timespec64(arg, &ts)) {
> -+            return -TARGET_EFAULT;
> -+        }
> -+    }
> -+
> -+    return ret;
> -+}
> -+
> - #ifdef TIOCGPTPEER
> - static abi_long do_ioctl_tiocgptpeer(const IOCTLEntry *ie, uint8_t *buf_temp,
> -                                      int fd, int cmd, abi_long arg)
> -@@ -6160,32 +6270,6 @@ static inline abi_long target_ftruncate64(void *cpu_env, abi_long arg1,
> - }
> - #endif
> -
> --static inline abi_long target_to_host_timespec(struct timespec *host_ts,
> --                                               abi_ulong target_addr)
> --{
> --    struct target_timespec *target_ts;
> --
> --    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1))
> --        return -TARGET_EFAULT;
> --    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
> --    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> --    unlock_user_struct(target_ts, target_addr, 0);
> --    return 0;
> --}
> --
> --static inline abi_long host_to_target_timespec(abi_ulong target_addr,
> --                                               struct timespec *host_ts)
> --{
> --    struct target_timespec *target_ts;
> --
> --    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0))
> --        return -TARGET_EFAULT;
> --    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
> --    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> --    unlock_user_struct(target_ts, target_addr, 1);
> --    return 0;
> --}
> --
> - static inline abi_long target_to_host_itimerspec(struct itimerspec *host_itspec,
> -                                                  abi_ulong target_addr)
> - {
> -diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> -index 12c8407144..c918419306 100644
> ---- a/linux-user/syscall_defs.h
> -+++ b/linux-user/syscall_defs.h
> -@@ -208,16 +208,34 @@ struct target_linger {
> -     abi_int l_linger;       /* How long to linger for       */
> - };
> -
> -+#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
> -+struct target_timeval {
> -+    abi_long tv_sec;
> -+    abi_int tv_usec;
> -+};
> -+#define target__kernel_sock_timeval target_timeval
> -+#else
> - struct target_timeval {
> -     abi_long tv_sec;
> -     abi_long tv_usec;
> - };
> -
> -+struct target__kernel_sock_timeval {
> -+    abi_llong tv_sec;
> -+    abi_llong tv_usec;
> -+};
> -+#endif
> -+
> - struct target_timespec {
> -     abi_long tv_sec;
> -     abi_long tv_nsec;
> - };
> -
> -+struct target__kernel_timespec {
> -+    abi_llong tv_sec;
> -+    abi_llong tv_nsec;
> -+};
> -+
> - struct target_timezone {
> -     abi_int tz_minuteswest;
> -     abi_int tz_dsttime;
> -@@ -743,8 +761,16 @@ struct target_pollfd {
> - #define TARGET_SIOCATMARK      0x8905
> - #define TARGET_SIOCGPGRP       0x8904
> - #endif
> --#define TARGET_SIOCGSTAMP      0x8906          /* Get stamp (timeval) */
> --#define TARGET_SIOCGSTAMPNS    0x8907          /* Get stamp (timespec) */
> -+#if defined(TARGET_SH4)
> -+#define TARGET_SIOCGSTAMP_OLD   TARGET_IOR('s', 100, struct target_timeval)
> -+#define TARGET_SIOCGSTAMPNS_OLD TARGET_IOR('s', 101, struct target_timespec)
> -+#else
> -+#define TARGET_SIOCGSTAMP_OLD   0x8906
> -+#define TARGET_SIOCGSTAMPNS_OLD 0x8907
> -+#endif
> -+
> -+#define TARGET_SIOCGSTAMP_NEW   TARGET_IOR(0x89, 0x06, abi_llong[2])
> -+#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2])
> -
> - /* Networking ioctls */
> - #define TARGET_SIOCADDRT       0x890B          /* add routing table entry */
> -diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
> -index b98a23b0f1..4e36983826 100644
> ---- a/linux-user/syscall_types.h
> -+++ b/linux-user/syscall_types.h
> -@@ -14,12 +14,6 @@ STRUCT(serial_icounter_struct,
> - STRUCT(sockaddr,
> -        TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
> -
> --STRUCT(timeval,
> --       MK_ARRAY(TYPE_LONG, 2))
> --
> --STRUCT(timespec,
> --       MK_ARRAY(TYPE_LONG, 2))
> --
> - STRUCT(rtentry,
> -        TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
> -        TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
> ---
> -2.21.0
> -
> diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch b/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
> deleted file mode 100644
> index c49a5e9a2a..0000000000
> --- a/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -From d52680fc932efb8a2f334cc6993e705ed1e31e99 Mon Sep 17 00:00:00 2001
> -From: Prasad J Pandit <pjp@fedoraproject.org>
> -Date: Thu, 25 Apr 2019 12:05:34 +0530
> -Subject: [PATCH] qxl: check release info object
> -
> -When releasing spice resources in release_resource() routine,
> -if release info object 'ext.info' is null, it leads to null
> -pointer dereference. Add check to avoid it.
> -
> -Reported-by: Bugs SysSec <bugs-syssec@rub.de>
> -Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
> -Message-id: 20190425063534.32747-1-ppandit@redhat.com
> -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> -
> -Upstream-Status: Backport
> -CVE: CVE-2019-12155
> -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
> ----
> - hw/display/qxl.c | 3 +++
> - 1 file changed, 3 insertions(+)
> -
> -diff --git a/hw/display/qxl.c b/hw/display/qxl.c
> -index c8ce5781e03..632923add23 100644
> ---- a/hw/display/qxl.c
> -+++ b/hw/display/qxl.c
> -@@ -777,6 +777,9 @@ static void interface_release_resource(QXLInstance *sin,
> -     QXLReleaseRing *ring;
> -     uint64_t *item, id;
> -
> -+    if (!ext.info) {
> -+        return;
> -+    }
> -     if (ext.group_id == MEMSLOT_GROUP_HOST) {
> -         /* host group -> vga mode update request */
> -         QXLCommandExt *cmdext = (void *)(intptr_t)(ext.info->id);
> diff --git a/meta/recipes-devtools/qemu/qemu_4.0.0.bb b/meta/recipes-devtools/qemu/qemu_4.1.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/qemu/qemu_4.0.0.bb
> rename to meta/recipes-devtools/qemu/qemu_4.1.0.bb
> --
> 2.22.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 1/3] qemu: Upgrade to version 4.1
  2019-08-17 13:57 ` [PATCH 1/3] qemu: Upgrade to version 4.1 Khem Raj
@ 2019-08-20 18:31   ` Alistair Francis
  0 siblings, 0 replies; 7+ messages in thread
From: Alistair Francis @ 2019-08-20 18:31 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On Sat, Aug 17, 2019 at 6:58 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> this seems to fail in qemu-user mode for mips why compiling webkitgtk
> got qemumips
>
> qemu-mips: TOPDIR/build/tmp/work/x86_64-linux/qemu-native/4.1.0-r0/qemu-4.1.0/accel/tcg/translate-all.c:2562:
> page_check_range: Assertion `start < ((target_ulong)1 <<
> L1_MAP_ADDR_SPACE_BITS)' failed.
> If the above error message is about missing .so libraries, then
> setting up GIR_EXTRA_LIBS_PATH in the recipe should help.
> (typically like this: GIR_EXTRA_LIBS_PATH="${B}/something/.libs" )
> Command '['TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/recipe-sysroot/usr/bin/g-ir-scanner-qemuwrapper',
> 'TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/build/Source/WebKit/tmp-introspectsorfb5_3/WebKit2-4.0',
> '--introspect-dump=TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/build/Source/WebKit/tmp-introspectsorfb5_3/functions.txt,TOPDIR/build/tmp/work/mips32r2-yoe-linux/webkitgtk/2.24.3-r0/build/Source/WebKit/tmp-introspectsorfb5_3/dump.xml']'
> returned non-zero exit status 1.
> ninja: build stopped: subcommand failed.
>
> see
> https://errors.yoctoproject.org/Errors/Details/263491/

Thanks for testing. I have fixed this problem, I'll send a v2 later today.

Alistair

>
> On Thu, Aug 15, 2019 at 2:45 PM Alistair Francis
> <alistair.francis@wdc.com> wrote:
> >
> > Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> > ---
> >  meta/conf/distro/include/tcmode-default.inc   |   2 +-
> >  meta/recipes-devtools/qemu/qemu-native.inc    |   4 +-
> >  ...u-native_4.0.0.bb => qemu-native_4.1.0.bb} |   0
> >  ...e_4.0.0.bb => qemu-system-native_4.1.0.bb} |   2 +-
> >  meta/recipes-devtools/qemu/qemu.inc           |  20 +-
> >  ...emu-Add-missing-wacom-HID-descriptor.patch |  10 +-
> >  ...test-which-runs-all-unit-test-cases-.patch |   6 +-
> >  ...n-environment-space-to-boot-loader-q.patch |   4 +-
> >  .../qemu/0004-qemu-disable-Valgrind.patch     |   6 +-
> >  ...-searched-during-user-mode-emulation.patch | 146 --------
> >  ...d.bfd-fix-cflags-and-set-some-envir.patch} |   6 +-
> >  ...connect-socket-to-a-spawned-command.patch} |  18 +-
> >  ... 0007-apic-fixup-fallthrough-to-PIC.patch} |   6 +-
> >  ...ebkitgtk-hangs-on-32-bit-x86-target.patch} |   6 +-
> >  ...-fix-mmap-munmap-mprotect-mremap-sh.patch} |  58 +--
> >  ...-libcap-header-issue-on-some-distro.patch} |   0
> >  ...messages-when-qemi_cpu_kick_thread-.patch} |   2 +-
> >  ...et-arm-Fix-vector-operation-segfault.patch |  66 ----
> >  ...o-handle-variably-sized-SIOCGSTAMP-w.patch | 339 ------------------
> >  .../qemu/qemu/CVE-2019-12155.patch            |  35 --
> >  .../qemu/{qemu_4.0.0.bb => qemu_4.1.0.bb}     |   0
> >  21 files changed, 59 insertions(+), 677 deletions(-)
> >  rename meta/recipes-devtools/qemu/{qemu-native_4.0.0.bb => qemu-native_4.1.0.bb} (100%)
> >  rename meta/recipes-devtools/qemu/{qemu-system-native_4.0.0.bb => qemu-system-native_4.1.0.bb} (99%)
> >  delete mode 100644 meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
> >  rename meta/recipes-devtools/qemu/qemu/{0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch => 0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch} (82%)
> >  rename meta/recipes-devtools/qemu/qemu/{0007-chardev-connect-socket-to-a-spawned-command.patch => 0006-chardev-connect-socket-to-a-spawned-command.patch} (93%)
> >  rename meta/recipes-devtools/qemu/qemu/{0008-apic-fixup-fallthrough-to-PIC.patch => 0007-apic-fixup-fallthrough-to-PIC.patch} (90%)
> >  rename meta/recipes-devtools/qemu/qemu/{0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch => 0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch} (90%)
> >  rename meta/recipes-devtools/qemu/qemu/{0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch => 0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch} (63%)
> >  rename meta/recipes-devtools/qemu/qemu/{0011-fix-libcap-header-issue-on-some-distro.patch => 0010-fix-libcap-header-issue-on-some-distro.patch} (100%)
> >  rename meta/recipes-devtools/qemu/qemu/{0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch => 0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch} (97%)
> >  delete mode 100644 meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
> >  delete mode 100644 meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
> >  delete mode 100644 meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
> >  rename meta/recipes-devtools/qemu/{qemu_4.0.0.bb => qemu_4.1.0.bb} (100%)
> >
> > diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> > index 1966dbd521..c89b8e012d 100644
> > --- a/meta/conf/distro/include/tcmode-default.inc
> > +++ b/meta/conf/distro/include/tcmode-default.inc
> > @@ -24,7 +24,7 @@ BINUVERSION ?= "2.32%"
> >  GDBVERSION ?= "8.3%"
> >  GLIBCVERSION ?= "2.30%"
> >  LINUXLIBCVERSION ?= "5.0%"
> > -QEMUVERSION ?= "4.0%"
> > +QEMUVERSION ?= "4.1%"
> >  GOVERSION ?= "1.12%"
> >  # This can not use wildcards like 8.0.% since it is also used in mesa to denote
> >  # llvm version being used, so always bump it with llvm recipe version bump
> > diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc
> > index c04297cad0..69c2c43e6b 100644
> > --- a/meta/recipes-devtools/qemu/qemu-native.inc
> > +++ b/meta/recipes-devtools/qemu/qemu-native.inc
> > @@ -3,8 +3,8 @@ inherit native
> >  require qemu.inc
> >
> >  SRC_URI_append = " \
> > -            file://0011-fix-libcap-header-issue-on-some-distro.patch \
> > -            file://0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
> > +            file://0010-fix-libcap-header-issue-on-some-distro.patch \
> > +            file://0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
> >              "
> >
> >  EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
> > diff --git a/meta/recipes-devtools/qemu/qemu-native_4.0.0.bb b/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/qemu/qemu-native_4.0.0.bb
> > rename to meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
> > diff --git a/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
> > similarity index 99%
> > rename from meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
> > rename to meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
> > index 964dcee524..d83ee59375 100644
> > --- a/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
> > +++ b/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
> > @@ -2,7 +2,7 @@ BPN = "qemu"
> >
> >  require qemu-native.inc
> >
> > -# As some of the files installed by qemu-native and qemu-system-native
> > +# As some of the files installed by qemu-native and qemu-system-native
> >  # are the same, we depend on qemu-native to get the full installation set
> >  # and avoid file clashes
> >  DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native"
> > diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> > index 46c40b7d4f..a83e835028 100644
> > --- a/meta/recipes-devtools/qemu/qemu.inc
> > +++ b/meta/recipes-devtools/qemu/qemu.inc
> > @@ -17,20 +17,16 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
> >             file://0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch \
> >             file://0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch \
> >             file://0004-qemu-disable-Valgrind.patch \
> > -           file://0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch \
> > -           file://0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
> > -           file://0007-chardev-connect-socket-to-a-spawned-command.patch \
> > -           file://0008-apic-fixup-fallthrough-to-PIC.patch \
> > -           file://0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
> > -           file://0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
> > -           file://0013-target-arm-Fix-vector-operation-segfault.patch \
> > -           file://0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch \
> > -          file://CVE-2019-12155.patch \
> > +           file://0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
> > +           file://0006-chardev-connect-socket-to-a-spawned-command.patch \
> > +           file://0007-apic-fixup-fallthrough-to-PIC.patch \
> > +           file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
> > +           file://0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
> >             "
> >  UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
> >
> > -SRC_URI[md5sum] = "0afeca336fd57ae3d3086ec07f59d708"
> > -SRC_URI[sha256sum] = "13a93dfe75b86734326f8d5b475fde82ec692d5b5a338b4262aeeb6b0fa4e469"
> > +SRC_URI[md5sum] = "cdf2b5ca52b9abac9bacb5842fa420f8"
> > +SRC_URI[sha256sum] = "656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6"
> >
> >  COMPATIBLE_HOST_mipsarchn32 = "null"
> >  COMPATIBLE_HOST_mipsarchn64 = "null"
> > @@ -141,7 +137,7 @@ PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
> >  PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native"
> >  PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native"
> >  PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
> > -PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2,"
> > +PACKAGECONFIG[ssh] = "--enable-libssh,--disable-libssh,libssh,"
> >  PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt,"
> >  PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle"
> >  PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1"
> > diff --git a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
> > index 5373915ff0..9478102ae5 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
> > @@ -1,4 +1,4 @@
> > -From 1cb804cf0e47116202011f3386b4739af668224a Mon Sep 17 00:00:00 2001
> > +From 4655dc18074e0be9d239f51dac32b61435da8549 Mon Sep 17 00:00:00 2001
> >  From: Richard Purdie <richard.purdie@linuxfoundation.org>
> >  Date: Thu, 27 Nov 2014 14:04:29 +0000
> >  Subject: [PATCH] qemu: Add missing wacom HID descriptor
> > @@ -19,10 +19,10 @@ Upstream-Status: Submitted
> >   1 file changed, 93 insertions(+), 1 deletion(-)
> >
> >  diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
> > -index ac0bc83b..6f9b22d4 100644
> > +index 8c43db93..3ff8ca28 100644
> >  --- a/hw/usb/dev-wacom.c
> >  +++ b/hw/usb/dev-wacom.c
> > -@@ -72,6 +72,89 @@ static const USBDescStrings desc_strings = {
> > +@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = {
> >       [STR_SERIALNUMBER]     = "1",
> >   };
> >
> > @@ -112,7 +112,7 @@ index ac0bc83b..6f9b22d4 100644
> >   static const USBDescIface desc_iface_wacom = {
> >       .bInterfaceNumber              = 0,
> >       .bNumEndpoints                 = 1,
> > -@@ -89,7 +172,7 @@ static const USBDescIface desc_iface_wacom = {
> > +@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wacom = {
> >                   0x00,          /*  u8  country_code */
> >                   0x01,          /*  u8  num_descriptors */
> >                   0x22,          /*  u8  type: Report */
> > @@ -121,7 +121,7 @@ index ac0bc83b..6f9b22d4 100644
> >               },
> >           },
> >       },
> > -@@ -269,6 +352,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
> > +@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
> >       }
> >
> >       switch (request) {
> > diff --git a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
> > index 7b7c5d71a0..2ccddd53cf 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
> > @@ -1,4 +1,4 @@
> > -From 281116b31981b0b9e174bda8abe00f4eaa33c2ae Mon Sep 17 00:00:00 2001
> > +From 67751f3a23e3db3012f391b3b3b73a4484488ce9 Mon Sep 17 00:00:00 2001
> >  From: Juro Bystricky <juro.bystricky@intel.com>
> >  Date: Thu, 31 Aug 2017 11:06:56 -0700
> >  Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for
> > @@ -15,10 +15,10 @@ Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
> >   1 file changed, 8 insertions(+)
> >
> >  diff --git a/tests/Makefile.include b/tests/Makefile.include
> > -index 36fc73fe..01fecd4d 100644
> > +index fd7fdb86..83b7f409 100644
> >  --- a/tests/Makefile.include
> >  +++ b/tests/Makefile.include
> > -@@ -1184,4 +1184,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
> > +@@ -1183,4 +1183,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
> >   -include $(wildcard tests/*.d)
> >   -include $(wildcard tests/libqos/*.d)
> >
> > diff --git a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> > index 9a18ca18e4..5c42d68030 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> > @@ -1,4 +1,4 @@
> > -From bf04acef9ec31ddcc18ddbb4ac5b7b1e7368bf7d Mon Sep 17 00:00:00 2001
> > +From 235b94f1188597873c8776b019fed49947983392 Mon Sep 17 00:00:00 2001
> >  From: Jason Wessel <jason.wessel@windriver.com>
> >  Date: Fri, 28 Mar 2014 17:42:43 +0800
> >  Subject: [PATCH] qemu: Add addition environment space to boot loader
> > @@ -19,7 +19,7 @@ Signed-off-by: Roy Li <rongqing.li@windriver.com>
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >  diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
> > -index 439665ab..285c78ef 100644
> > +index 20e019bf..d150b01c 100644
> >  --- a/hw/mips/mips_malta.c
> >  +++ b/hw/mips/mips_malta.c
> >  @@ -60,7 +60,7 @@
> > diff --git a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
> > index 9e326081f2..0ac4ab40b1 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
> > @@ -1,4 +1,4 @@
> > -From e40f797548bc3ff06c71b6cbe042a46406894d18 Mon Sep 17 00:00:00 2001
> > +From 3ad7a375015d47fdf5016e03e11fa93440d6d8bd Mon Sep 17 00:00:00 2001
> >  From: Ross Burton <ross.burton@intel.com>
> >  Date: Tue, 20 Oct 2015 22:19:08 +0100
> >  Subject: [PATCH] qemu: disable Valgrind
> > @@ -13,10 +13,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
> >   1 file changed, 9 deletions(-)
> >
> >  diff --git a/configure b/configure
> > -index 1c563a70..eaf9bb5e 100755
> > +index 714e7fb6..dad4fc59 100755
> >  --- a/configure
> >  +++ b/configure
> > -@@ -5311,15 +5311,6 @@ fi
> > +@@ -5335,15 +5335,6 @@ fi
> >   # check if we have valgrind/valgrind.h
> >
> >   valgrind_h=no
> > diff --git a/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
> > deleted file mode 100644
> > index 819720a3f2..0000000000
> > --- a/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
> > +++ /dev/null
> > @@ -1,146 +0,0 @@
> > -From 547c3710a1493d2fd6bb56b819cf162db433756a Mon Sep 17 00:00:00 2001
> > -From: Richard Purdie <richard.purdie@linuxfoundation.org>
> > -Date: Wed, 9 Mar 2016 22:49:02 +0000
> > -Subject: [PATCH] qemu: Limit paths searched during user mode emulation
> > -
> > -By default qemu builds a complete list of directories within the user
> > -emulation sysroot (-L option). The OE sysroot directory is large and
> > -this is confusing, for example it indexes all pkgdata. In particular this
> > -confuses strace of qemu binaries with tons of irrelevant paths.
> > -
> > -This patch stops the code indexing up front and instead only indexes
> > -things if/as/when it needs to. This drastically reduces the files it
> > -reads and reduces memory usage and cleans up strace.
> > -
> > -It would also avoid the infinite directory traversal bug in [YOCTO #6996]
> > -although the code could still be vulnerable if it parsed those specific
> > -paths.
> > -
> > -RP
> > -2016/3/9
> > -Upstream-Status: Pending
> > -
> > ----
> > - util/path.c | 44 ++++++++++++++++++++++----------------------
> > - 1 file changed, 22 insertions(+), 22 deletions(-)
> > -
> > -diff --git a/util/path.c b/util/path.c
> > -index 7f9fc272..a416cd4a 100644
> > ---- a/util/path.c
> > -+++ b/util/path.c
> > -@@ -15,6 +15,7 @@ struct pathelem
> > -     char *name;
> > -     /* Full path name, eg. /usr/gnemul/x86-linux/lib. */
> > -     char *pathname;
> > -+    int populated_entries;
> > -     struct pathelem *parent;
> > -     /* Children */
> > -     unsigned int num_entries;
> > -@@ -45,6 +46,7 @@ static struct pathelem *new_entry(const char *root,
> > -     new->name = g_strdup(name);
> > -     new->pathname = g_strdup_printf("%s/%s", root, name);
> > -     new->num_entries = 0;
> > -+    new->populated_entries = 0;
> > -     return new;
> > - }
> > -
> > -@@ -53,15 +55,16 @@ static struct pathelem *new_entry(const char *root,
> > - /* Not all systems provide this feature */
> > - #if defined(DT_DIR) && defined(DT_UNKNOWN) && defined(DT_LNK)
> > - # define dirent_type(dirent) ((dirent)->d_type)
> > --# define is_dir_maybe(type) \
> > --    ((type) == DT_DIR || (type) == DT_UNKNOWN || (type) == DT_LNK)
> > -+# define is_not_dir(type) \
> > -+    ((type) != DT_DIR && (type) != DT_UNKNOWN && (type) != DT_LNK)
> > - #else
> > - # define dirent_type(dirent) (1)
> > --# define is_dir_maybe(type)  (type)
> > -+# define is_not_dir(type)  (0)
> > - #endif
> > -
> > - static struct pathelem *add_dir_maybe(struct pathelem *path)
> > - {
> > -+    unsigned int i;
> > -     DIR *dir;
> > -
> > -     if ((dir = opendir(path->pathname)) != NULL) {
> > -@@ -74,6 +77,11 @@ static struct pathelem *add_dir_maybe(struct pathelem *path)
> > -         }
> > -         closedir(dir);
> > -     }
> > -+
> > -+    for (i = 0; i < path->num_entries; i++)
> > -+        (path->entries[i])->parent = path;
> > -+
> > -+    path->populated_entries = 1;
> > -     return path;
> > - }
> > -
> > -@@ -89,26 +97,16 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name,
> > -     e = &root->entries[root->num_entries-1];
> > -
> > -     *e = new_entry(root->pathname, root, name);
> > --    if (is_dir_maybe(type)) {
> > --        *e = add_dir_maybe(*e);
> > -+    if (is_not_dir(type)) {
> > -+        (*e)->populated_entries = 1;
> > -     }
> > -
> > -     return root;
> > - }
> > -
> > --/* This needs to be done after tree is stabilized (ie. no more reallocs!). */
> > --static void set_parents(struct pathelem *child, struct pathelem *parent)
> > --{
> > --    unsigned int i;
> > --
> > --    child->parent = parent;
> > --    for (i = 0; i < child->num_entries; i++)
> > --        set_parents(child->entries[i], child);
> > --}
> > --
> > - /* FIXME: Doesn't handle DIR/.. where DIR is not in emulated dir. */
> > - static const char *
> > --follow_path(const struct pathelem *cursor, const char *name)
> > -+follow_path(struct pathelem *cursor, struct pathelem **source, const char *name)
> > - {
> > -     unsigned int i, namelen;
> > -
> > -@@ -119,14 +117,18 @@ follow_path(const struct pathelem *cursor, const char *name)
> > -         return cursor->pathname;
> > -
> > -     if (strneq(name, namelen, ".."))
> > --        return follow_path(cursor->parent, name + namelen);
> > -+        return follow_path(cursor->parent, &cursor->parent, name + namelen);
> > -
> > -     if (strneq(name, namelen, "."))
> > --        return follow_path(cursor, name + namelen);
> > -+        return follow_path(cursor, source, name + namelen);
> > -+
> > -+    if (!cursor->populated_entries)
> > -+        *source = add_dir_maybe(cursor);
> > -+        cursor = *source;
> > -
> > -     for (i = 0; i < cursor->num_entries; i++)
> > -         if (strneq(name, namelen, cursor->entries[i]->name))
> > --            return follow_path(cursor->entries[i], name + namelen);
> > -+            return follow_path(cursor->entries[i], &cursor->entries[i], name + namelen);
> > -
> > -     /* Not found */
> > -     return NULL;
> > -@@ -160,8 +162,6 @@ void init_paths(const char *prefix)
> > -         g_free(base->name);
> > -         g_free(base);
> > -         base = NULL;
> > --    } else {
> > --        set_parents(base, base);
> > -     }
> > - }
> > -
> > -@@ -173,5 +173,5 @@ const char *path(const char *name)
> > -     if (!base || !name || name[0] != '/')
> > -         return name;
> > -
> > --    return follow_path(base, name) ?: name;
> > -+    return follow_path(base, &base, name) ?: name;
> > - }
> > diff --git a/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> > similarity index 82%
> > rename from meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> > rename to meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> > index b62a588c66..a73681510e 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
> > @@ -1,4 +1,4 @@
> > -From 107fd860529a3c1319d54c3c225758457b0d9394 Mon Sep 17 00:00:00 2001
> > +From 80e6070bcdfe636b103a13598e6c38ad0d0e7624 Mon Sep 17 00:00:00 2001
> >  From: Stephen Arnold <sarnold@vctlabs.com>
> >  Date: Sun, 12 Jun 2016 18:09:56 -0700
> >  Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment
> > @@ -10,10 +10,10 @@ Upstream-Status: Pending
> >   1 file changed, 4 deletions(-)
> >
> >  diff --git a/configure b/configure
> > -index eaf9bb5e..de2933d1 100755
> > +index dad4fc59..685bbe5e 100755
> >  --- a/configure
> >  +++ b/configure
> > -@@ -5928,10 +5928,6 @@ write_c_skeleton
> > +@@ -5971,10 +5971,6 @@ write_c_skeleton
> >   if test "$gcov" = "yes" ; then
> >     CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
> >     LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
> > diff --git a/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
> > similarity index 93%
> > rename from meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
> > rename to meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
> > index f3f3dc3f5e..a42385530f 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
> > @@ -1,4 +1,4 @@
> > -From 136e159482a1bc8676cbe6e767055d0c3fb20065 Mon Sep 17 00:00:00 2001
> > +From ad853601e75f6d0dd09672bcca05fbe4fac766a4 Mon Sep 17 00:00:00 2001
> >  From: Alistair Francis <alistair.francis@xilinx.com>
> >  Date: Thu, 21 Dec 2017 11:35:16 -0800
> >  Subject: [PATCH] chardev: connect socket to a spawned command
> > @@ -52,10 +52,10 @@ Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
> >   3 files changed, 109 insertions(+)
> >
> >  diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> > -index 3916505d..a8e9dce8 100644
> > +index 7ca5d97a..207fae4a 100644
> >  --- a/chardev/char-socket.c
> >  +++ b/chardev/char-socket.c
> > -@@ -1273,6 +1273,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
> > +@@ -1278,6 +1278,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
> >       return true;
> >   }
> >
> > @@ -123,7 +123,7 @@ index 3916505d..a8e9dce8 100644
> >
> >   static void qmp_chardev_open_socket(Chardev *chr,
> >                                       ChardevBackend *backend,
> > -@@ -1281,6 +1342,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
> > +@@ -1286,6 +1347,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
> >   {
> >       SocketChardev *s = SOCKET_CHARDEV(chr);
> >       ChardevSocket *sock = backend->u.socket.data;
> > @@ -133,7 +133,7 @@ index 3916505d..a8e9dce8 100644
> >       bool do_nodelay     = sock->has_nodelay ? sock->nodelay : false;
> >       bool is_listen      = sock->has_server  ? sock->server  : true;
> >       bool is_telnet      = sock->has_telnet  ? sock->telnet  : false;
> > -@@ -1346,6 +1410,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
> > +@@ -1351,6 +1415,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
> >
> >       update_disconnected_filename(s);
> >
> > @@ -148,7 +148,7 @@ index 3916505d..a8e9dce8 100644
> >       if (s->is_listen) {
> >           if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
> >                                              is_waitconnect, errp) < 0) {
> > -@@ -1365,9 +1437,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
> > +@@ -1370,9 +1442,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
> >       const char *host = qemu_opt_get(opts, "host");
> >       const char *port = qemu_opt_get(opts, "port");
> >       const char *fd = qemu_opt_get(opts, "fd");
> > @@ -175,7 +175,7 @@ index 3916505d..a8e9dce8 100644
> >       if ((!!path + !!fd + !!host) != 1) {
> >           error_setg(errp,
> >                      "Exactly one of 'path', 'fd' or 'host' required");
> > -@@ -1410,12 +1499,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
> > +@@ -1415,12 +1504,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
> >       sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
> >       sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
> >
> > @@ -201,10 +201,10 @@ index 3916505d..a8e9dce8 100644
> >           addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
> >           addr->u.inet.data = g_new(InetSocketAddress, 1);
> >  diff --git a/chardev/char.c b/chardev/char.c
> > -index 514cd6b0..36a40d67 100644
> > +index 7b6b2cb1..0c2ca64b 100644
> >  --- a/chardev/char.c
> >  +++ b/chardev/char.c
> > -@@ -835,6 +835,9 @@ QemuOptsList qemu_chardev_opts = {
> > +@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = {
> >           },{
> >               .name = "path",
> >               .type = QEMU_OPT_STRING,
> > diff --git a/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
> > similarity index 90%
> > rename from meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
> > rename to meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
> > index 13037f33f3..b50e8c2545 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
> > @@ -1,4 +1,4 @@
> > -From 1b3f264e2ba18caf658fae27293c426c8366c6a3 Mon Sep 17 00:00:00 2001
> > +From f51e49e7d7d87b7254242b7360f99c2df94a5a2d Mon Sep 17 00:00:00 2001
> >  From: Mark Asselstine <mark.asselstine@windriver.com>
> >  Date: Tue, 26 Feb 2013 11:43:28 -0500
> >  Subject: [PATCH] apic: fixup fallthrough to PIC
> > @@ -30,10 +30,10 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >  diff --git a/hw/intc/apic.c b/hw/intc/apic.c
> > -index 6ea619c3..f892811e 100644
> > +index bce89911..df4b582e 100644
> >  --- a/hw/intc/apic.c
> >  +++ b/hw/intc/apic.c
> > -@@ -604,7 +604,7 @@ int apic_accept_pic_intr(DeviceState *dev)
> > +@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev)
> >       APICCommonState *s = APIC(dev);
> >       uint32_t lvt0;
> >
> > diff --git a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> > similarity index 90%
> > rename from meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> > rename to meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> > index c572ff94d0..e562f25bec 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> > @@ -1,4 +1,4 @@
> > -From a33ae91504ea4d254b5ace64a84791d3c96c9773 Mon Sep 17 00:00:00 2001
> > +From 25a064f91f73630e5dff2a6aeb23d953c469cea6 Mon Sep 17 00:00:00 2001
> >  From: Alistair Francis <alistair.francis@xilinx.com>
> >  Date: Wed, 17 Jan 2018 10:51:49 -0800
> >  Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target
> > @@ -19,10 +19,10 @@ Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >  diff --git a/linux-user/main.c b/linux-user/main.c
> > -index a0aba9cb..34c54924 100644
> > +index 8ffc5251..4067e739 100644
> >  --- a/linux-user/main.c
> >  +++ b/linux-user/main.c
> > -@@ -69,7 +69,7 @@ int have_guest_base;
> > +@@ -77,7 +77,7 @@ int have_guest_base;
> >         (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32))
> >   /* There are a number of places where we assign reserved_va to a variable
> >      of type abi_ulong and expect it to fit.  Avoid the last page.  */
> > diff --git a/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch b/meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> > similarity index 63%
> > rename from meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> > rename to meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> > index 3418eb7c65..15a8d6ce95 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0009-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
> > @@ -1,4 +1,4 @@
> > -From 2a66bd95c856de6950fbd802c5b99075207c1d76 Mon Sep 17 00:00:00 2001
> > +From 36d61e01738549c481bac1ec43cc98e40728e352 Mon Sep 17 00:00:00 2001
> >  From: Martin Jansa <martin.jansa@lge.com>
> >  Date: Fri, 1 Jun 2018 08:41:07 +0000
> >  Subject: [PATCH] Revert "linux-user: fix mmap/munmap/mprotect/mremap/shmat"
> > @@ -16,17 +16,16 @@ This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583.
> >  Upstream-Status: Pending
> >
> >  ---
> > - include/exec/cpu-all.h  |  6 +-----
> > - include/exec/cpu_ldst.h | 16 +++++++++-------
> > - linux-user/mmap.c       | 17 ++++-------------
> > - linux-user/syscall.c    |  5 +----
> > - 4 files changed, 15 insertions(+), 29 deletions(-)
> > + include/exec/cpu-all.h |  6 +-----
> > + linux-user/mmap.c      | 17 ++++-------------
> > + linux-user/syscall.c   |  5 +----
> > + 3 files changed, 6 insertions(+), 22 deletions(-)
> >
> >  diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
> > -index b16c9ec5..612db6a0 100644
> > +index 536ea58f..4c63a6a2 100644
> >  --- a/include/exec/cpu-all.h
> >  +++ b/include/exec/cpu-all.h
> > -@@ -163,12 +163,8 @@ extern unsigned long guest_base;
> > +@@ -162,12 +162,8 @@ extern unsigned long guest_base;
> >   extern int have_guest_base;
> >   extern unsigned long reserved_va;
> >
> > @@ -40,38 +39,11 @@ index b16c9ec5..612db6a0 100644
> >   #else
> >
> >   #include "exec/hwaddr.h"
> > -diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
> > -index d78041d7..845639f7 100644
> > ---- a/include/exec/cpu_ldst.h
> > -+++ b/include/exec/cpu_ldst.h
> > -@@ -62,13 +62,15 @@ typedef uint64_t abi_ptr;
> > - /* All direct uses of g2h and h2g need to go away for usermode softmmu.  */
> > - #define g2h(x) ((void *)((unsigned long)(abi_ptr)(x) + guest_base))
> > -
> > --#define guest_addr_valid(x) ((x) <= GUEST_ADDR_MAX)
> > --#define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base)
> > --
> > --static inline int guest_range_valid(unsigned long start, unsigned long len)
> > --{
> > --    return len - 1 <= GUEST_ADDR_MAX && start <= GUEST_ADDR_MAX - len + 1;
> > --}
> > -+#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
> > -+#define h2g_valid(x) 1
> > -+#else
> > -+#define h2g_valid(x) ({ \
> > -+    unsigned long __guest = (unsigned long)(x) - guest_base; \
> > -+    (__guest < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \
> > -+    (!reserved_va || (__guest < reserved_va)); \
> > -+})
> > -+#endif
> > -
> > - #define h2g_nocheck(x) ({ \
> > -     unsigned long __ret = (unsigned long)(x) - guest_base; \
> >  diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> > -index e0249efe..cfe34b35 100644
> > +index 46a6e3a7..77354654 100644
> >  --- a/linux-user/mmap.c
> >  +++ b/linux-user/mmap.c
> > -@@ -79,7 +79,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
> > +@@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
> >           return -TARGET_EINVAL;
> >       len = TARGET_PAGE_ALIGN(len);
> >       end = start + len;
> > @@ -80,7 +52,7 @@ index e0249efe..cfe34b35 100644
> >           return -TARGET_ENOMEM;
> >       }
> >       prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
> > -@@ -490,8 +490,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
> > +@@ -495,8 +495,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
> >            * It can fail only on 64-bit host with 32-bit target.
> >            * On any other target/host host mmap() handles this error correctly.
> >            */
> > @@ -91,7 +63,7 @@ index e0249efe..cfe34b35 100644
> >               goto fail;
> >           }
> >
> > -@@ -631,10 +631,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
> > +@@ -636,10 +636,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
> >       if (start & ~TARGET_PAGE_MASK)
> >           return -TARGET_EINVAL;
> >       len = TARGET_PAGE_ALIGN(len);
> > @@ -103,7 +75,7 @@ index e0249efe..cfe34b35 100644
> >       mmap_lock();
> >       end = start + len;
> >       real_start = start & qemu_host_page_mask;
> > -@@ -689,13 +687,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
> > +@@ -694,13 +692,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
> >       int prot;
> >       void *host_addr;
> >
> > @@ -118,10 +90,10 @@ index e0249efe..cfe34b35 100644
> >
> >       if (flags & MREMAP_FIXED) {
> >  diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> > -index 96cd4bf8..e6754772 100644
> > +index 8367cb13..6030402b 100644
> >  --- a/linux-user/syscall.c
> >  +++ b/linux-user/syscall.c
> > -@@ -3860,9 +3860,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
> > +@@ -4030,9 +4030,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
> >               return -TARGET_EINVAL;
> >           }
> >       }
> > @@ -131,7 +103,7 @@ index 96cd4bf8..e6754772 100644
> >
> >       mmap_lock();
> >
> > -@@ -6633,7 +6630,7 @@ static int open_self_maps(void *cpu_env, int fd)
> > +@@ -6880,7 +6877,7 @@ static int open_self_maps(void *cpu_env, int fd)
> >           }
> >           if (h2g_valid(min)) {
> >               int flags = page_get_flags(h2g(min));
> > diff --git a/meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch b/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
> > similarity index 100%
> > rename from meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch
> > rename to meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
> > diff --git a/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> > similarity index 97%
> > rename from meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> > rename to meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> > index 04664195d1..e5ebfc1267 100644
> > --- a/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> > +++ b/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
> > @@ -37,7 +37,7 @@ index e83f72b4..e6e2576e 100644
> >       if (err && err != ESRCH) {
> >           fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
> >  +        fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
> > -+        cpu_dump_state(cpu, stderr, fprintf, 0);
> > ++        cpu_dump_state(cpu, stderr, 0);
> >  +        backtrace_print();
> >           exit(1);
> >       }
> > diff --git a/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch b/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
> > deleted file mode 100644
> > index c1dd957dc9..0000000000
> > --- a/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
> > +++ /dev/null
> > @@ -1,66 +0,0 @@
> > -From 2f143d3ad1c05e91cf2cdf5de06d59a80a95e6c8 Mon Sep 17 00:00:00 2001
> > -From: Alistair Francis <alistair.francis@wdc.com>
> > -Date: Thu, 23 May 2019 14:47:43 +0100
> > -Subject: [PATCH] target/arm: Fix vector operation segfault
> > -MIME-Version: 1.0
> > -Content-Type: text/plain; charset=UTF-8
> > -Content-Transfer-Encoding: 8bit
> > -
> > -Commit 89e68b575 "target/arm: Use vector operations for saturation"
> > -causes this abort() when booting QEMU ARM with a Cortex-A15:
> > -
> > -0  0x00007ffff4c2382f in raise () at /usr/lib/libc.so.6
> > -1  0x00007ffff4c0e672 in abort () at /usr/lib/libc.so.6
> > -2  0x00005555559c1839 in disas_neon_data_insn (insn=<optimized out>, s=<optimized out>) at ./target/arm/translate.c:6673
> > -3  0x00005555559c1839 in disas_neon_data_insn (s=<optimized out>, insn=<optimized out>) at ./target/arm/translate.c:6386
> > -4  0x00005555559cd8a4 in disas_arm_insn (insn=4081107068, s=0x7fffe59a9510) at ./target/arm/translate.c:9289
> > -5  0x00005555559cd8a4 in arm_tr_translate_insn (dcbase=0x7fffe59a9510, cpu=<optimized out>) at ./target/arm/translate.c:13612
> > -6  0x00005555558d1d39 in translator_loop (ops=0x5555561cc580 <arm_translator_ops>, db=0x7fffe59a9510, cpu=0x55555686a2f0, tb=<optimized out>, max_insns=<optimized out>) at ./accel/tcg/translator.c:96
> > -7  0x00005555559d10d4 in gen_intermediate_code (cpu=cpu@entry=0x55555686a2f0, tb=tb@entry=0x7fffd7840080 <code_gen_buffer+126091347>, max_insns=max_insns@entry=512) at ./target/arm/translate.c:13901
> > -8  0x00005555558d06b9 in tb_gen_code (cpu=cpu@entry=0x55555686a2f0, pc=3067096216, cs_base=0, flags=192, cflags=-16252928, cflags@entry=524288) at ./accel/tcg/translate-all.c:1736
> > -9  0x00005555558ce467 in tb_find (cf_mask=524288, tb_exit=1, last_tb=0x7fffd783e640 <code_gen_buffer+126084627>, cpu=0x1) at ./accel/tcg/cpu-exec.c:407
> > -10 0x00005555558ce467 in cpu_exec (cpu=cpu@entry=0x55555686a2f0) at ./accel/tcg/cpu-exec.c:728
> > -11 0x000055555588b0cf in tcg_cpu_exec (cpu=0x55555686a2f0) at ./cpus.c:1431
> > -12 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=0x55555686a2f0) at ./cpus.c:1735
> > -13 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=arg@entry=0x55555686a2f0) at ./cpus.c:1709
> > -14 0x0000555555d2629a in qemu_thread_start (args=<optimized out>) at ./util/qemu-thread-posix.c:502
> > -15 0x00007ffff4db8a92 in start_thread () at /usr/lib/libpthread.
> > -
> > -This patch ensures that we don't hit the abort() in the second switch
> > -case in disas_neon_data_insn() as we will return from the first case.
> > -
> > -Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> > -Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> > -Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > -Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> > -Tested-by: Alex Bennée <alex.bennee@linaro.org>
> > -Message-id: ad91b397f360b2fc7f4087e476f7df5b04d42ddb.1558021877.git.alistair.francis@wdc.com
> > -Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> > -Upstream-Status: Backport [4.1.0]
> > ----
> > - target/arm/translate.c | 4 ++--
> > - 1 file changed, 2 insertions(+), 2 deletions(-)
> > -
> > -diff --git a/target/arm/translate.c b/target/arm/translate.c
> > -index dd053c80d6..298c262825 100644
> > ---- a/target/arm/translate.c
> > -+++ b/target/arm/translate.c
> > -@@ -6598,13 +6598,13 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
> > -             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
> > -                            rn_ofs, rm_ofs, vec_size, vec_size,
> > -                            (u ? uqadd_op : sqadd_op) + size);
> > --            break;
> > -+            return 0;
> > -
> > -         case NEON_3R_VQSUB:
> > -             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
> > -                            rn_ofs, rm_ofs, vec_size, vec_size,
> > -                            (u ? uqsub_op : sqsub_op) + size);
> > --            break;
> > -+            return 0;
> > -
> > -         case NEON_3R_VMUL: /* VMUL */
> > -             if (u) {
> > ---
> > -2.21.0
> > -
> > diff --git a/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch b/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
> > deleted file mode 100644
> > index 7cac8ef3d1..0000000000
> > --- a/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
> > +++ /dev/null
> > @@ -1,339 +0,0 @@
> > -From 8104018ba4c66e568d2583a3a0ee940851ee7471 Mon Sep 17 00:00:00 2001
> > -From: Daniel P. Berrangé <berrange@redhat.com>
> > -Date: Tue, 23 Jul 2019 17:50:00 +0200
> > -Subject: [PATCH] linux-user: fix to handle variably sized SIOCGSTAMP with new
> > - kernels
> > -MIME-Version: 1.0
> > -Content-Type: text/plain; charset=UTF-8
> > -Content-Transfer-Encoding: 8bit
> > -
> > -The SIOCGSTAMP symbol was previously defined in the
> > -asm-generic/sockios.h header file. QEMU sees that header
> > -indirectly via sys/socket.h
> > -
> > -In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
> > -the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
> > -Instead it provides only SIOCGSTAMP_OLD, which only uses a
> > -32-bit time_t on 32-bit architectures.
> > -
> > -The linux/sockios.h header then defines SIOCGSTAMP using
> > -either SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. If
> > -SIOCGSTAMP_NEW is used, then the tv_sec field is 64-bit even
> > -on 32-bit architectures
> > -
> > -To cope with this we must now convert the old and new type from
> > -the target to the host one.
> > -
> > -Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > -Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> > -Reviewed-by: Arnd Bergmann <arnd@arndb.de>
> > -Message-Id: <20190718130641.15294-1-laurent@vivier.eu>
> > -Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> > -Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > ----
> > -Upstream-Status: Backport [upstream commit: 6d5d5dde9adb5acb32e6b8e3dfbf47fff0f308d2]
> > -
> > - linux-user/ioctls.h        |  21 +++++-
> > - linux-user/syscall.c       | 140 +++++++++++++++++++++++++++++--------
> > - linux-user/syscall_defs.h  |  30 +++++++-
> > - linux-user/syscall_types.h |   6 --
> > - 4 files changed, 159 insertions(+), 38 deletions(-)
> > -
> > -diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
> > -index ae8951625f..e6a27ad9d6 100644
> > ---- a/linux-user/ioctls.h
> > -+++ b/linux-user/ioctls.h
> > -@@ -219,8 +219,25 @@
> > -   IOCTL(SIOCGRARP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
> > -   IOCTL(SIOCGIWNAME, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_char_ifreq)))
> > -   IOCTL(SIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) /* pid_t */
> > --  IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval)))
> > --  IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec)))
> > -+
> > -+  /*
> > -+   * We can't use IOCTL_SPECIAL() because it will set
> > -+   * host_cmd to XXX_OLD and XXX_NEW and these macros
> > -+   * are not defined with kernel prior to 5.2.
> > -+   * We must set host_cmd to the same value as in target_cmd
> > -+   * otherwise the consistency check in syscall_init()
> > -+   * will trigger an error.
> > -+   * host_cmd is ignored by the do_ioctl_XXX() helpers.
> > -+   * FIXME: create a macro to define this kind of entry
> > -+   */
> > -+  { TARGET_SIOCGSTAMP_OLD, TARGET_SIOCGSTAMP_OLD,
> > -+    "SIOCGSTAMP_OLD", IOC_R, do_ioctl_SIOCGSTAMP },
> > -+  { TARGET_SIOCGSTAMPNS_OLD, TARGET_SIOCGSTAMPNS_OLD,
> > -+    "SIOCGSTAMPNS_OLD", IOC_R, do_ioctl_SIOCGSTAMPNS },
> > -+  { TARGET_SIOCGSTAMP_NEW, TARGET_SIOCGSTAMP_NEW,
> > -+    "SIOCGSTAMP_NEW", IOC_R, do_ioctl_SIOCGSTAMP },
> > -+  { TARGET_SIOCGSTAMPNS_NEW, TARGET_SIOCGSTAMPNS_NEW,
> > -+    "SIOCGSTAMPNS_NEW", IOC_R, do_ioctl_SIOCGSTAMPNS },
> > -
> > -   IOCTL(RNDGETENTCNT, IOC_R, MK_PTR(TYPE_INT))
> > -   IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT))
> > -diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> > -index 96cd4bf86d..6df480e13d 100644
> > ---- a/linux-user/syscall.c
> > -+++ b/linux-user/syscall.c
> > -@@ -37,6 +37,7 @@
> > - #include <sched.h>
> > - #include <sys/timex.h>
> > - #include <sys/socket.h>
> > -+#include <linux/sockios.h>
> > - #include <sys/un.h>
> > - #include <sys/uio.h>
> > - #include <poll.h>
> > -@@ -1139,8 +1140,9 @@ static inline abi_long copy_from_user_timeval(struct timeval *tv,
> > - {
> > -     struct target_timeval *target_tv;
> > -
> > --    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1))
> > -+    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1)) {
> > -         return -TARGET_EFAULT;
> > -+    }
> > -
> > -     __get_user(tv->tv_sec, &target_tv->tv_sec);
> > -     __get_user(tv->tv_usec, &target_tv->tv_usec);
> > -@@ -1155,8 +1157,26 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
> > - {
> > -     struct target_timeval *target_tv;
> > -
> > --    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0))
> > -+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
> > -+        return -TARGET_EFAULT;
> > -+    }
> > -+
> > -+    __put_user(tv->tv_sec, &target_tv->tv_sec);
> > -+    __put_user(tv->tv_usec, &target_tv->tv_usec);
> > -+
> > -+    unlock_user_struct(target_tv, target_tv_addr, 1);
> > -+
> > -+    return 0;
> > -+}
> > -+
> > -+static inline abi_long copy_to_user_timeval64(abi_ulong target_tv_addr,
> > -+                                             const struct timeval *tv)
> > -+{
> > -+    struct target__kernel_sock_timeval *target_tv;
> > -+
> > -+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
> > -         return -TARGET_EFAULT;
> > -+    }
> > -
> > -     __put_user(tv->tv_sec, &target_tv->tv_sec);
> > -     __put_user(tv->tv_usec, &target_tv->tv_usec);
> > -@@ -1166,6 +1186,48 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
> > -     return 0;
> > - }
> > -
> > -+static inline abi_long target_to_host_timespec(struct timespec *host_ts,
> > -+                                               abi_ulong target_addr)
> > -+{
> > -+    struct target_timespec *target_ts;
> > -+
> > -+    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1)) {
> > -+        return -TARGET_EFAULT;
> > -+    }
> > -+    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
> > -+    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> > -+    unlock_user_struct(target_ts, target_addr, 0);
> > -+    return 0;
> > -+}
> > -+
> > -+static inline abi_long host_to_target_timespec(abi_ulong target_addr,
> > -+                                               struct timespec *host_ts)
> > -+{
> > -+    struct target_timespec *target_ts;
> > -+
> > -+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
> > -+        return -TARGET_EFAULT;
> > -+    }
> > -+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
> > -+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> > -+    unlock_user_struct(target_ts, target_addr, 1);
> > -+    return 0;
> > -+}
> > -+
> > -+static inline abi_long host_to_target_timespec64(abi_ulong target_addr,
> > -+                                                 struct timespec *host_ts)
> > -+{
> > -+    struct target__kernel_timespec *target_ts;
> > -+
> > -+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
> > -+        return -TARGET_EFAULT;
> > -+    }
> > -+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
> > -+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> > -+    unlock_user_struct(target_ts, target_addr, 1);
> > -+    return 0;
> > -+}
> > -+
> > - static inline abi_long copy_from_user_timezone(struct timezone *tz,
> > -                                                abi_ulong target_tz_addr)
> > - {
> > -@@ -4790,6 +4852,54 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp,
> > -     return get_errno(safe_ioctl(fd, ie->host_cmd, sig));
> > - }
> > -
> > -+static abi_long do_ioctl_SIOCGSTAMP(const IOCTLEntry *ie, uint8_t *buf_temp,
> > -+                                    int fd, int cmd, abi_long arg)
> > -+{
> > -+    struct timeval tv;
> > -+    abi_long ret;
> > -+
> > -+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMP, &tv));
> > -+    if (is_error(ret)) {
> > -+        return ret;
> > -+    }
> > -+
> > -+    if (cmd == (int)TARGET_SIOCGSTAMP_OLD) {
> > -+        if (copy_to_user_timeval(arg, &tv)) {
> > -+            return -TARGET_EFAULT;
> > -+        }
> > -+    } else {
> > -+        if (copy_to_user_timeval64(arg, &tv)) {
> > -+            return -TARGET_EFAULT;
> > -+        }
> > -+    }
> > -+
> > -+    return ret;
> > -+}
> > -+
> > -+static abi_long do_ioctl_SIOCGSTAMPNS(const IOCTLEntry *ie, uint8_t *buf_temp,
> > -+                                      int fd, int cmd, abi_long arg)
> > -+{
> > -+    struct timespec ts;
> > -+    abi_long ret;
> > -+
> > -+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMPNS, &ts));
> > -+    if (is_error(ret)) {
> > -+        return ret;
> > -+    }
> > -+
> > -+    if (cmd == (int)TARGET_SIOCGSTAMPNS_OLD) {
> > -+        if (host_to_target_timespec(arg, &ts)) {
> > -+            return -TARGET_EFAULT;
> > -+        }
> > -+    } else{
> > -+        if (host_to_target_timespec64(arg, &ts)) {
> > -+            return -TARGET_EFAULT;
> > -+        }
> > -+    }
> > -+
> > -+    return ret;
> > -+}
> > -+
> > - #ifdef TIOCGPTPEER
> > - static abi_long do_ioctl_tiocgptpeer(const IOCTLEntry *ie, uint8_t *buf_temp,
> > -                                      int fd, int cmd, abi_long arg)
> > -@@ -6160,32 +6270,6 @@ static inline abi_long target_ftruncate64(void *cpu_env, abi_long arg1,
> > - }
> > - #endif
> > -
> > --static inline abi_long target_to_host_timespec(struct timespec *host_ts,
> > --                                               abi_ulong target_addr)
> > --{
> > --    struct target_timespec *target_ts;
> > --
> > --    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1))
> > --        return -TARGET_EFAULT;
> > --    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
> > --    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> > --    unlock_user_struct(target_ts, target_addr, 0);
> > --    return 0;
> > --}
> > --
> > --static inline abi_long host_to_target_timespec(abi_ulong target_addr,
> > --                                               struct timespec *host_ts)
> > --{
> > --    struct target_timespec *target_ts;
> > --
> > --    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0))
> > --        return -TARGET_EFAULT;
> > --    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
> > --    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
> > --    unlock_user_struct(target_ts, target_addr, 1);
> > --    return 0;
> > --}
> > --
> > - static inline abi_long target_to_host_itimerspec(struct itimerspec *host_itspec,
> > -                                                  abi_ulong target_addr)
> > - {
> > -diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> > -index 12c8407144..c918419306 100644
> > ---- a/linux-user/syscall_defs.h
> > -+++ b/linux-user/syscall_defs.h
> > -@@ -208,16 +208,34 @@ struct target_linger {
> > -     abi_int l_linger;       /* How long to linger for       */
> > - };
> > -
> > -+#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
> > -+struct target_timeval {
> > -+    abi_long tv_sec;
> > -+    abi_int tv_usec;
> > -+};
> > -+#define target__kernel_sock_timeval target_timeval
> > -+#else
> > - struct target_timeval {
> > -     abi_long tv_sec;
> > -     abi_long tv_usec;
> > - };
> > -
> > -+struct target__kernel_sock_timeval {
> > -+    abi_llong tv_sec;
> > -+    abi_llong tv_usec;
> > -+};
> > -+#endif
> > -+
> > - struct target_timespec {
> > -     abi_long tv_sec;
> > -     abi_long tv_nsec;
> > - };
> > -
> > -+struct target__kernel_timespec {
> > -+    abi_llong tv_sec;
> > -+    abi_llong tv_nsec;
> > -+};
> > -+
> > - struct target_timezone {
> > -     abi_int tz_minuteswest;
> > -     abi_int tz_dsttime;
> > -@@ -743,8 +761,16 @@ struct target_pollfd {
> > - #define TARGET_SIOCATMARK      0x8905
> > - #define TARGET_SIOCGPGRP       0x8904
> > - #endif
> > --#define TARGET_SIOCGSTAMP      0x8906          /* Get stamp (timeval) */
> > --#define TARGET_SIOCGSTAMPNS    0x8907          /* Get stamp (timespec) */
> > -+#if defined(TARGET_SH4)
> > -+#define TARGET_SIOCGSTAMP_OLD   TARGET_IOR('s', 100, struct target_timeval)
> > -+#define TARGET_SIOCGSTAMPNS_OLD TARGET_IOR('s', 101, struct target_timespec)
> > -+#else
> > -+#define TARGET_SIOCGSTAMP_OLD   0x8906
> > -+#define TARGET_SIOCGSTAMPNS_OLD 0x8907
> > -+#endif
> > -+
> > -+#define TARGET_SIOCGSTAMP_NEW   TARGET_IOR(0x89, 0x06, abi_llong[2])
> > -+#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2])
> > -
> > - /* Networking ioctls */
> > - #define TARGET_SIOCADDRT       0x890B          /* add routing table entry */
> > -diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
> > -index b98a23b0f1..4e36983826 100644
> > ---- a/linux-user/syscall_types.h
> > -+++ b/linux-user/syscall_types.h
> > -@@ -14,12 +14,6 @@ STRUCT(serial_icounter_struct,
> > - STRUCT(sockaddr,
> > -        TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
> > -
> > --STRUCT(timeval,
> > --       MK_ARRAY(TYPE_LONG, 2))
> > --
> > --STRUCT(timespec,
> > --       MK_ARRAY(TYPE_LONG, 2))
> > --
> > - STRUCT(rtentry,
> > -        TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
> > -        TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
> > ---
> > -2.21.0
> > -
> > diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch b/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
> > deleted file mode 100644
> > index c49a5e9a2a..0000000000
> > --- a/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
> > +++ /dev/null
> > @@ -1,35 +0,0 @@
> > -From d52680fc932efb8a2f334cc6993e705ed1e31e99 Mon Sep 17 00:00:00 2001
> > -From: Prasad J Pandit <pjp@fedoraproject.org>
> > -Date: Thu, 25 Apr 2019 12:05:34 +0530
> > -Subject: [PATCH] qxl: check release info object
> > -
> > -When releasing spice resources in release_resource() routine,
> > -if release info object 'ext.info' is null, it leads to null
> > -pointer dereference. Add check to avoid it.
> > -
> > -Reported-by: Bugs SysSec <bugs-syssec@rub.de>
> > -Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
> > -Message-id: 20190425063534.32747-1-ppandit@redhat.com
> > -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> > -
> > -Upstream-Status: Backport
> > -CVE: CVE-2019-12155
> > -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
> > ----
> > - hw/display/qxl.c | 3 +++
> > - 1 file changed, 3 insertions(+)
> > -
> > -diff --git a/hw/display/qxl.c b/hw/display/qxl.c
> > -index c8ce5781e03..632923add23 100644
> > ---- a/hw/display/qxl.c
> > -+++ b/hw/display/qxl.c
> > -@@ -777,6 +777,9 @@ static void interface_release_resource(QXLInstance *sin,
> > -     QXLReleaseRing *ring;
> > -     uint64_t *item, id;
> > -
> > -+    if (!ext.info) {
> > -+        return;
> > -+    }
> > -     if (ext.group_id == MEMSLOT_GROUP_HOST) {
> > -         /* host group -> vga mode update request */
> > -         QXLCommandExt *cmdext = (void *)(intptr_t)(ext.info->id);
> > diff --git a/meta/recipes-devtools/qemu/qemu_4.0.0.bb b/meta/recipes-devtools/qemu/qemu_4.1.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/qemu/qemu_4.0.0.bb
> > rename to meta/recipes-devtools/qemu/qemu_4.1.0.bb
> > --
> > 2.22.0
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

end of thread, other threads:[~2019-08-20 18:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-15 21:31 [PATCH 1/3] qemu: Upgrade to version 4.1 Alistair Francis
2019-08-15 21:31 ` [PATCH 2/3] scripts/runqemu: Add support for the BIOS variable Alistair Francis
2019-08-15 21:31 ` [PATCH 3/3] qemuriscv64: Specify the firmware as a bios instead of kernel Alistair Francis
2019-08-16  6:40   ` Jacob Kroon
2019-08-16 17:06     ` Alistair Francis
2019-08-17 13:57 ` [PATCH 1/3] qemu: Upgrade to version 4.1 Khem Raj
2019-08-20 18:31   ` Alistair Francis

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.