[OE-core] [PATCH 2/3] qemu: upgrade to 2.12.0
Burton, Ross
ross.burton at intel.com
Wed May 9 15:38:04 UTC 2018
This fails if x11 isn't in DISTRO_FEATURES but SDL is enabled as ui/sdl.c
-> ui/x_keymap.h -> Xlib.h. I guess the best solution here would be to
guard sdl in the default PACKAGECONFIG with x11 DISTRO_FEATURE checks, and
explicitly depend on libx11.
As discussed on IRC we should probably also move to libsdl2 as libsdl 1.2
is 'historic' now.
Ross
On 2 May 2018 at 15:37, Martin Jansa <martin.jansa at gmail.com> wrote:
> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
> meta/conf/distro/include/tcmode-default.inc | 2 +-
> ...4-treat-DISAS_UPDATE-as-variant-of-D.patch | 67 -------------------
> ...-connect-socket-to-a-spawned-command.patch | 52 +++++++-------
> .../qemu/qemu/disable-grabs.patch | 43 ++++++------
> meta/recipes-devtools/qemu/qemu/memfd.patch | 57 ----------------
> .../qemu/qemu/qemu-2.5.0-cflags.patch | 15 ++++-
> .../qemu/{qemu_2.11.1.bb => qemu_2.12.0.bb} | 6 +-
> 7 files changed, 65 insertions(+), 177 deletions(-)
> delete mode 100644 meta/recipes-devtools/qemu/
> qemu/0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch
> delete mode 100644 meta/recipes-devtools/qemu/qemu/memfd.patch
> rename meta/recipes-devtools/qemu/{qemu_2.11.1.bb => qemu_2.12.0.bb}
> (87%)
>
> diff --git a/meta/conf/distro/include/tcmode-default.inc
> b/meta/conf/distro/include/tcmode-default.inc
> index 00399ae820..8b5214ed96 100644
> --- a/meta/conf/distro/include/tcmode-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -28,7 +28,7 @@ BINUVERSION ?= "2.30%"
> GDBVERSION ?= "8.0%"
> GLIBCVERSION ?= "2.27%"
> LINUXLIBCVERSION ?= "4.15%"
> -QEMUVERSION ?= "2.11%"
> +QEMUVERSION ?= "2.12%"
>
> PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
> PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
> diff --git a/meta/recipes-devtools/qemu/qemu/0001-arm-translate-a64-
> treat-DISAS_UPDATE-as-variant-of-D.patch b/meta/recipes-devtools/qemu/
> qemu/0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch
> deleted file mode 100644
> index f90cae694c..0000000000
> --- a/meta/recipes-devtools/qemu/qemu/0001-arm-translate-a64-
> treat-DISAS_UPDATE-as-variant-of-D.patch
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -From a75a52d62418dafe462be4fe30485501d1010bb9 Mon Sep 17 00:00:00 2001
> -From: Victor Kamensky <kamensky at cisco.com>
> -Date: Fri, 23 Mar 2018 18:26:45 +0000
> -Subject: [PATCH] arm/translate-a64: treat DISAS_UPDATE as variant of
> - DISAS_EXIT
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -In OE project 4.15 linux kernel boot hang was observed under
> -single cpu aarch64 qemu. Kernel code was in a loop waiting for
> -vtimer arrival, spinning in TC generated blocks, while interrupt
> -was pending unprocessed. This happened because when qemu tried to
> -handle vtimer interrupt target had interrupts disabled, as
> -result flag indicating TCG exit, cpu->icount_decr.u16.high,
> -was cleared but arm_cpu_exec_interrupt function did not call
> -arm_cpu_do_interrupt to process interrupt. Later when target
> -reenabled interrupts, it happened without exit into main loop, so
> -following code that waited for result of interrupt execution
> -run in infinite loop.
> -
> -To solve the problem instructions that operate on CPU sys state
> -(i.e enable/disable interrupt), and marked as DISAS_UPDATE,
> -should be considered as DISAS_EXIT variant, and should be
> -forced to exit back to main loop so qemu will have a chance
> -processing pending CPU state updates, including pending
> -interrupts.
> -
> -This change brings consistency with how DISAS_UPDATE is treated
> -in aarch32 case.
> -
> -CC: Peter Maydell <peter.maydell at linaro.org>
> -CC: Alex Bennée <alex.bennee at linaro.org>
> -CC: qemu-stable at nongnu.org
> -Suggested-by: Peter Maydell <peter.maydell at linaro.org>
> -Signed-off-by: Victor Kamensky <kamensky at cisco.com>
> -Reviewed-by: Richard Henderson <richard.henderson at linaro.org>
> -Message-id: 1521526368-1996-1-git-send-email-kamensky at cisco.com
> -Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
> -Upstream-Status: Backport
> ----
> - target/arm/translate-a64.c | 6 +++---
> - 1 file changed, 3 insertions(+), 3 deletions(-)
> -
> -diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
> -index 31ff047..327513e 100644
> ---- a/target/arm/translate-a64.c
> -+++ b/target/arm/translate-a64.c
> -@@ -13378,12 +13378,12 @@ static void aarch64_tr_tb_stop(DisasContextBase
> *dcbase, CPUState *cpu)
> - case DISAS_UPDATE:
> - gen_a64_set_pc_im(dc->pc);
> - /* fall through */
> -- case DISAS_JUMP:
> -- tcg_gen_lookup_and_goto_ptr();
> -- break;
> - case DISAS_EXIT:
> - tcg_gen_exit_tb(0);
> - break;
> -+ case DISAS_JUMP:
> -+ tcg_gen_lookup_and_goto_ptr();
> -+ break;
> - case DISAS_NORETURN:
> - case DISAS_SWI:
> - break;
> ---
> -2.7.4
> -
> diff --git a/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-to-a-spawned-command.patch
> b/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-
> to-a-spawned-command.patch
> index 6e6bf95c18..f1cf53a8c5 100644
> --- a/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-
> to-a-spawned-command.patch
> +++ b/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-
> to-a-spawned-command.patch
> @@ -1,4 +1,4 @@
> -From 3bb3100c22eb30146a69656480bdffeef8663575 Mon Sep 17 00:00:00 2001
> +From a7690b02df70e0d3957e6eaa1e1cf92595839fbb Mon Sep 17 00:00:00 2001
> From: Alistair Francis <alistair.francis at xilinx.com>
> Date: Thu, 21 Dec 2017 11:35:16 -0800
> Subject: [PATCH] chardev: connect socket to a spawned command
> @@ -45,16 +45,16 @@ Upstream-Status: Inappropriate [embedded specific]
>
> Signed-off-by: Patrick Ohly <patrick.ohly at intel.com>
> ---
> - chardev/char-socket.c | 86 ++++++++++++++++++++++++++++++
> ++++++++++++++++++---
> - chardev/char.c | 3 ++
> - qapi/char.json | 5 +++
> - 3 files changed, 90 insertions(+), 4 deletions(-)
> + chardev/char-socket.c | 102 ++++++++++++++++++++++++++++++++++++++++++
> + chardev/char.c | 3 ++
> + qapi/char.json | 5 +++
> + 3 files changed, 110 insertions(+)
>
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> -index 53eda8ef00..f566107c35 100644
> +index 159e69c3b1..84778cf31a 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> -@@ -852,6 +852,68 @@ static gboolean socket_reconnect_timeout(gpointer
> opaque)
> +@@ -934,6 +934,68 @@ static gboolean socket_reconnect_timeout(gpointer
> opaque)
> return false;
> }
>
> @@ -123,7 +123,7 @@ index 53eda8ef00..f566107c35 100644
> static void qmp_chardev_open_socket(Chardev *chr,
> ChardevBackend *backend,
> bool *be_opened,
> -@@ -859,6 +921,9 @@
> +@@ -941,6 +1003,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
> {
> SocketChardev *s = SOCKET_CHARDEV(chr);
> ChardevSocket *sock = backend->u.socket.data;
> @@ -133,11 +133,10 @@ index 53eda8ef00..f566107c35 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;
> -@@ -925,7 +990,14 @@
> - } else if (reconnect > 0) {
> +@@ -1008,6 +1073,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
> s->reconnect_time = reconnect;
> }
> --
> +
> +#ifndef _WIN32
> + if (cmd) {
> + chardev_open_socket_cmd(chr, cmd, errp);
> @@ -146,12 +145,12 @@ index 53eda8ef00..f566107c35 100644
> + *be_opened = true;
> + } else
> +#endif
> - if (s->reconnect_time) {
> - sioc = qio_channel_socket_new();
> - tcp_chr_set_client_ioc_name(chr, sioc);
> -@@ -985,10 +1057,26 @@
> - const char *host = qemu_opt_get(opts, "host");
> + /* If reconnect_time is set, will do that in chr_machine_done. */
> + if (!s->reconnect_time) {
> + if (s->is_listen) {
> +@@ -1065,9 +1138,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts,
> ChardevBackend *backend,
> const char *port = qemu_opt_get(opts, "port");
> + const char *fd = qemu_opt_get(opts, "fd");
> const char *tls_creds = qemu_opt_get(opts, "tls-creds");
> +#ifndef _WIN32
> + const char *cmd = qemu_opt_get(opts, "cmd");
> @@ -159,7 +158,6 @@ index 53eda8ef00..f566107c35 100644
> SocketAddressLegacy *addr;
> ChardevSocket *sock;
>
> - backend->type = CHARDEV_BACKEND_KIND_SOCKET;
> +#ifndef _WIN32
> + if (cmd) {
> + /*
> @@ -173,17 +171,18 @@ index 53eda8ef00..f566107c35 100644
> + }
> + } else
> +#endif
> - if (!path) {
> - if (!host) {
> - error_setg(errp, "chardev: socket: no host given");
> -@@ -1021,13 +1109,24 @@
> - sock->has_reconnect = true;
> ++
> + if ((!!path + !!fd + !!host) != 1) {
> + error_setg(errp,
> + "Exactly one of 'path', 'fd' or 'host' required");
> +@@ -1112,12 +1202,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts,
> ChardevBackend *backend,
> sock->reconnect = reconnect;
> sock->tls_creds = g_strdup(tls_creds);
> +
> +#ifndef _WIN32
> + sock->cmd = g_strdup(cmd);
> +#endif
> -
> ++
> addr = g_new0(SocketAddressLegacy, 1);
> +#ifndef _WIN32
> + if (path || cmd) {
> @@ -198,11 +197,11 @@ index 53eda8ef00..f566107c35 100644
> +#else
> q_unix->path = g_strdup(path);
> +#endif
> - } else {
> + } else if (host) {
> 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 2ae4f465ec..5d52cd5de5 100644
> +index 76d866e6fe..9747d51d7c 100644
> --- a/chardev/char.c
> +++ b/chardev/char.c
> @@ -792,6 +792,9 @@ QemuOptsList qemu_chardev_opts = {
> @@ -239,4 +238,5 @@ index ae19dcd1ed..6de0f29bcd 100644
> '*server' : 'bool',
> '*wait' : 'bool',
> --
> -2.14.1
> +2.17.0
> +
> diff --git a/meta/recipes-devtools/qemu/qemu/disable-grabs.patch
> b/meta/recipes-devtools/qemu/qemu/disable-grabs.patch
> index 77117890f4..e29c011a6f 100644
> --- a/meta/recipes-devtools/qemu/qemu/disable-grabs.patch
> +++ b/meta/recipes-devtools/qemu/qemu/disable-grabs.patch
> @@ -1,3 +1,11 @@
> +From a31c5c695cb716310257f1fc60a06b821e74fe7f Mon Sep 17 00:00:00 2001
> +From: Ross Burton <ross.burton at intel.com>
> +Date: Wed, 18 Sep 2013 14:04:54 +0100
> +Subject: [PATCH] sdl.c: allow user to disable pointer grabs
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> When the pointer enters the Qemu window it calls SDL_WM_GrabInput, which
> calls
> XGrabPointer in a busyloop until it returns GrabSuccess. However if
> there's already
> a pointer grab (screen is locked, a menu is open) then qemu will hang
> until the
> @@ -11,35 +19,30 @@ them in a conditional that can be set by the
> autobuilder environment, preserving
> the current grabbing behaviour for everyone else.
>
> Upstream-Status: Pending
> -Signed-off-by: Ross Burton <ross.burton at intel.com>
> -
> -From 4b1988ecb01a178269ec0513a75f2ec620c7ef6a Mon Sep 17 00:00:00 2001
> -From: Ross Burton <ross.burton at intel.com>
> -Date: Wed, 18 Sep 2013 14:04:54 +0100
> -Subject: [PATCH] sdl.c: allow user to disable pointer grabs
> -
> Signed-off-by: Ross Burton <ross.burton at intel.com>
> Signed-off-by: Eric Bénard <eric at eukrea.com>
> +
> ---
> - ui/sdl.c | 12 ++++++++++--
> - 1 file changed, 10 insertions(+), 2 deletions(-)
> + ui/sdl.c | 13 +++++++++++--
> + 1 file changed, 11 insertions(+), 2 deletions(-)
>
> -Index: qemu-2.11.1/ui/sdl.c
> -===================================================================
> ---- qemu-2.11.1.orig/ui/sdl.c
> -+++ qemu-2.11.1/ui/sdl.c
> -@@ -63,6 +63,10 @@ static SDL_PixelFormat host_format;
> - static int scaling_active = 0;
> - static Notifier mouse_mode_notifier;
> - static int idle_counter;
> +diff --git a/ui/sdl.c b/ui/sdl.c
> +index a5fd503..ab8d1b1 100644
> +--- a/ui/sdl.c
> ++++ b/ui/sdl.c
> +@@ -68,6 +68,11 @@ static int idle_counter;
> + static const guint16 *keycode_map;
> + static size_t keycode_maplen;
> +
> +#ifndef True
> +#define True 1
> +#endif
> +static doing_grabs = True;
> -
> ++
> #define SDL_REFRESH_INTERVAL_BUSY 10
> #define SDL_MAX_IDLE_COUNT (2 * GUI_REFRESH_INTERVAL_DEFAULT \
> -@@ -431,14 +435,16 @@ static void sdl_grab_start(void)
> + / SDL_REFRESH_INTERVAL_BUSY + 1)
> +@@ -398,14 +403,16 @@ static void sdl_grab_start(void)
> }
> } else
> sdl_hide_cursor();
> @@ -58,7 +61,7 @@ Index: qemu-2.11.1/ui/sdl.c
> gui_grab = 0;
> sdl_show_cursor();
> sdl_update_caption();
> -@@ -986,6 +992,8 @@ void sdl_display_init(DisplayState *ds,
> +@@ -945,6 +952,8 @@ static void sdl1_display_init(DisplayState *ds,
> DisplayOptions *o)
> * This requires SDL >= 1.2.14. */
> setenv("SDL_DISABLE_LOCK_KEYS", "1", 1);
>
> diff --git a/meta/recipes-devtools/qemu/qemu/memfd.patch
> b/meta/recipes-devtools/qemu/qemu/memfd.patch
> deleted file mode 100644
> index 62e8d3800b..0000000000
> --- a/meta/recipes-devtools/qemu/qemu/memfd.patch
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -Upstream-Status: Backport
> -Signed-off-by: Ross Burton <ross.burton at intel.com>
> -
> -From 75e5b70e6b5dcc4f2219992d7cffa462aa406af0 Mon Sep 17 00:00:00 2001
> -From: Paolo Bonzini <pbonzini at redhat.com>
> -Date: Tue, 28 Nov 2017 11:51:27 +0100
> -Subject: [PATCH] memfd: fix configure test
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Recent glibc added memfd_create in sys/mman.h. This conflicts with
> -the definition in util/memfd.c:
> -
> - /builddir/build/BUILD/qemu-2.11.0-rc1/util/memfd.c:40:12: error:
> static declaration of memfd_create follows non-static declaration
> -
> -Fix the configure test, and remove the sys/memfd.h inclusion since the
> -file actually does not exist---it is a typo in the memfd_create(2) man
> -page.
> -
> -Cc: Marc-André Lureau <marcandre.lureau at redhat.com>
> -Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
> ----
> - configure | 2 +-
> - util/memfd.c | 4 +---
> - 2 files changed, 2 insertions(+), 4 deletions(-)
> -
> -diff --git a/configure b/configure
> -index 9c8aa5a98b..99ccc1725a 100755
> ---- a/configure
> -+++ b/configure
> -@@ -3923,7 +3923,7 @@ fi
> - # check if memfd is supported
> - memfd=no
> - cat > $TMPC << EOF
> --#include <sys/memfd.h>
> -+#include <sys/mman.h>
> -
> - int main(void)
> - {
> -diff --git a/util/memfd.c b/util/memfd.c
> -index 4571d1aba8..412e94a405 100644
> ---- a/util/memfd.c
> -+++ b/util/memfd.c
> -@@ -31,9 +31,7 @@
> -
> - #include "qemu/memfd.h"
> -
> --#ifdef CONFIG_MEMFD
> --#include <sys/memfd.h>
> --#elif defined CONFIG_LINUX
> -+#if defined CONFIG_LINUX && !defined CONFIG_MEMFD
> - #include <sys/syscall.h>
> - #include <asm/unistd.h>
> -
> ---
> -2.11.0
> diff --git a/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch
> b/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch
> index eb99d14639..360519f1a1 100644
> --- a/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch
> +++ b/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch
> @@ -1,8 +1,19 @@
> +From 6702ec74a7ba90b99efedde260c9f08b75d5516d Mon Sep 17 00:00:00 2001
> +From: Stephen Arnold <sarnold at vctlabs.com>
> +Date: Sun, 12 Jun 2016 18:09:56 -0700
> +Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some
> environment
> +
> Upstream-Status: Pending
>
> +---
> + configure | 4 ----
> + 1 file changed, 4 deletions(-)
> +
> +diff --git a/configure b/configure
> +index 69e05fb..12fc3d8 100755
> --- a/configure
> +++ b/configure
> -@@ -4468,10 +4468,6 @@ fi
> +@@ -5413,10 +5413,6 @@ write_c_skeleton
> if test "$gcov" = "yes" ; then
> CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
> LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
> @@ -12,4 +23,4 @@ Upstream-Status: Pending
> - CFLAGS="-O2 $CFLAGS"
> fi
>
> - ##########################################
> + if test "$have_asan" = "yes"; then
> diff --git a/meta/recipes-devtools/qemu/qemu_2.11.1.bb
> b/meta/recipes-devtools/qemu/qemu_2.12.0.bb
> similarity index 87%
> rename from meta/recipes-devtools/qemu/qemu_2.11.1.bb
> rename to meta/recipes-devtools/qemu/qemu_2.12.0.bb
> index f4b7d69fca..63590fc9eb 100644
> --- a/meta/recipes-devtools/qemu/qemu_2.11.1.bb
> +++ b/meta/recipes-devtools/qemu/qemu_2.12.0.bb
> @@ -20,8 +20,6 @@ SRC_URI = "http://wiki.qemu-project.org/
> download/${BP}.tar.bz2 \
> file://chardev-connect-socket-to-a-spawned-command.patch \
> file://apic-fixup-fallthrough-to-PIC.patch \
> file://linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
> \
> - file://memfd.patch \
> - file://0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch
> \
> "
> UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+\..*)\.tar"
>
> @@ -31,8 +29,8 @@ SRC_URI_append_class-native = " \
> file://cpus.c-qemu_cpu_kick_thread_debugging.patch \
> "
>
> -SRC_URI[md5sum] = "61cf862b6007eba4ac98247776af2e27"
> -SRC_URI[sha256sum] = "d9df2213ceed32e91dab7bc9dd19c1
> af83f91ba72c7aeef7605dfaaf81732ccb"
> +SRC_URI[md5sum] = "122fd7cdf241ff7eb1e42c0b503b5d1b"
> +SRC_URI[sha256sum] = "c9f4a147bc915d24df9784affc611a
> 115f42d24720a89210b479f1ba7a3f679c"
>
> COMPATIBLE_HOST_mipsarchn32 = "null"
> COMPATIBLE_HOST_mipsarchn64 = "null"
> --
> 2.17.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180509/10915b61/attachment-0002.html>
More information about the Openembedded-core
mailing list