diff options
Diffstat (limited to 'poky/meta/recipes-devtools/qemu')
11 files changed, 315 insertions, 111 deletions
diff --git a/poky/meta/recipes-devtools/qemu/qemu-native_8.0.3.bb b/poky/meta/recipes-devtools/qemu/qemu-native_8.1.0.bb index 73a0f63f2b..73a0f63f2b 100644 --- a/poky/meta/recipes-devtools/qemu/qemu-native_8.0.3.bb +++ b/poky/meta/recipes-devtools/qemu/qemu-native_8.1.0.bb diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_8.0.3.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_8.1.0.bb index 04c7c2a6ac..558a416f7b 100644 --- a/poky/meta/recipes-devtools/qemu/qemu-system-native_8.0.3.bb +++ b/poky/meta/recipes-devtools/qemu/qemu-system-native_8.1.0.bb @@ -11,7 +11,7 @@ DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native me EXTRA_OECONF:append = " --target-list=${@get_qemu_system_target_list(d)}" -PACKAGECONFIG ??= "fdt alsa kvm pie slirp \ +PACKAGECONFIG ??= "fdt alsa kvm pie slirp png \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ " diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc index 64bade86aa..15b963d448 100644 --- a/poky/meta/recipes-devtools/qemu/qemu.inc +++ b/poky/meta/recipes-devtools/qemu/qemu.inc @@ -9,7 +9,9 @@ LICENSE = "GPL-2.0-only & LGPL-2.1-only" RDEPENDS:${PN}-ptest = "bash" require qemu-targets.inc -inherit pkgconfig ptest update-rc.d systemd +# https://gitlab.com/qemu-project/qemu/-/commit/81e2b198a8cb4ee5fdf108bd438f44b193ee3a36 means +# we need a full python3-native setup +inherit pkgconfig ptest update-rc.d systemd python3native LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ file://COPYING.LIB;endline=24;md5=8c5efda6cf1e1b03dcfd0e6c0d271c7f" @@ -27,13 +29,17 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ file://0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch \ file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \ - file://0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch \ + file://0001-softmmu-Assert-data-in-bounds-in-iotlb_to_section.patch \ + file://0001-softmmu-Use-async_run_on_cpu-in-tcg_commit.patch \ + file://fixedmeson.patch \ + file://fixmips.patch \ file://qemu-guest-agent.init \ file://qemu-guest-agent.udev \ " UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" -SRC_URI[sha256sum] = "ecf4d32cbef9d397bfc8cc50e4d1e92a1b30253bf32e8ee73c7a8dcf9a232b09" + +SRC_URI[sha256sum] = "710c101198e334d4762eef65f649bc43fa8a5dd75303554b8acfec3eb25f0e55" SRC_URI:append:class-target = " file://cross.patch" SRC_URI:append:class-nativesdk = " file://cross.patch" @@ -104,9 +110,8 @@ EXTRA_OECONF = " \ --disable-werror \ --extra-cflags='${CFLAGS}' \ --extra-ldflags='${LDFLAGS}' \ - --with-git=/bin/false \ - --with-git-submodules=ignore \ - --meson=meson \ + --disable-download \ + --disable-docs \ ${PACKAGECONFIG_CONFARGS} \ " @@ -144,6 +149,10 @@ do_install () { install -m 0644 ${S}/contrib/systemd/qemu-guest-agent.service ${D}${systemd_unitdir}/system sed -i -e 's,-/usr/bin/,-${bindir}/,g' ${D}${systemd_unitdir}/system/qemu-guest-agent.service fi + # ELF binary /usr/share/qemu/s390-netboot.img has relocations in .text + rm ${D}${datadir}/qemu/s390-netboot.img -f + # ELF binary /usr/share/qemu/s390-ccw.img has relocations in .text [textrel] + rm ${D}${datadir}/qemu/s390-ccw.img -f } # The following fragment will create a wrapper for qemu-mips user emulation @@ -195,11 +204,12 @@ PACKAGECONFIG[virglrenderer] = "--enable-virglrenderer,--disable-virglrenderer,v # spice will be in meta-networking layer PACKAGECONFIG[spice] = "--enable-spice,--disable-spice,spice" # usbredir will be in meta-networking layer +PACKAGECONFIG[dbus-display] = "--enable-dbus-display,--disable-dbus-display,glib-2.0-native,dbus" PACKAGECONFIG[usb-redir] = "--enable-usb-redir,--disable-usb-redir,usbredir" PACKAGECONFIG[snappy] = "--enable-snappy,--disable-snappy,snappy" PACKAGECONFIG[glusterfs] = "--enable-glusterfs,--disable-glusterfs,glusterfs" PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon" -PACKAGECONFIG[libudev] = "--enable-libudev,--disable-libudev,eudev" +PACKAGECONFIG[libudev] = "--enable-libudev,--disable-libudev,udev" PACKAGECONFIG[attr] = "--enable-attr,--disable-attr,attr," PACKAGECONFIG[rbd] = "--enable-rbd,--disable-rbd,ceph,ceph" PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,," @@ -215,20 +225,24 @@ PACKAGECONFIG[bpf] = "--enable-bpf,--disable-bpf,libbpf" PACKAGECONFIG[capstone] = "--enable-capstone,--disable-capstone" PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma" PACKAGECONFIG[vde] = "--enable-vde,--disable-vde" +PACKAGECONFIG[fuse] = "--enable-fuse --enable-fuse-lseek,--disable-fuse --disable-fuse-lseek,fuse3" PACKAGECONFIG[slirp] = "--enable-slirp,--disable-slirp,libslirp" PACKAGECONFIG[brlapi] = "--enable-brlapi,--disable-brlapi" PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack," PACKAGECONFIG[debuginfo] = "--enable-libdw,--disable-libdw,elfutils" -INSANE_SKIP:${PN} = "arch" +INSANE_SKIP:${PN}-common = "arch" FILES:${PN} += "${datadir}/icons" # For user who want to install all arch packages -PACKAGES =+ "${PN}-system-all ${PN}-user-all" +PACKAGES =+ "${PN}-common" +RDEPENDS:${PN} += "${PN}-common" + +ALLOW_EMPTY:${PN} = "1" +FILES:${PN} = "" -ALLOW_EMPTY:${PN}-system-all = "1" -ALLOW_EMPTY:${PN}-user-all = "1" +FILES:${PN}-common = "${bindir}/* ${includedir}/* ${libexecdir}/* ${datadir}/* ${localstatedir}" PACKAGES_DYNAMIC += "^${PN}-user-.* ^${PN}-system-.*" @@ -236,15 +250,13 @@ PACKAGESPLITFUNCS =+ "split_qemu_packages" python split_qemu_packages () { archdir = d.expand('${bindir}/') - syspackages = do_split_packages(d, archdir, r'^qemu-system-(.*)$', '${PN}-system-%s', 'QEMU full system emulation binaries(%s)' , prepend=True) - if syspackages: - d.setVar('RDEPENDS:' + d.getVar('PN') + '-system-all', ' '.join(syspackages)) + subpackages = do_split_packages(d, archdir, r'^qemu-system-(.*)$', '${PN}-system-%s', 'QEMU full system emulation binaries(%s)' , prepend=True, extra_depends='${PN}-common') - userpackages = do_split_packages(d, archdir, r'^qemu-((?!system|edid|ga|img|io|nbd|pr-helper|storage-daemon).*)$', '${PN}-user-%s', 'QEMU full user emulation binaries(%s)' , prepend=True) - if userpackages: - d.setVar('RDEPENDS:' + d.getVar('PN') + '-user-all', ' '.join(userpackages)) + subpackages += do_split_packages(d, archdir, r'^qemu-((?!system|edid|ga|img|io|nbd|pr-helper|storage-daemon).*)$', '${PN}-user-%s', 'QEMU full user emulation binaries(%s)' , prepend=True, extra_depends='${PN}-common') + if subpackages: + d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(subpackages)) mipspackage = d.getVar('PN') + "-user-mips" - if mipspackage in ' '.join(userpackages): + if mipspackage in ' '.join(subpackages): d.appendVar('RDEPENDS:' + mipspackage, ' ' + d.getVar("MLPREFIX") + 'bash') } diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-CVE-2023-40360-hw-nvme-fix-null-pointer-access-in-di.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-CVE-2023-40360-hw-nvme-fix-null-pointer-access-in-di.patch new file mode 100644 index 0000000000..731b0281f4 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-CVE-2023-40360-hw-nvme-fix-null-pointer-access-in-di.patch @@ -0,0 +1,39 @@ +From 83dd3da9fac872fac9739b9dcb96232c93675824 Mon Sep 17 00:00:00 2001 +From: Klaus Jensen <k.jensen@samsung.com> +Date: Tue, 8 Aug 2023 17:16:13 +0200 +Subject: [PATCH] CVE-2023-40360 hw/nvme: fix null pointer access in directive + receive + +nvme_directive_receive() does not check if an endurance group has been +configured (set) prior to testing if flexible data placement is enabled +or not. + +Fix this. + +CVE: CVE-2023-40360 +Upstream-Status: Backport [https://gitlab.com/birkelund/qemu/-/commit/6c8f8456cb0b239812dee5211881426496da7b98] +Cc: qemu-stable@nongnu.org +Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1815 +Fixes: 73064edfb864 ("hw/nvme: flexible data placement emulation") +Reviewed-by: Jesper Wendel Devantier <j.devantier@samsung.com> +Signed-off-by: Klaus Jensen <k.jensen@samsung.com> +--- + hw/nvme/ctrl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c +index 2097fb131..36a2846c3 100644 +--- a/hw/nvme/ctrl.c ++++ b/hw/nvme/ctrl.c +@@ -6862,7 +6862,7 @@ static uint16_t nvme_directive_receive(NvmeCtrl *n, NvmeRequest *req) + case NVME_DIRECTIVE_IDENTIFY: + switch (doper) { + case NVME_DIRECTIVE_RETURN_PARAMS: +- if (ns->endgrp->fdp.enabled) { ++ if (ns->endgrp && ns->endgrp->fdp.enabled) { + id.supported |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; + id.enabled |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; + id.persistent |= 1 << NVME_DIRECTIVE_DATA_PLACEMENT; +-- +2.42.0 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-softmmu-Assert-data-in-bounds-in-iotlb_to_section.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-softmmu-Assert-data-in-bounds-in-iotlb_to_section.patch new file mode 100644 index 0000000000..7380e16ab3 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-softmmu-Assert-data-in-bounds-in-iotlb_to_section.patch @@ -0,0 +1,42 @@ +From 86e4f93d827d3c1efd00cd8a906e38a2c0f2b5bc Mon Sep 17 00:00:00 2001 +From: Richard Henderson <richard.henderson@linaro.org> +Date: Fri, 25 Aug 2023 14:06:58 -0700 +Subject: [PATCH] softmmu: Assert data in bounds in iotlb_to_section +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Alex Bennée <alex.bennee@linaro.org> +Suggested-by: Alex Bennée <alex.bennee@linaro.org> +Signed-off-by: Richard Henderson <richard.henderson@linaro.org> + +Upstream-Status: Backport [https://gitlab.com/qemu-project/qemu/-/commit/86e4f93d827d3c1efd00cd8a906e38a2c0f2b5bc] +--- + softmmu/physmem.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/softmmu/physmem.c b/softmmu/physmem.c +index 3df73542e1..7597dc1c39 100644 +--- a/softmmu/physmem.c ++++ b/softmmu/physmem.c +@@ -2413,9 +2413,15 @@ MemoryRegionSection *iotlb_to_section(CPUState *cpu, + int asidx = cpu_asidx_from_attrs(cpu, attrs); + CPUAddressSpace *cpuas = &cpu->cpu_ases[asidx]; + AddressSpaceDispatch *d = qatomic_rcu_read(&cpuas->memory_dispatch); +- MemoryRegionSection *sections = d->map.sections; ++ int section_index = index & ~TARGET_PAGE_MASK; ++ MemoryRegionSection *ret; ++ ++ assert(section_index < d->map.sections_nb); ++ ret = d->map.sections + section_index; ++ assert(ret->mr); ++ assert(ret->mr->ops); + +- return §ions[index & ~TARGET_PAGE_MASK]; ++ return ret; + } + + static void io_mem_init(void) +-- +2.34.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-softmmu-Use-async_run_on_cpu-in-tcg_commit.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-softmmu-Use-async_run_on_cpu-in-tcg_commit.patch new file mode 100644 index 0000000000..8289b45991 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-softmmu-Use-async_run_on_cpu-in-tcg_commit.patch @@ -0,0 +1,157 @@ +From 0d58c660689f6da1e3feff8a997014003d928b3b Mon Sep 17 00:00:00 2001 +From: Richard Henderson <richard.henderson@linaro.org> +Date: Fri, 25 Aug 2023 16:13:17 -0700 +Subject: [PATCH] softmmu: Use async_run_on_cpu in tcg_commit +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +After system startup, run the update to memory_dispatch +and the tlb_flush on the cpu. This eliminates a race, +wherein a running cpu sees the memory_dispatch change +but has not yet seen the tlb_flush. + +Since the update now happens on the cpu, we need not use +qatomic_rcu_read to protect the read of memory_dispatch. + +Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1826 +Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1834 +Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1846 +Tested-by: Alex Bennée <alex.bennee@linaro.org> +Reviewed-by: Alex Bennée <alex.bennee@linaro.org> +Signed-off-by: Richard Henderson <richard.henderson@linaro.org> + +Upstream-Status: Backport [0d58c660689f6da1e3feff8a997014003d928b3b] +--- + accel/tcg/cpu-exec-common.c | 30 ---------------------------- + include/exec/cpu-common.h | 1 - + softmmu/physmem.c | 40 +++++++++++++++++++++++++++---------- + 3 files changed, 29 insertions(+), 42 deletions(-) + +Index: qemu-8.1.0/accel/tcg/cpu-exec-common.c +=================================================================== +--- qemu-8.1.0.orig/accel/tcg/cpu-exec-common.c ++++ qemu-8.1.0/accel/tcg/cpu-exec-common.c +@@ -33,36 +33,6 @@ void cpu_loop_exit_noexc(CPUState *cpu) + cpu_loop_exit(cpu); + } + +-#if defined(CONFIG_SOFTMMU) +-void cpu_reloading_memory_map(void) +-{ +- if (qemu_in_vcpu_thread() && current_cpu->running) { +- /* The guest can in theory prolong the RCU critical section as long +- * as it feels like. The major problem with this is that because it +- * can do multiple reconfigurations of the memory map within the +- * critical section, we could potentially accumulate an unbounded +- * collection of memory data structures awaiting reclamation. +- * +- * Because the only thing we're currently protecting with RCU is the +- * memory data structures, it's sufficient to break the critical section +- * in this callback, which we know will get called every time the +- * memory map is rearranged. +- * +- * (If we add anything else in the system that uses RCU to protect +- * its data structures, we will need to implement some other mechanism +- * to force TCG CPUs to exit the critical section, at which point this +- * part of this callback might become unnecessary.) +- * +- * This pair matches cpu_exec's rcu_read_lock()/rcu_read_unlock(), which +- * only protects cpu->as->dispatch. Since we know our caller is about +- * to reload it, it's safe to split the critical section. +- */ +- rcu_read_unlock(); +- rcu_read_lock(); +- } +-} +-#endif +- + void cpu_loop_exit(CPUState *cpu) + { + /* Undo the setting in cpu_tb_exec. */ +Index: qemu-8.1.0/include/exec/cpu-common.h +=================================================================== +--- qemu-8.1.0.orig/include/exec/cpu-common.h ++++ qemu-8.1.0/include/exec/cpu-common.h +@@ -133,7 +133,6 @@ static inline void cpu_physical_memory_w + { + cpu_physical_memory_rw(addr, (void *)buf, len, true); + } +-void cpu_reloading_memory_map(void); + void *cpu_physical_memory_map(hwaddr addr, + hwaddr *plen, + bool is_write); +Index: qemu-8.1.0/softmmu/physmem.c +=================================================================== +--- qemu-8.1.0.orig/softmmu/physmem.c ++++ qemu-8.1.0/softmmu/physmem.c +@@ -680,8 +680,7 @@ address_space_translate_for_iotlb(CPUSta + IOMMUTLBEntry iotlb; + int iommu_idx; + hwaddr addr = orig_addr; +- AddressSpaceDispatch *d = +- qatomic_rcu_read(&cpu->cpu_ases[asidx].memory_dispatch); ++ AddressSpaceDispatch *d = cpu->cpu_ases[asidx].memory_dispatch; + + for (;;) { + section = address_space_translate_internal(d, addr, &addr, plen, false); +@@ -2412,7 +2411,7 @@ MemoryRegionSection *iotlb_to_section(CP + { + int asidx = cpu_asidx_from_attrs(cpu, attrs); + CPUAddressSpace *cpuas = &cpu->cpu_ases[asidx]; +- AddressSpaceDispatch *d = qatomic_rcu_read(&cpuas->memory_dispatch); ++ AddressSpaceDispatch *d = cpuas->memory_dispatch; + int section_index = index & ~TARGET_PAGE_MASK; + MemoryRegionSection *ret; + +@@ -2487,23 +2486,42 @@ static void tcg_log_global_after_sync(Me + } + } + ++static void tcg_commit_cpu(CPUState *cpu, run_on_cpu_data data) ++{ ++ CPUAddressSpace *cpuas = data.host_ptr; ++ ++ cpuas->memory_dispatch = address_space_to_dispatch(cpuas->as); ++ tlb_flush(cpu); ++} ++ + static void tcg_commit(MemoryListener *listener) + { + CPUAddressSpace *cpuas; +- AddressSpaceDispatch *d; ++ CPUState *cpu; + + assert(tcg_enabled()); + /* since each CPU stores ram addresses in its TLB cache, we must + reset the modified entries */ + cpuas = container_of(listener, CPUAddressSpace, tcg_as_listener); +- cpu_reloading_memory_map(); +- /* The CPU and TLB are protected by the iothread lock. +- * We reload the dispatch pointer now because cpu_reloading_memory_map() +- * may have split the RCU critical section. ++ cpu = cpuas->cpu; ++ ++ /* ++ * Defer changes to as->memory_dispatch until the cpu is quiescent. ++ * Otherwise we race between (1) other cpu threads and (2) ongoing ++ * i/o for the current cpu thread, with data cached by mmu_lookup(). ++ * ++ * In addition, queueing the work function will kick the cpu back to ++ * the main loop, which will end the RCU critical section and reclaim ++ * the memory data structures. ++ * ++ * That said, the listener is also called during realize, before ++ * all of the tcg machinery for run-on is initialized: thus halt_cond. + */ +- d = address_space_to_dispatch(cpuas->as); +- qatomic_rcu_set(&cpuas->memory_dispatch, d); +- tlb_flush(cpuas->cpu); ++ if (cpu->halt_cond) { ++ async_run_on_cpu(cpu, tcg_commit_cpu, RUN_ON_CPU_HOST_PTR(cpuas)); ++ } else { ++ tcg_commit_cpu(cpu, RUN_ON_CPU_HOST_PTR(cpuas)); ++ } + } + + static void memory_map_init(void) diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch deleted file mode 100644 index 049b9a5105..0000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 348ea441db84a211d4fca7ef5544b5cd06a8a872 Mon Sep 17 00:00:00 2001 -From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> -Date: Tue, 4 Apr 2023 15:26:07 +0200 -Subject: [PATCH] tracetool: use relative paths for '#line' preprocessor - directives - -The event filename is an absolute path. Convert it to a relative path when -writing '#line' directives, to preserve reproducibility of the generated -output when different base paths are used. - -Upstream-Status: Accepted [https://gitlab.com/qemu-project/qemu/-/commit/9d672e290475001fcecdcc9dc79ad088ff89d17f] - ---- - scripts/tracetool/backend/ftrace.py | 4 +++- - scripts/tracetool/backend/log.py | 4 +++- - scripts/tracetool/backend/syslog.py | 4 +++- - 3 files changed, 9 insertions(+), 3 deletions(-) - -Index: qemu-8.0.0/scripts/tracetool/backend/ftrace.py -=================================================================== ---- qemu-8.0.0.orig/scripts/tracetool/backend/ftrace.py -+++ qemu-8.0.0/scripts/tracetool/backend/ftrace.py -@@ -12,6 +12,8 @@ __maintainer__ = "Stefan Hajnoczi" - __email__ = "stefanha@redhat.com" - - -+import os.path -+ - from tracetool import out - - -@@ -45,7 +47,7 @@ def generate_h(event, group): - args=event.args, - event_id="TRACE_" + event.name.upper(), - event_lineno=event.lineno, -- event_filename=event.filename, -+ event_filename=os.path.relpath(event.filename), - fmt=event.fmt.rstrip("\n"), - argnames=argnames) - -Index: qemu-8.0.0/scripts/tracetool/backend/log.py -=================================================================== ---- qemu-8.0.0.orig/scripts/tracetool/backend/log.py -+++ qemu-8.0.0/scripts/tracetool/backend/log.py -@@ -12,6 +12,8 @@ __maintainer__ = "Stefan Hajnoczi" - __email__ = "stefanha@redhat.com" - - -+import os.path -+ - from tracetool import out - - -@@ -53,7 +55,7 @@ def generate_h(event, group): - ' }', - cond=cond, - event_lineno=event.lineno, -- event_filename=event.filename, -+ event_filename=os.path.relpath(event.filename), - name=event.name, - fmt=event.fmt.rstrip("\n"), - argnames=argnames) -Index: qemu-8.0.0/scripts/tracetool/backend/syslog.py -=================================================================== ---- qemu-8.0.0.orig/scripts/tracetool/backend/syslog.py -+++ qemu-8.0.0/scripts/tracetool/backend/syslog.py -@@ -12,6 +12,8 @@ __maintainer__ = "Stefan Hajnoczi" - __email__ = "stefanha@redhat.com" - - -+import os.path -+ - from tracetool import out - - -@@ -41,7 +43,7 @@ def generate_h(event, group): - ' }', - cond=cond, - event_lineno=event.lineno, -- event_filename=event.filename, -+ event_filename=os.path.relpath(event.filename), - name=event.name, - fmt=event.fmt.rstrip("\n"), - argnames=argnames) diff --git a/poky/meta/recipes-devtools/qemu/qemu/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch b/poky/meta/recipes-devtools/qemu/qemu/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch index 02f22143c1..f981a64a54 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch @@ -14,16 +14,16 @@ Signed-off-by: He Zhe <zhe.he@windriver.com> meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: qemu-8.0.0/meson.build +Index: qemu-8.1.0/meson.build =================================================================== ---- qemu-8.0.0.orig/meson.build -+++ qemu-8.0.0/meson.build -@@ -1213,7 +1213,7 @@ endif +--- qemu-8.1.0.orig/meson.build ++++ qemu-8.1.0/meson.build +@@ -1481,7 +1481,7 @@ endif if not gnutls_crypto.found() if (not get_option('gcrypt').auto() or have_system) and not get_option('nettle').enabled() gcrypt = dependency('libgcrypt', version: '>=1.8', - method: 'config-tool', + method: 'pkg-config', - required: get_option('gcrypt'), - kwargs: static_kwargs) + required: get_option('gcrypt')) # Debian has removed -lgpg-error from libgcrypt-config + # as it "spreads unnecessary dependencies" which in diff --git a/poky/meta/recipes-devtools/qemu/qemu/fixedmeson.patch b/poky/meta/recipes-devtools/qemu/qemu/fixedmeson.patch new file mode 100644 index 0000000000..0cbaea07ca --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/fixedmeson.patch @@ -0,0 +1,20 @@ +Upstream-Status: Inappropriate [workaround, would need a real fix for upstream] + +Index: qemu-8.1.0/configure +=================================================================== +--- qemu-8.1.0.orig/configure ++++ qemu-8.1.0/configure +@@ -1032,12 +1032,7 @@ then + exit 1 + fi + +-# At this point, we expect Meson to be installed and available. +-# We expect mkvenv or pip to have created pyvenv/bin/meson for us. +-# We ignore PATH completely here: we want to use the venv's Meson +-# *exclusively*. +- +-meson="$(cd pyvenv/bin; pwd)/meson" ++meson=`which meson` + + # Conditionally ensure Sphinx is installed. + diff --git a/poky/meta/recipes-devtools/qemu/qemu/fixmips.patch b/poky/meta/recipes-devtools/qemu/qemu/fixmips.patch new file mode 100644 index 0000000000..01546d1030 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/fixmips.patch @@ -0,0 +1,18 @@ +Patch to fix mips boot hangs where virtio appears broken. Patch under discussion upstream. +Regression is introduced by other fixes to 8.1.0 to get x86 boots working. + +Upstream-Status: Pending [https://lore.kernel.org/qemu-devel/6c956b90-5a13-db96-9c02-9834a512fe6f@linaro.org/] + +Index: qemu-8.1.0/softmmu/physmem.c +=================================================================== +--- qemu-8.1.0.orig/softmmu/physmem.c ++++ qemu-8.1.0/softmmu/physmem.c +@@ -2517,7 +2517,7 @@ static void tcg_commit(MemoryListener *l + * That said, the listener is also called during realize, before + * all of the tcg machinery for run-on is initialized: thus halt_cond. + */ +- if (cpu->halt_cond) { ++ if (cpu->halt_cond && !qemu_cpu_is_self(cpu)) { + async_run_on_cpu(cpu, tcg_commit_cpu, RUN_ON_CPU_HOST_PTR(cpuas)); + } else { + tcg_commit_cpu(cpu, RUN_ON_CPU_HOST_PTR(cpuas)); diff --git a/poky/meta/recipes-devtools/qemu/qemu_8.0.3.bb b/poky/meta/recipes-devtools/qemu/qemu_8.1.0.bb index 42e133967e..84ee0bcc49 100644 --- a/poky/meta/recipes-devtools/qemu/qemu_8.0.3.bb +++ b/poky/meta/recipes-devtools/qemu/qemu_8.1.0.bb @@ -8,7 +8,7 @@ DEPENDS:append:libc-musl = " libucontext" CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" -RDEPENDS:${PN}:class-target += "bash" +RDEPENDS:${PN}-common:class-target += "bash" EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}" EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" @@ -16,7 +16,7 @@ EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d) PACKAGECONFIG ??= " \ fdt sdl kvm pie slirp \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio xen', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \ " |