<div dir="ltr">Yesterday I&#39;ve tried to replay the end of the bisect and surprisingly I wasn&#39;t seeing the hang with d4247ec2d79ef2477cb886fa688706b068119736.<div><br></div><div>With 2nd bad d4090306c8079ca3df426f82c493314c3537064e it hangs again.</div><div><br></div><div>So either I didn&#39;t wait long enough for qemu-i386 to finish (I mark it as bad after it spends &gt; 10mins inside qemu-i386 or the hang doesn&#39;t happen reliably even with &quot;bad&quot; revision of qemu.</div><div><br></div><div>The revisions I&#39;m trying are here:</div><div><a href="http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/qemu-hang">http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/qemu-hang</a><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jun 1, 2018 at 2:01 AM Alistair Francis &lt;<a href="mailto:alistair23@gmail.com">alistair23@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, May 31, 2018 at 8:41 AM, Martin Jansa &lt;<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>&gt; wrote:<br>
&gt; I&#39;ve finished the bisect today:<br>
&gt;<br>
&gt; qemu$ git bisect log<br>
&gt; git bisect start<br>
&gt; # good: [9f750794985d7386f088da941c76b73880b2b6c4] sev/i386: add<br>
&gt; sev_get_capabilities()<br>
&gt; git bisect good 9f750794985d7386f088da941c76b73880b2b6c4<br>
&gt; # bad: [91c60f124e682a78c9a2ef951e8e58ebab6441d0] target/ppc: fix tlbsync to<br>
&gt; check privilege level depending on GTSE<br>
&gt; git bisect bad 91c60f124e682a78c9a2ef951e8e58ebab6441d0<br>
&gt; # bad: [a57946ff2acb9c0d95c9f127914540586b0b8c21] Merge remote-tracking<br>
&gt; branch &#39;remotes/awilliam/tags/vfio-update-20180313.0&#39; into staging<br>
&gt; git bisect bad a57946ff2acb9c0d95c9f127914540586b0b8c21<br>
&gt; # good: [5bdd374347b873ab59b356a284494a8bc1664008] Merge remote-tracking<br>
&gt; branch &#39;remotes/bonzini/tags/for-upstream-sev&#39; into staging<br>
&gt; git bisect good 5bdd374347b873ab59b356a284494a8bc1664008<br>
&gt; # bad: [55901900ec69d6fd6f332003d8ab81b2f8a38529] Merge remote-tracking<br>
&gt; branch &#39;remotes/vivier2/tags/linux-user-for-2.12-pull-request&#39; into staging<br>
&gt; git bisect bad 55901900ec69d6fd6f332003d8ab81b2f8a38529<br>
&gt; # bad: [d4090306c8079ca3df426f82c493314c3537064e] qemu-binfmt-conf.sh: add<br>
&gt; qemu-xtensa<br>
&gt; git bisect bad d4090306c8079ca3df426f82c493314c3537064e<br>
&gt; # bad: [d4247ec2d79ef2477cb886fa688706b068119736] linux-user: Support<br>
&gt; f_flags in statfs when available.<br>
&gt; git bisect bad d4247ec2d79ef2477cb886fa688706b068119736<br>
&gt; # good: [f8b985d65cf67004483816d5afcb7bf686e11702] linux-user: Remove the<br>
&gt; unused &quot;not implemented&quot; signal handling stubs<br>
&gt; git bisect good f8b985d65cf67004483816d5afcb7bf686e11702<br>
&gt; # good: [3ff48453e894990ea6495574037e70ed9b91947e] linux-user: allows to use<br>
&gt; &quot;--systemd ALL&quot; with qemu-binfmt-conf.sh<br>
&gt; git bisect good 3ff48453e894990ea6495574037e70ed9b91947e<br>
&gt; # first bad commit: [d4247ec2d79ef2477cb886fa688706b068119736] linux-user:<br>
&gt; Support f_flags in statfs when available.<br>
<br>
Awesome! Thanks for this.<br>
<br>
&gt;<br>
&gt;<br>
&gt; Unfortunately just revering &quot;[d4247ec2d79ef2477cb886fa688706b068119736]<br>
&gt; linux-user: Support f_flags in statfs when available&quot; at the top of v2.12.0<br>
&gt; still hangs.<br>
&gt;<br>
&gt; I will try to dig a bit more, but any advice would be appreciated.<br>
<br>
I managed to reproduce the hang today, so I&#39;ll investigate tomorrow.<br>
I&#39;m surprised reverting the commit doesn&#39;t work.<br>
<br>
Alistair<br>
<br>
&gt;<br>
&gt; On Tue, May 29, 2018 at 10:40 PM Martin Jansa &lt;<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; After removing ld-is-gold I was able to reproduce the issue.<br>
&gt;&gt;<br>
&gt;&gt; Unfortunately removing the<br>
&gt;&gt; meta/recipes-devtools/qemu/qemu/linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch<br>
&gt;&gt; doesn&#39;t help with the hang, then I&#39;ve tried to upgrade to latest SRCREV in<br>
&gt;&gt; qemu master (currently 5a5c383b1373aeb6c87a0d6060f6c3dc7c53082b)<br>
&gt;&gt;<br>
&gt;&gt; Will try to bisect where it started to hang between 2.11.0 and 2.12.0, but<br>
&gt;&gt; it might be faster if Alistair Francis can chime in as the author of this<br>
&gt;&gt; patch, he might have better idea why it stopped working.<br>
&gt;&gt;<br>
&gt;&gt; Cheers,<br>
&gt;&gt;<br>
&gt;&gt; On Tue, May 29, 2018 at 2:56 PM Martin Jansa &lt;<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;ve tried to reproduce it locally, but g-ir-scanner-qemuwrapper is<br>
&gt;&gt;&gt; failing for me in various recipes and I never got as far as webkitgtk<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; pango:<br>
&gt;&gt;&gt; Error relocating<br>
&gt;&gt;&gt; TOPDIR/tmp-musl/work/i586-oe-linux-musl/pango/1.40.14-r0/recipe-sysroot//usr/lib/libGL.so.1:<br>
&gt;&gt;&gt; __glX_tls_Context: symbol not found<br>
&gt;&gt;&gt; <a href="http://errors.yoctoproject.org/Errors/Details/178988/" rel="noreferrer" target="_blank">http://errors.yoctoproject.org/Errors/Details/178988/</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; after disabling GI for pango (GI_DATA_ENABLED_pn-pango = &quot;False&quot;) it<br>
&gt;&gt;&gt; failed in<br>
&gt;&gt;&gt; librsvg:<br>
&gt;&gt;&gt; Error relocating<br>
&gt;&gt;&gt; TOPDIR/tmp-musl/work/i586-oe-linux-musl/librsvg/2.40.20-r0/recipe-sysroot//usr/lib/libGL.so.1:<br>
&gt;&gt;&gt; __glX_tls_Context: symbol not found<br>
&gt;&gt;&gt; <a href="http://errors.yoctoproject.org/Errors/Details/178991/" rel="noreferrer" target="_blank">http://errors.yoctoproject.org/Errors/Details/178991/</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; gstreamer1.0-plugins-base:<br>
&gt;&gt;&gt; Error relocating<br>
&gt;&gt;&gt; TOPDIR/tmp-musl/work/i586-oe-linux-musl/gstreamer1.0-plugins-base/1.14.0-r0/recipe-sysroot//usr/lib/libEGL.so.1:<br>
&gt;&gt;&gt; _egl_TLS: symbol not found<br>
&gt;&gt;&gt; <a href="http://errors.yoctoproject.org/Errors/Details/178993/" rel="noreferrer" target="_blank">http://errors.yoctoproject.org/Errors/Details/178993/</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; and gtk+3 as well, because of disabled GI for pango:<br>
&gt;&gt;&gt; Couldn&#39;t find include &#39;Pango-1.0.gir&#39; (search path:<br>
&gt;&gt;&gt; &#39;[&#39;TOPDIR/tmp-musl/work/i586-oe-linux-musl/gtk+3/3.22.29-r0/recipe-sysroot/usr/share/gir-1.0&#39;,<br>
&gt;&gt;&gt; &#39;../gdk&#39;,<br>
&gt;&gt;&gt; &#39;TOPDIR/tmp-musl/work/i586-oe-linux-musl/gtk+3/3.22.29-r0/recipe-sysroot/usr/share/gir-1.0&#39;,<br>
&gt;&gt;&gt; &#39;TOPDIR/tmp-musl/work/i586-oe-linux-musl/gtk+3/3.22.29-r0/recipe-sysroot-native/usr/share/gir-1.0&#39;,<br>
&gt;&gt;&gt; &#39;/usr/share/gir-1.0&#39;,<br>
&gt;&gt;&gt; &#39;TOPDIR/tmp-musl/work/i586-oe-linux-musl/gtk+3/3.22.29-r0/recipe-sysroot-native/usr/share/gir-1.0&#39;]&#39;)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; TOPDIR/tmp-musl/work/i586-oe-linux-musl/gtk+3/3.22.29-r0/recipe-sysroot/usr/share/gobject-introspection-1.0/Makefile.introspection:159:<br>
&gt;&gt;&gt; recipe for target &#39;Gdk-3.0.gir&#39; failed<br>
&gt;&gt;&gt; <a href="http://errors.yoctoproject.org/Errors/Details/178992/" rel="noreferrer" target="_blank">http://errors.yoctoproject.org/Errors/Details/178992/</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m not sure how exactly AB is doing this qemux86 musl build, it might be<br>
&gt;&gt;&gt; some more changes I have locally or missing/superfluous something in my<br>
&gt;&gt;&gt; config.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, May 29, 2018 at 11:10 AM Martin Jansa &lt;<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; This hang should have been fixed by:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; meta/recipes-devtools/qemu/qemu/linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; which was added with previous upgrade to 2.11.0:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; commit d6d0d99569e0d8b62a61e27d389e7939af45bab9<br>
&gt;&gt;&gt;&gt; Author: Alistair Francis &lt;<a href="mailto:alistair.francis@xilinx.com" target="_blank">alistair.francis@xilinx.com</a>&gt;<br>
&gt;&gt;&gt;&gt; Date:   Wed Jan 17 13:39:06 2018 -0800<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     qemu: Bump to version 2.11.0<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; and my update only shifted the chunk by 2 lines in:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; commit a742584f253e25b97729abe19ca9e4fa2809ea2e<br>
&gt;&gt;&gt;&gt; Author: Martin Jansa &lt;<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; Date:   Wed May 2 14:37:33 2018 +0000<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     qemu: refresh patches with devtool<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; and the patch is still being applied. I was waiting for<br>
&gt;&gt;&gt;&gt; <a href="http://jenkins.nas-admin.org/view/OE/job/oe_world_qemux86/" rel="noreferrer" target="_blank">http://jenkins.nas-admin.org/view/OE/job/oe_world_qemux86/</a> to reproduce it,<br>
&gt;&gt;&gt;&gt; but it seems that Khem is working on some bigger overhaul of the jobs and<br>
&gt;&gt;&gt;&gt; it&#39;s not ready yet, I&#39;ll try to reproduce it locally now and if I can<br>
&gt;&gt;&gt;&gt; reproduce it, then I&#39;ll try to just remove this patch, because the upstream<br>
&gt;&gt;&gt;&gt; didn&#39;t accept it very well in:<br>
&gt;&gt;&gt;&gt; <a href="http://lists.gnu.org/archive/html/qemu-devel/2018-01/msg04185.html" rel="noreferrer" target="_blank">http://lists.gnu.org/archive/html/qemu-devel/2018-01/msg04185.html</a><br>
&gt;&gt;&gt;&gt; and the discussion there died few months ago.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Fri, May 18, 2018 at 11:59 PM Burton, Ross &lt;<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; This is causing the AB to hang when built for qemux86 with musl whilst<br>
&gt;&gt;&gt;&gt;&gt; building webkitgtk during the gobject-introspection qemu-i386 calls,<br>
&gt;&gt;&gt;&gt;&gt; qemu enters an infinite loop.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; I&#39;ve not yet reproduced locally to try and get a log out of qemu, but<br>
&gt;&gt;&gt;&gt;&gt; it has happened on the autobuilder repeatedly.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Ross<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On 2 May 2018 at 15:37, Martin Jansa &lt;<a href="mailto:martin.jansa@gmail.com" target="_blank">martin.jansa@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt; &gt; Signed-off-by: Martin Jansa &lt;<a href="mailto:Martin.Jansa@gmail.com" target="_blank">Martin.Jansa@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---<br>
&gt;&gt;&gt;&gt;&gt; &gt;  meta/conf/distro/include/tcmode-default.inc   |  2 +-<br>
&gt;&gt;&gt;&gt;&gt; &gt;  ...4-treat-DISAS_UPDATE-as-variant-of-D.patch | 67<br>
&gt;&gt;&gt;&gt;&gt; &gt; -------------------<br>
&gt;&gt;&gt;&gt;&gt; &gt;  ...-connect-socket-to-a-spawned-command.patch | 52 +++++++-------<br>
&gt;&gt;&gt;&gt;&gt; &gt;  .../qemu/qemu/disable-grabs.patch             | 43 ++++++------<br>
&gt;&gt;&gt;&gt;&gt; &gt;  meta/recipes-devtools/qemu/qemu/memfd.patch   | 57 ----------------<br>
&gt;&gt;&gt;&gt;&gt; &gt;  .../qemu/qemu/qemu-2.5.0-cflags.patch         | 15 ++++-<br>
&gt;&gt;&gt;&gt;&gt; &gt;  .../qemu/{<a href="http://qemu_2.11.1.bb" rel="noreferrer" target="_blank">qemu_2.11.1.bb</a> =&gt; <a href="http://qemu_2.12.0.bb" rel="noreferrer" target="_blank">qemu_2.12.0.bb</a>}   |  6 +-<br>
&gt;&gt;&gt;&gt;&gt; &gt;  7 files changed, 65 insertions(+), 177 deletions(-)<br>
&gt;&gt;&gt;&gt;&gt; &gt;  delete mode 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; meta/recipes-devtools/qemu/qemu/0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt;  delete mode 100644 meta/recipes-devtools/qemu/qemu/memfd.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt;  rename meta/recipes-devtools/qemu/{<a href="http://qemu_2.11.1.bb" rel="noreferrer" target="_blank">qemu_2.11.1.bb</a> =&gt; <a href="http://qemu_2.12.0.bb" rel="noreferrer" target="_blank">qemu_2.12.0.bb</a>}<br>
&gt;&gt;&gt;&gt;&gt; &gt; (87%)<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; diff --git a/meta/conf/distro/include/tcmode-default.inc<br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/conf/distro/include/tcmode-default.inc<br>
&gt;&gt;&gt;&gt;&gt; &gt; index 00399ae820..8b5214ed96 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; --- a/meta/conf/distro/include/tcmode-default.inc<br>
&gt;&gt;&gt;&gt;&gt; &gt; +++ b/meta/conf/distro/include/tcmode-default.inc<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -28,7 +28,7 @@ BINUVERSION ?= &quot;2.30%&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  GDBVERSION ?= &quot;8.0%&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  GLIBCVERSION ?= &quot;2.27%&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  LINUXLIBCVERSION ?= &quot;4.15%&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -QEMUVERSION ?= &quot;2.11%&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +QEMUVERSION ?= &quot;2.12%&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  PREFERRED_VERSION_gcc ?= &quot;${GCCVERSION}&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= &quot;${GCCVERSION}&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; diff --git<br>
&gt;&gt;&gt;&gt;&gt; &gt; a/meta/recipes-devtools/qemu/qemu/0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/recipes-devtools/qemu/qemu/0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; deleted file mode 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; index f90cae694c..0000000000<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---<br>
&gt;&gt;&gt;&gt;&gt; &gt; a/meta/recipes-devtools/qemu/qemu/0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; +++ /dev/null<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -1,67 +0,0 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; -From a75a52d62418dafe462be4fe30485501d1010bb9 Mon Sep 17 00:00:00<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2001<br>
&gt;&gt;&gt;&gt;&gt; &gt; -From: Victor Kamensky &lt;<a href="mailto:kamensky@cisco.com" target="_blank">kamensky@cisco.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Date: Fri, 23 Mar 2018 18:26:45 +0000<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Subject: [PATCH] arm/translate-a64: treat DISAS_UPDATE as variant of<br>
&gt;&gt;&gt;&gt;&gt; &gt; - DISAS_EXIT<br>
&gt;&gt;&gt;&gt;&gt; &gt; -MIME-Version: 1.0<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Content-Type: text/plain; charset=UTF-8<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Content-Transfer-Encoding: 8bit<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -In OE project 4.15 linux kernel boot hang was observed under<br>
&gt;&gt;&gt;&gt;&gt; &gt; -single cpu aarch64 qemu. Kernel code was in a loop waiting for<br>
&gt;&gt;&gt;&gt;&gt; &gt; -vtimer arrival, spinning in TC generated blocks, while interrupt<br>
&gt;&gt;&gt;&gt;&gt; &gt; -was pending unprocessed. This happened because when qemu tried to<br>
&gt;&gt;&gt;&gt;&gt; &gt; -handle vtimer interrupt target had interrupts disabled, as<br>
&gt;&gt;&gt;&gt;&gt; &gt; -result flag indicating TCG exit, cpu-&gt;icount_decr.u16.high,<br>
&gt;&gt;&gt;&gt;&gt; &gt; -was cleared but arm_cpu_exec_interrupt function did not call<br>
&gt;&gt;&gt;&gt;&gt; &gt; -arm_cpu_do_interrupt to process interrupt. Later when target<br>
&gt;&gt;&gt;&gt;&gt; &gt; -reenabled interrupts, it happened without exit into main loop, so<br>
&gt;&gt;&gt;&gt;&gt; &gt; -following code that waited for result of interrupt execution<br>
&gt;&gt;&gt;&gt;&gt; &gt; -run in infinite loop.<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -To solve the problem instructions that operate on CPU sys state<br>
&gt;&gt;&gt;&gt;&gt; &gt; -(i.e enable/disable interrupt), and marked as DISAS_UPDATE,<br>
&gt;&gt;&gt;&gt;&gt; &gt; -should be considered as DISAS_EXIT variant, and should be<br>
&gt;&gt;&gt;&gt;&gt; &gt; -forced to exit back to main loop so qemu will have a chance<br>
&gt;&gt;&gt;&gt;&gt; &gt; -processing pending CPU state updates, including pending<br>
&gt;&gt;&gt;&gt;&gt; &gt; -interrupts.<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -This change brings consistency with how DISAS_UPDATE is treated<br>
&gt;&gt;&gt;&gt;&gt; &gt; -in aarch32 case.<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -CC: Peter Maydell &lt;<a href="mailto:peter.maydell@linaro.org" target="_blank">peter.maydell@linaro.org</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -CC: Alex Bennée &lt;<a href="mailto:alex.bennee@linaro.org" target="_blank">alex.bennee@linaro.org</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -CC: <a href="mailto:qemu-stable@nongnu.org" target="_blank">qemu-stable@nongnu.org</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; -Suggested-by: Peter Maydell &lt;<a href="mailto:peter.maydell@linaro.org" target="_blank">peter.maydell@linaro.org</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Signed-off-by: Victor Kamensky &lt;<a href="mailto:kamensky@cisco.com" target="_blank">kamensky@cisco.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Reviewed-by: Richard Henderson &lt;<a href="mailto:richard.henderson@linaro.org" target="_blank">richard.henderson@linaro.org</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Message-id: <a href="mailto:1521526368-1996-1-git-send-email-kamensky@cisco.com" target="_blank">1521526368-1996-1-git-send-email-kamensky@cisco.com</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; -Signed-off-by: Peter Maydell &lt;<a href="mailto:peter.maydell@linaro.org" target="_blank">peter.maydell@linaro.org</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Upstream-Status: Backport<br>
&gt;&gt;&gt;&gt;&gt; &gt; ----<br>
&gt;&gt;&gt;&gt;&gt; &gt; - target/arm/translate-a64.c | 6 +++---<br>
&gt;&gt;&gt;&gt;&gt; &gt; - 1 file changed, 3 insertions(+), 3 deletions(-)<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -index 31ff047..327513e 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---- a/target/arm/translate-a64.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+++ b/target/arm/translate-a64.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -13378,12 +13378,12 @@ static void<br>
&gt;&gt;&gt;&gt;&gt; &gt; aarch64_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)<br>
&gt;&gt;&gt;&gt;&gt; &gt; -         case DISAS_UPDATE:<br>
&gt;&gt;&gt;&gt;&gt; &gt; -             gen_a64_set_pc_im(dc-&gt;pc);<br>
&gt;&gt;&gt;&gt;&gt; &gt; -             /* fall through */<br>
&gt;&gt;&gt;&gt;&gt; &gt; --        case DISAS_JUMP:<br>
&gt;&gt;&gt;&gt;&gt; &gt; --            tcg_gen_lookup_and_goto_ptr();<br>
&gt;&gt;&gt;&gt;&gt; &gt; --            break;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -         case DISAS_EXIT:<br>
&gt;&gt;&gt;&gt;&gt; &gt; -             tcg_gen_exit_tb(0);<br>
&gt;&gt;&gt;&gt;&gt; &gt; -             break;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+        case DISAS_JUMP:<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+            tcg_gen_lookup_and_goto_ptr();<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+            break;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -         case DISAS_NORETURN:<br>
&gt;&gt;&gt;&gt;&gt; &gt; -         case DISAS_SWI:<br>
&gt;&gt;&gt;&gt;&gt; &gt; -             break;<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---<br>
&gt;&gt;&gt;&gt;&gt; &gt; -2.7.4<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; diff --git<br>
&gt;&gt;&gt;&gt;&gt; &gt; a/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-to-a-spawned-command.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-to-a-spawned-command.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; index 6e6bf95c18..f1cf53a8c5 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---<br>
&gt;&gt;&gt;&gt;&gt; &gt; a/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-to-a-spawned-command.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; +++<br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/recipes-devtools/qemu/qemu/chardev-connect-socket-to-a-spawned-command.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -1,4 +1,4 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; -From 3bb3100c22eb30146a69656480bdffeef8663575 Mon Sep 17 00:00:00<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2001<br>
&gt;&gt;&gt;&gt;&gt; &gt; +From a7690b02df70e0d3957e6eaa1e1cf92595839fbb Mon Sep 17 00:00:00<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2001<br>
&gt;&gt;&gt;&gt;&gt; &gt;  From: Alistair Francis &lt;<a href="mailto:alistair.francis@xilinx.com" target="_blank">alistair.francis@xilinx.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  Date: Thu, 21 Dec 2017 11:35:16 -0800<br>
&gt;&gt;&gt;&gt;&gt; &gt;  Subject: [PATCH] chardev: connect socket to a spawned command<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -45,16 +45,16 @@ Upstream-Status: Inappropriate [embedded<br>
&gt;&gt;&gt;&gt;&gt; &gt; specific]<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  Signed-off-by: Patrick Ohly &lt;<a href="mailto:patrick.ohly@intel.com" target="_blank">patrick.ohly@intel.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  ---<br>
&gt;&gt;&gt;&gt;&gt; &gt; - chardev/char-socket.c | 86<br>
&gt;&gt;&gt;&gt;&gt; &gt; ++++++++++++++++++++++++++++++++++++++++++++++++---<br>
&gt;&gt;&gt;&gt;&gt; &gt; - chardev/char.c        |  3 ++<br>
&gt;&gt;&gt;&gt;&gt; &gt; - qapi/char.json        |  5 +++<br>
&gt;&gt;&gt;&gt;&gt; &gt; - 3 files changed, 90 insertions(+), 4 deletions(-)<br>
&gt;&gt;&gt;&gt;&gt; &gt; + chardev/char-socket.c | 102<br>
&gt;&gt;&gt;&gt;&gt; &gt; ++++++++++++++++++++++++++++++++++++++++++<br>
&gt;&gt;&gt;&gt;&gt; &gt; + chardev/char.c        |   3 ++<br>
&gt;&gt;&gt;&gt;&gt; &gt; + qapi/char.json        |   5 +++<br>
&gt;&gt;&gt;&gt;&gt; &gt; + 3 files changed, 110 insertions(+)<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  diff --git a/chardev/char-socket.c b/chardev/char-socket.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -index 53eda8ef00..f566107c35 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; +index 159e69c3b1..84778cf31a 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;  --- a/chardev/char-socket.c<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +++ b/chardev/char-socket.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -852,6 +852,68 @@ static gboolean<br>
&gt;&gt;&gt;&gt;&gt; &gt; socket_reconnect_timeout(gpointer opaque)<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -934,6 +934,68 @@ static gboolean<br>
&gt;&gt;&gt;&gt;&gt; &gt; socket_reconnect_timeout(gpointer opaque)<br>
&gt;&gt;&gt;&gt;&gt; &gt;       return false;<br>
&gt;&gt;&gt;&gt;&gt; &gt;   }<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -123,7 +123,7 @@ index 53eda8ef00..f566107c35 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;   static void qmp_chardev_open_socket(Chardev *chr,<br>
&gt;&gt;&gt;&gt;&gt; &gt;                                       ChardevBackend *backend,<br>
&gt;&gt;&gt;&gt;&gt; &gt;                                       bool *be_opened,<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -859,6 +921,9 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -941,6 +1003,9 @@ static void qmp_chardev_open_socket(Chardev<br>
&gt;&gt;&gt;&gt;&gt; &gt; *chr,<br>
&gt;&gt;&gt;&gt;&gt; &gt;   {<br>
&gt;&gt;&gt;&gt;&gt; &gt;       SocketChardev *s = SOCKET_CHARDEV(chr);<br>
&gt;&gt;&gt;&gt;&gt; &gt;       ChardevSocket *sock = backend-&gt;u.socket.data;<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -133,11 +133,10 @@ index 53eda8ef00..f566107c35 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;       bool do_nodelay     = sock-&gt;has_nodelay ? sock-&gt;nodelay :<br>
&gt;&gt;&gt;&gt;&gt; &gt; false;<br>
&gt;&gt;&gt;&gt;&gt; &gt;       bool is_listen      = sock-&gt;has_server  ? sock-&gt;server  : true;<br>
&gt;&gt;&gt;&gt;&gt; &gt;       bool is_telnet      = sock-&gt;has_telnet  ? sock-&gt;telnet  :<br>
&gt;&gt;&gt;&gt;&gt; &gt; false;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -925,7 +990,14 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; -     } else if (reconnect &gt; 0) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -1008,6 +1073,14 @@ static void qmp_chardev_open_socket(Chardev<br>
&gt;&gt;&gt;&gt;&gt; &gt; *chr,<br>
&gt;&gt;&gt;&gt;&gt; &gt;           s-&gt;reconnect_time = reconnect;<br>
&gt;&gt;&gt;&gt;&gt; &gt;       }<br>
&gt;&gt;&gt;&gt;&gt; &gt; --<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#ifndef _WIN32<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +    if (cmd) {<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +        chardev_open_socket_cmd(chr, cmd, errp);<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -146,12 +145,12 @@ index 53eda8ef00..f566107c35 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +        *be_opened = true;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +    } else<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#endif<br>
&gt;&gt;&gt;&gt;&gt; &gt; -     if (s-&gt;reconnect_time) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; -         sioc = qio_channel_socket_new();<br>
&gt;&gt;&gt;&gt;&gt; &gt; -         tcp_chr_set_client_ioc_name(chr, sioc);<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -985,10 +1057,26 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; -     const char *host = qemu_opt_get(opts, &quot;host&quot;);<br>
&gt;&gt;&gt;&gt;&gt; &gt; +     /* If reconnect_time is set, will do that in chr_machine_done.<br>
&gt;&gt;&gt;&gt;&gt; &gt; */<br>
&gt;&gt;&gt;&gt;&gt; &gt; +     if (!s-&gt;reconnect_time) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; +         if (s-&gt;is_listen) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -1065,9 +1138,26 @@ static void qemu_chr_parse_socket(QemuOpts<br>
&gt;&gt;&gt;&gt;&gt; &gt; *opts, ChardevBackend *backend,<br>
&gt;&gt;&gt;&gt;&gt; &gt;       const char *port = qemu_opt_get(opts, &quot;port&quot;);<br>
&gt;&gt;&gt;&gt;&gt; &gt; +     const char *fd = qemu_opt_get(opts, &quot;fd&quot;);<br>
&gt;&gt;&gt;&gt;&gt; &gt;       const char *tls_creds = qemu_opt_get(opts, &quot;tls-creds&quot;);<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#ifndef _WIN32<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +    const char *cmd = qemu_opt_get(opts, &quot;cmd&quot;);<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -159,7 +158,6 @@ index 53eda8ef00..f566107c35 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;       SocketAddressLegacy *addr;<br>
&gt;&gt;&gt;&gt;&gt; &gt;       ChardevSocket *sock;<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -     backend-&gt;type = CHARDEV_BACKEND_KIND_SOCKET;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#ifndef _WIN32<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +    if (cmd) {<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +        /*<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -173,17 +171,18 @@ index 53eda8ef00..f566107c35 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +        }<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +    } else<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#endif<br>
&gt;&gt;&gt;&gt;&gt; &gt; -     if (!path) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; -         if (!host) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; -             error_setg(errp, &quot;chardev: socket: no host given&quot;);<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -1021,13 +1109,24 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; -     sock-&gt;has_reconnect = true;<br>
&gt;&gt;&gt;&gt;&gt; &gt; ++<br>
&gt;&gt;&gt;&gt;&gt; &gt; +     if ((!!path + !!fd + !!host) != 1) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; +         error_setg(errp,<br>
&gt;&gt;&gt;&gt;&gt; &gt; +                    &quot;Exactly one of &#39;path&#39;, &#39;fd&#39; or &#39;host&#39;<br>
&gt;&gt;&gt;&gt;&gt; &gt; required&quot;);<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -1112,12 +1202,24 @@ static void qemu_chr_parse_socket(QemuOpts<br>
&gt;&gt;&gt;&gt;&gt; &gt; *opts, ChardevBackend *backend,<br>
&gt;&gt;&gt;&gt;&gt; &gt;       sock-&gt;reconnect = reconnect;<br>
&gt;&gt;&gt;&gt;&gt; &gt;       sock-&gt;tls_creds = g_strdup(tls_creds);<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#ifndef _WIN32<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +    sock-&gt;cmd = g_strdup(cmd);<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#endif<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; ++<br>
&gt;&gt;&gt;&gt;&gt; &gt;       addr = g_new0(SocketAddressLegacy, 1);<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#ifndef _WIN32<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +    if (path || cmd) {<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -198,11 +197,11 @@ index 53eda8ef00..f566107c35 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#else<br>
&gt;&gt;&gt;&gt;&gt; &gt;           q_unix-&gt;path = g_strdup(path);<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#endif<br>
&gt;&gt;&gt;&gt;&gt; &gt; -     } else {<br>
&gt;&gt;&gt;&gt;&gt; &gt; +     } else if (host) {<br>
&gt;&gt;&gt;&gt;&gt; &gt;           addr-&gt;type = SOCKET_ADDRESS_LEGACY_KIND_INET;<br>
&gt;&gt;&gt;&gt;&gt; &gt;           addr-&gt;u.inet.data = g_new(InetSocketAddress, 1);<br>
&gt;&gt;&gt;&gt;&gt; &gt;  diff --git a/chardev/char.c b/chardev/char.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -index 2ae4f465ec..5d52cd5de5 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; +index 76d866e6fe..9747d51d7c 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;  --- a/chardev/char.c<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +++ b/chardev/char.c<br>
&gt;&gt;&gt;&gt;&gt; &gt;  @@ -792,6 +792,9 @@ QemuOptsList qemu_chardev_opts = {<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -239,4 +238,5 @@ index ae19dcd1ed..6de0f29bcd 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt;                                        &#39;*server&#39;    : &#39;bool&#39;,<br>
&gt;&gt;&gt;&gt;&gt; &gt;                                        &#39;*wait&#39;      : &#39;bool&#39;,<br>
&gt;&gt;&gt;&gt;&gt; &gt;  --<br>
&gt;&gt;&gt;&gt;&gt; &gt; -2.14.1<br>
&gt;&gt;&gt;&gt;&gt; &gt; +2.17.0<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt; diff --git a/meta/recipes-devtools/qemu/qemu/disable-grabs.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/recipes-devtools/qemu/qemu/disable-grabs.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; index 77117890f4..e29c011a6f 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; --- a/meta/recipes-devtools/qemu/qemu/disable-grabs.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; +++ b/meta/recipes-devtools/qemu/qemu/disable-grabs.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -1,3 +1,11 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; +From a31c5c695cb716310257f1fc60a06b821e74fe7f Mon Sep 17 00:00:00<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2001<br>
&gt;&gt;&gt;&gt;&gt; &gt; +From: Ross Burton &lt;<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +Date: Wed, 18 Sep 2013 14:04:54 +0100<br>
&gt;&gt;&gt;&gt;&gt; &gt; +Subject: [PATCH] sdl.c: allow user to disable pointer grabs<br>
&gt;&gt;&gt;&gt;&gt; &gt; +MIME-Version: 1.0<br>
&gt;&gt;&gt;&gt;&gt; &gt; +Content-Type: text/plain; charset=UTF-8<br>
&gt;&gt;&gt;&gt;&gt; &gt; +Content-Transfer-Encoding: 8bit<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt;  When the pointer enters the Qemu window it calls SDL_WM_GrabInput,<br>
&gt;&gt;&gt;&gt;&gt; &gt; which calls<br>
&gt;&gt;&gt;&gt;&gt; &gt;  XGrabPointer in a busyloop until it returns GrabSuccess. However if<br>
&gt;&gt;&gt;&gt;&gt; &gt; there&#39;s already<br>
&gt;&gt;&gt;&gt;&gt; &gt;  a pointer grab (screen is locked, a menu is open) then qemu will<br>
&gt;&gt;&gt;&gt;&gt; &gt; hang until the<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -11,35 +19,30 @@ them in a conditional that can be set by the<br>
&gt;&gt;&gt;&gt;&gt; &gt; autobuilder environment, preserving<br>
&gt;&gt;&gt;&gt;&gt; &gt;  the current grabbing behaviour for everyone else.<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  Upstream-Status: Pending<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Signed-off-by: Ross Burton &lt;<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -From 4b1988ecb01a178269ec0513a75f2ec620c7ef6a Mon Sep 17 00:00:00<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2001<br>
&gt;&gt;&gt;&gt;&gt; &gt; -From: Ross Burton &lt;<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Date: Wed, 18 Sep 2013 14:04:54 +0100<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Subject: [PATCH] sdl.c: allow user to disable pointer grabs<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt;  Signed-off-by: Ross Burton &lt;<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  Signed-off-by: Eric Bénard &lt;<a href="mailto:eric@eukrea.com" target="_blank">eric@eukrea.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt;  ---<br>
&gt;&gt;&gt;&gt;&gt; &gt; - ui/sdl.c | 12 ++++++++++--<br>
&gt;&gt;&gt;&gt;&gt; &gt; - 1 file changed, 10 insertions(+), 2 deletions(-)<br>
&gt;&gt;&gt;&gt;&gt; &gt; + ui/sdl.c | 13 +++++++++++--<br>
&gt;&gt;&gt;&gt;&gt; &gt; + 1 file changed, 11 insertions(+), 2 deletions(-)<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Index: qemu-2.11.1/ui/sdl.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -===================================================================<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---- qemu-2.11.1.orig/ui/sdl.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+++ qemu-2.11.1/ui/sdl.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -63,6 +63,10 @@ static SDL_PixelFormat host_format;<br>
&gt;&gt;&gt;&gt;&gt; &gt; - static int scaling_active = 0;<br>
&gt;&gt;&gt;&gt;&gt; &gt; - static Notifier mouse_mode_notifier;<br>
&gt;&gt;&gt;&gt;&gt; &gt; - static int idle_counter;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +diff --git a/ui/sdl.c b/ui/sdl.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; +index a5fd503..ab8d1b1 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; +--- a/ui/sdl.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; ++++ b/ui/sdl.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -68,6 +68,11 @@ static int idle_counter;<br>
&gt;&gt;&gt;&gt;&gt; &gt; + static const guint16 *keycode_map;<br>
&gt;&gt;&gt;&gt;&gt; &gt; + static size_t keycode_maplen;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#ifndef True<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#define True 1<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +#endif<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +static doing_grabs = True;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; ++<br>
&gt;&gt;&gt;&gt;&gt; &gt;   #define SDL_REFRESH_INTERVAL_BUSY 10<br>
&gt;&gt;&gt;&gt;&gt; &gt;   #define SDL_MAX_IDLE_COUNT (2 * GUI_REFRESH_INTERVAL_DEFAULT \<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -431,14 +435,16 @@ static void sdl_grab_start(void)<br>
&gt;&gt;&gt;&gt;&gt; &gt; +                             / SDL_REFRESH_INTERVAL_BUSY + 1)<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -398,14 +403,16 @@ static void sdl_grab_start(void)<br>
&gt;&gt;&gt;&gt;&gt; &gt;           }<br>
&gt;&gt;&gt;&gt;&gt; &gt;       } else<br>
&gt;&gt;&gt;&gt;&gt; &gt;           sdl_hide_cursor();<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -58,7 +61,7 @@ Index: qemu-2.11.1/ui/sdl.c<br>
&gt;&gt;&gt;&gt;&gt; &gt;       gui_grab = 0;<br>
&gt;&gt;&gt;&gt;&gt; &gt;       sdl_show_cursor();<br>
&gt;&gt;&gt;&gt;&gt; &gt;       sdl_update_caption();<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -986,6 +992,8 @@ void sdl_display_init(DisplayState *ds,<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -945,6 +952,8 @@ static void sdl1_display_init(DisplayState *ds,<br>
&gt;&gt;&gt;&gt;&gt; &gt; DisplayOptions *o)<br>
&gt;&gt;&gt;&gt;&gt; &gt;        * This requires SDL &gt;= 1.2.14. */<br>
&gt;&gt;&gt;&gt;&gt; &gt;       setenv(&quot;SDL_DISABLE_LOCK_KEYS&quot;, &quot;1&quot;, 1);<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; diff --git a/meta/recipes-devtools/qemu/qemu/memfd.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/recipes-devtools/qemu/qemu/memfd.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; deleted file mode 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; index 62e8d3800b..0000000000<br>
&gt;&gt;&gt;&gt;&gt; &gt; --- a/meta/recipes-devtools/qemu/qemu/memfd.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; +++ /dev/null<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -1,57 +0,0 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Upstream-Status: Backport<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Signed-off-by: Ross Burton &lt;<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -From 75e5b70e6b5dcc4f2219992d7cffa462aa406af0 Mon Sep 17 00:00:00<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2001<br>
&gt;&gt;&gt;&gt;&gt; &gt; -From: Paolo Bonzini &lt;<a href="mailto:pbonzini@redhat.com" target="_blank">pbonzini@redhat.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Date: Tue, 28 Nov 2017 11:51:27 +0100<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Subject: [PATCH] memfd: fix configure test<br>
&gt;&gt;&gt;&gt;&gt; &gt; -MIME-Version: 1.0<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Content-Type: text/plain; charset=UTF-8<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Content-Transfer-Encoding: 8bit<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Recent glibc added memfd_create in sys/mman.h.  This conflicts with<br>
&gt;&gt;&gt;&gt;&gt; &gt; -the definition in util/memfd.c:<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -    /builddir/build/BUILD/qemu-2.11.0-rc1/util/memfd.c:40:12: error:<br>
&gt;&gt;&gt;&gt;&gt; &gt; static declaration of memfd_create follows non-static declaration<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Fix the configure test, and remove the sys/memfd.h inclusion since<br>
&gt;&gt;&gt;&gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt; &gt; -file actually does not exist---it is a typo in the memfd_create(2)<br>
&gt;&gt;&gt;&gt;&gt; &gt; man<br>
&gt;&gt;&gt;&gt;&gt; &gt; -page.<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Cc: Marc-André Lureau &lt;<a href="mailto:marcandre.lureau@redhat.com" target="_blank">marcandre.lureau@redhat.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -Signed-off-by: Paolo Bonzini &lt;<a href="mailto:pbonzini@redhat.com" target="_blank">pbonzini@redhat.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; ----<br>
&gt;&gt;&gt;&gt;&gt; &gt; - configure    | 2 +-<br>
&gt;&gt;&gt;&gt;&gt; &gt; - util/memfd.c | 4 +---<br>
&gt;&gt;&gt;&gt;&gt; &gt; - 2 files changed, 2 insertions(+), 4 deletions(-)<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; -diff --git a/configure b/configure<br>
&gt;&gt;&gt;&gt;&gt; &gt; -index 9c8aa5a98b..99ccc1725a 100755<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---- a/configure<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+++ b/configure<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -3923,7 +3923,7 @@ fi<br>
&gt;&gt;&gt;&gt;&gt; &gt; - # check if memfd is supported<br>
&gt;&gt;&gt;&gt;&gt; &gt; - memfd=no<br>
&gt;&gt;&gt;&gt;&gt; &gt; - cat &gt; $TMPC &lt;&lt; EOF<br>
&gt;&gt;&gt;&gt;&gt; &gt; --#include &lt;sys/memfd.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+#include &lt;sys/mman.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; - int main(void)<br>
&gt;&gt;&gt;&gt;&gt; &gt; - {<br>
&gt;&gt;&gt;&gt;&gt; &gt; -diff --git a/util/memfd.c b/util/memfd.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -index 4571d1aba8..412e94a405 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---- a/util/memfd.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+++ b/util/memfd.c<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -31,9 +31,7 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; - #include &quot;qemu/memfd.h&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; --#ifdef CONFIG_MEMFD<br>
&gt;&gt;&gt;&gt;&gt; &gt; --#include &lt;sys/memfd.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; --#elif defined CONFIG_LINUX<br>
&gt;&gt;&gt;&gt;&gt; &gt; -+#if defined CONFIG_LINUX &amp;&amp; !defined CONFIG_MEMFD<br>
&gt;&gt;&gt;&gt;&gt; &gt; - #include &lt;sys/syscall.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; - #include &lt;asm/unistd.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; ---<br>
&gt;&gt;&gt;&gt;&gt; &gt; -2.11.0<br>
&gt;&gt;&gt;&gt;&gt; &gt; diff --git a/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; index eb99d14639..360519f1a1 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; --- a/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; +++ b/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -1,8 +1,19 @@<br>
&gt;&gt;&gt;&gt;&gt; &gt; +From 6702ec74a7ba90b99efedde260c9f08b75d5516d Mon Sep 17 00:00:00<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2001<br>
&gt;&gt;&gt;&gt;&gt; &gt; +From: Stephen Arnold &lt;<a href="mailto:sarnold@vctlabs.com" target="_blank">sarnold@vctlabs.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +Date: Sun, 12 Jun 2016 18:09:56 -0700<br>
&gt;&gt;&gt;&gt;&gt; &gt; +Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some<br>
&gt;&gt;&gt;&gt;&gt; &gt; environment<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt;  Upstream-Status: Pending<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +---<br>
&gt;&gt;&gt;&gt;&gt; &gt; + configure | 4 ----<br>
&gt;&gt;&gt;&gt;&gt; &gt; + 1 file changed, 4 deletions(-)<br>
&gt;&gt;&gt;&gt;&gt; &gt; +<br>
&gt;&gt;&gt;&gt;&gt; &gt; +diff --git a/configure b/configure<br>
&gt;&gt;&gt;&gt;&gt; &gt; +index 69e05fb..12fc3d8 100755<br>
&gt;&gt;&gt;&gt;&gt; &gt;  --- a/configure<br>
&gt;&gt;&gt;&gt;&gt; &gt;  +++ b/configure<br>
&gt;&gt;&gt;&gt;&gt; &gt; -@@ -4468,10 +4468,6 @@ fi<br>
&gt;&gt;&gt;&gt;&gt; &gt; +@@ -5413,10 +5413,6 @@ write_c_skeleton<br>
&gt;&gt;&gt;&gt;&gt; &gt;   if test &quot;$gcov&quot; = &quot;yes&quot; ; then<br>
&gt;&gt;&gt;&gt;&gt; &gt;     CFLAGS=&quot;-fprofile-arcs -ftest-coverage -g $CFLAGS&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;     LDFLAGS=&quot;-fprofile-arcs -ftest-coverage $LDFLAGS&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -12,4 +23,4 @@ Upstream-Status: Pending<br>
&gt;&gt;&gt;&gt;&gt; &gt;  -  CFLAGS=&quot;-O2 $CFLAGS&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;   fi<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; - ##########################################<br>
&gt;&gt;&gt;&gt;&gt; &gt; + if test &quot;$have_asan&quot; = &quot;yes&quot;; then<br>
&gt;&gt;&gt;&gt;&gt; &gt; diff --git a/meta/recipes-devtools/qemu/<a href="http://qemu_2.11.1.bb" rel="noreferrer" target="_blank">qemu_2.11.1.bb</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; b/meta/recipes-devtools/qemu/<a href="http://qemu_2.12.0.bb" rel="noreferrer" target="_blank">qemu_2.12.0.bb</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; similarity index 87%<br>
&gt;&gt;&gt;&gt;&gt; &gt; rename from meta/recipes-devtools/qemu/<a href="http://qemu_2.11.1.bb" rel="noreferrer" target="_blank">qemu_2.11.1.bb</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; rename to meta/recipes-devtools/qemu/<a href="http://qemu_2.12.0.bb" rel="noreferrer" target="_blank">qemu_2.12.0.bb</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; index f4b7d69fca..63590fc9eb 100644<br>
&gt;&gt;&gt;&gt;&gt; &gt; --- a/meta/recipes-devtools/qemu/<a href="http://qemu_2.11.1.bb" rel="noreferrer" target="_blank">qemu_2.11.1.bb</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; +++ b/meta/recipes-devtools/qemu/<a href="http://qemu_2.12.0.bb" rel="noreferrer" target="_blank">qemu_2.12.0.bb</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -20,8 +20,6 @@ SRC_URI =<br>
&gt;&gt;&gt;&gt;&gt; &gt; &quot;<a href="http://wiki.qemu-project.org/download/$%7BBP%7D.tar.bz2" rel="noreferrer" target="_blank">http://wiki.qemu-project.org/download/${BP}.tar.bz2</a> \<br>
&gt;&gt;&gt;&gt;&gt; &gt;             file://chardev-connect-socket-to-a-spawned-command.patch<br>
&gt;&gt;&gt;&gt;&gt; &gt; \<br>
&gt;&gt;&gt;&gt;&gt; &gt;             file://apic-fixup-fallthrough-to-PIC.patch \<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; file://linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \<br>
&gt;&gt;&gt;&gt;&gt; &gt; -           file://memfd.patch \<br>
&gt;&gt;&gt;&gt;&gt; &gt; -<br>
&gt;&gt;&gt;&gt;&gt; &gt; file://0001-arm-translate-a64-treat-DISAS_UPDATE-as-variant-of-D.patch \<br>
&gt;&gt;&gt;&gt;&gt; &gt;             &quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  UPSTREAM_CHECK_REGEX = &quot;qemu-(?P&lt;pver&gt;\d+\..*)\.tar&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; @@ -31,8 +29,8 @@ SRC_URI_append_class-native = &quot; \<br>
&gt;&gt;&gt;&gt;&gt; &gt;              file://cpus.c-qemu_cpu_kick_thread_debugging.patch \<br>
&gt;&gt;&gt;&gt;&gt; &gt;              &quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -SRC_URI[md5sum] = &quot;61cf862b6007eba4ac98247776af2e27&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; -SRC_URI[sha256sum] =<br>
&gt;&gt;&gt;&gt;&gt; &gt; &quot;d9df2213ceed32e91dab7bc9dd19c1af83f91ba72c7aeef7605dfaaf81732ccb&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +SRC_URI[md5sum] = &quot;122fd7cdf241ff7eb1e42c0b503b5d1b&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; +SRC_URI[sha256sum] =<br>
&gt;&gt;&gt;&gt;&gt; &gt; &quot;c9f4a147bc915d24df9784affc611a115f42d24720a89210b479f1ba7a3f679c&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  COMPATIBLE_HOST_mipsarchn32 = &quot;null&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt;  COMPATIBLE_HOST_mipsarchn64 = &quot;null&quot;<br>
&gt;&gt;&gt;&gt;&gt; &gt; --<br>
&gt;&gt;&gt;&gt;&gt; &gt; 2.17.0<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; --<br>
&gt;&gt;&gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; &gt; Openembedded-core mailing list<br>
&gt;&gt;&gt;&gt;&gt; &gt; <a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openembedded.org</a><br>
&gt;&gt;&gt;&gt;&gt; &gt; <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; _______________________________________________<br>
&gt; Openembedded-core mailing list<br>
&gt; <a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openembedded.org</a><br>
&gt; <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
&gt;<br>
</blockquote></div>