From patchwork Thu Jun 4 11:05:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 89307 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C0C9CD6E6B for ; Thu, 4 Jun 2026 11:05:52 +0000 (UTC) Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.8728.1780571150696004420 for ; Thu, 04 Jun 2026 04:05:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=qNJ8OiwA; spf=pass (domain: gmail.com, ip: 209.85.221.43, mailfrom: alex.kanavin@gmail.com) Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-45ef1629ff4so421162f8f.0 for ; Thu, 04 Jun 2026 04:05:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780571149; x=1781175949; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=++BMtzNpPWCq95Vm1rKDvjDtFXKuPB6k6trlG3YDP54=; b=qNJ8OiwAzjh4d3Kzr12rQ7ynOGsAXPAf8hiRvkds5s+dAPihhkemxPUwonSUOI9B5a I3A9YjqMmw6J7Ogvoycgf7bcIsMKpbeb9YMzDB8bb+kkKPAvEFeFp8e2pbI76xY+WodV gLw6s3uVnBBTN2ezy39v8sI4AU5qCc0IwGkq4vaM2iYULrVinl4FPebQQwWl0U0026W/ k9TtVKaYowN8+JOCs4CEPRmSjv9CZNKYbAPsGd/pQvPE7cJgNprF9hEK/E2KMkVK2jtK GYxo7yGyhAGEPo1T0Be9xKb58TwIjI27Mf03UeeeS77D7G61zgwLzCjJGuz9IS15aLBy 1mUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780571149; x=1781175949; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=++BMtzNpPWCq95Vm1rKDvjDtFXKuPB6k6trlG3YDP54=; b=HzlYci76KgysZulK09Phf+SGuWgo8tCRbp4G4x6Tuxs00lN2OkYdC9j3eFRumK56N7 B7VDrBcP0jpXI5SiZfNXw2nbAiwze55qGWwnOQ0U7DNQQe5n60brqYVcv41Jum1WdvRw hastTOIvn/8PC9Y08B7oyoJrvGf3DXlRd0VcAsJOJsrwOJA3D38zVoCylR/pq6Bk59Qb 30yULxNw1Pch6TQaE1rOE/i5cOMj32JXQJUs6l9SKwUhCZ6bDcdY8szIuTBbk4s/GT+v u5Nh2aXa2uOb5Xlgd+Ev+WbTfW9zrNLxP7kyooyfTp+xFR/im0i5ZSflO/KMbWuimXnX NA+Q== X-Gm-Message-State: AOJu0YyaLMXbTlurZAX+bziiujZXkXJ5c248oKY5yGeVwB2I6dgr+t0f eChMARfVecDzjRXxONRxuc4LgO7s4lIs9Qzz2us7yE/cHFv9Z36d0Orig6EWMg== X-Gm-Gg: Acq92OE2lZ0xDGbhZbCORauQxOOnGeKj/aPVdihVhxTCuRT8jEPJrdx13dOW/aoirra Ed+WGKlYNTSGNeCK+1TtofmYpLZExf4pY7hLL2G9r+oL9TLx+FCbj9D3CxUpt6U24/Y3K+O8YMf 3wrOq2eoCygcXUxf73C4km8u4PR19BiKdXHq/VJjYpEGrchwkqW6WzBTr26Eb0Ddh9pZTlrwL2U fvaKXtARYWYijEV1X4t432fiO57cHLIBYmaEJ4T6RH7UlxRZg638YDsa+0fr8awa4+su4c92XG9 wvtO4h8N5A6t3JGJ4v68VxBAE4cR54boB0SvjoisADs62nEC4aUEtiMnMnWkZFsc8l2jq5iair9 XHrqhcOxfb6v92g0eeve/PvGyR8WBuPmOhYPI4HLkeyOT3ZY0LlRJY44RxWCf7cFY7I/coQgo6a uHA/h3NcVDjrpC0e2Bqbv3MrQVNpx4indpfH2VyhTnS+HwFeNs1k4fYeMz6xRqhxGmwgWuag== X-Received: by 2002:a5d:49c3:0:b0:452:273:5cd6 with SMTP id ffacd0b85a97d-460217830aamr7519343f8f.1.1780571148777; Thu, 04 Jun 2026 04:05:48 -0700 (PDT) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f368e9fsm14946005f8f.37.2026.06.04.04.05.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 04:05:48 -0700 (PDT) From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 1/4] python3-qemu-qmp: add a recipe Date: Thu, 4 Jun 2026 13:05:32 +0200 Message-ID: <20260604110545.1860309-1-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Jun 2026 11:05:52 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238123 From: Alexander Kanavin Also, adjust qemu recipe to be using it, instead of its own internal copy. With qemu 11.x the internal copy is removed and so a separate qemu-qmp recipes becomes a requirement. Signed-off-by: Alexander Kanavin --- meta/conf/distro/include/maintainers.inc | 1 + .../qemu/python3-qemu-qmp_0.0.6.bb | 28 +++++++++++++++++++ .../qemu/qemu-system-native_10.2.0.bb | 6 +--- 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 meta/recipes-devtools/qemu/python3-qemu-qmp_0.0.6.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 66902616f5..86048e791c 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -706,6 +706,7 @@ RECIPE_MAINTAINER:pn-python3-pytest = "Trevor Gamblin " RECIPE_MAINTAINER:pn-python3-pytest-subtests = "Tim Orling " RECIPE_MAINTAINER:pn-python3-pytz = "Tim Orling " RECIPE_MAINTAINER:pn-python3-pyyaml = "Tim Orling " +RECIPE_MAINTAINER:pn-python3-qemu-qmp = "Richard Purdie " RECIPE_MAINTAINER:pn-python3-rdflib = "Wang Mingyu " RECIPE_MAINTAINER:pn-python3-referencing = "Trevor Gamblin " RECIPE_MAINTAINER:pn-python3-requests = "Tim Orling " diff --git a/meta/recipes-devtools/qemu/python3-qemu-qmp_0.0.6.bb b/meta/recipes-devtools/qemu/python3-qemu-qmp_0.0.6.bb new file mode 100644 index 0000000000..4b3bbe6670 --- /dev/null +++ b/meta/recipes-devtools/qemu/python3-qemu-qmp_0.0.6.bb @@ -0,0 +1,28 @@ +SUMMARY = "QEMU Monitor Protocol Python library" +DESCRIPTION = "An asyncio library for communicating with QEMU Monitor Protocol (QMP). \ +This library was split out of the QEMU source tree to provide a reference QMP \ +implementation usable both within and outside of the QEMU source tree." +HOMEPAGE = "https://gitlab.com/qemu-project/python-qemu-qmp" +LICENSE = "LGPL-2.0-only & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4cf66a4984120007c9881cc871cf49db" + +inherit pypi python_setuptools_build_meta + +PYPI_PACKAGE = "qemu_qmp" + +SRC_URI[sha256sum] = "a3c25d871fab549122b2340810de1f99481002c942a2132476b062aacdbf6e92" + +DEPENDS += "python3-setuptools-scm-native" + +RDEPENDS:${PN} += "python3-core python3-asyncio" + +# Install to the custom path expected by oeqa/utils/qemurunner.py +# which imports "qmp.legacy" from ${libdir}/qemu-python/ +do_install:append:class-native() { + install -d ${D}${libdir}/qemu-python/qmp/ + cp -R --no-dereference --preserve=mode,links ${S}/qemu/qmp/* ${D}${libdir}/qemu-python/qmp/ +} + +FILES:${PN}:append:class-native = " ${libdir}/qemu-python" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/qemu/qemu-system-native_10.2.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_10.2.0.bb index 2e4f7328ad..62e8a0a83b 100644 --- a/meta/recipes-devtools/qemu/qemu-system-native_10.2.0.bb +++ b/meta/recipes-devtools/qemu/qemu-system-native_10.2.0.bb @@ -5,7 +5,7 @@ require qemu-native.inc # 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" +DEPENDS += "glib-2.0-native zlib-native pixman-native qemu-native python3-qemu-qmp-native" EXTRA_OECONF:append = " --target-list=${@get_qemu_system_target_list(d)}" @@ -25,9 +25,5 @@ do_install:append() { rm -rf ${D}${datadir}/qemu/dtb rm -rf ${D}${datadir}/icons/ rm -rf ${D}${includedir}/qemu-plugin.h - - # Install qmp.py to be used with testimage - install -d ${D}${libdir}/qemu-python/qmp/ - install -D ${S}/python/qemu/qmp/* ${D}${libdir}/qemu-python/qmp/ } From patchwork Thu Jun 4 11:05:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 89310 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79899CD6E57 for ; Thu, 4 Jun 2026 11:06:02 +0000 (UTC) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.8730.1780571152164444796 for ; Thu, 04 Jun 2026 04:05:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=goSu8qhU; spf=pass (domain: gmail.com, ip: 209.85.221.48, mailfrom: alex.kanavin@gmail.com) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-46013161068so279651f8f.2 for ; Thu, 04 Jun 2026 04:05:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780571150; x=1781175950; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=x0SruAOCR7PNfOBV1OfrHAenpvclXTLlh6oddOiQOac=; b=goSu8qhUo2vv2/ojEOTic6ukKcL+nBgF2C5FR4WdTFDChtz225hImOr4YQug/xlljq ZQvAoptkMdaHD1u/VEYq3L/eBVH/eTdHKI6/NKEIDRo/Id+its7z1coWNQVpmp8GFhLL cbwmn9zPZ6y7bqNe9oZGN71ID5bz24XCfxQHRvBWiuaDgD2SG0EpzjWwmilJ3QjJ5JKC BakVhdNG3hoJaSX3VaEEOfTm+Ip842ngLJwI0dDIer+CkW+zA8z5F+CuZtMXu0FHWXuN tck37svxLU86V2nnwbMC1x5jLvZk3Ip9IOMt/8AtPWWA6irdrujliQdmECqx3EtPR/hf z5Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780571150; x=1781175950; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=x0SruAOCR7PNfOBV1OfrHAenpvclXTLlh6oddOiQOac=; b=FWPMdjpku1RFPVK4D8vKllW98d6LCMV2bzf6fdy7LM1WPQwFUap1Rgdy/nM3a3U1/r Y7AYDIelQI/VOboWrYDXFUDHEp02ZdfQ2QPgR6I1IPdwbj+FxwTdBmAqDxWD4oRMth4K khdERanvqBR30El/LmF7xOVK1IKdXJ+fGubdIxT9mNBOQjkhg3ZFdh99qPv6MrJv77bO CmtJF7vfMQQZUUWzxPrkwB4tVWnB6BiqY9gErsEcGc8im/Wd/RW+RBllGvMF2kWgOroq 5Cht0J1qYWqc+c2v5r6ZY1+pGafYdflH6zzwlvoDKrUijPxIld4f5Q891kxUHWLzUu/X 2V7Q== X-Gm-Message-State: AOJu0YxLTSXm0rYbBk0FPuXxXcIr/1dp7AUvjjSuGUZytY5P7ARtwSsZ lPd5AJl572HGNUTVCATGZtKyVg6oSl+k/ylmG5G3QhvWkgZBEU5Sw10fCAK7PQ== X-Gm-Gg: Acq92OE/qa9LJTqbmli9bbcIar3R3g84cUgujWqxP0cZOVSr1eZm4Vowg/y3R3FSvxU JSEuwC0Ax0n8OsAomHYObYMF+7ym9E5mFr7WkNfaZd1nQ7uQqx55buhHVFo1I76eeH7ajsdR1v4 gcPZch53UBBCx6GBWgllZRlRZvKgruMER6EmW1/TwhYnV5q2T4SyRC1Fryi92XIsgta/ZUpknVj WwhBGXaBCtnhfQU7EzjGMlJQomXov8/7W48stR3qmsKSltxdKO6L1f1OHHrxxQ9p8YKVGQ+i5df 8kDRqy7CSF1lSNk1JK0Xgu5PFAlkObq7Ea3iuPfWlK0nZZrrdUlBWbR64VsUDnIRBYBRpPwgqWI jO2uH9hwa7HvX+/EGaSjChUBToMBGeWoF91Tgpky/TBKuMkwyfWa76qDng1FgbqgfPoCH1tkMn/ 9q6SQ9KRFffKuSqSihXv92B3sjgXu2Tom6oq+rZTMvO4/4Zn7Z7ZqtZfY8eHZY3d3KUbtY/w== X-Received: by 2002:a05:6000:46d6:b0:441:239e:2bb8 with SMTP id ffacd0b85a97d-46021787d84mr7963210f8f.7.1780571149969; Thu, 04 Jun 2026 04:05:49 -0700 (PDT) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f368e9fsm14946005f8f.37.2026.06.04.04.05.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 04:05:49 -0700 (PDT) From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin , Quan Sun Subject: [PATCH 2/4] qemu: upgrade 10.2.0 -> 11.0.0 Date: Thu, 4 Jun 2026 13:05:33 +0200 Message-ID: <20260604110545.1860309-2-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260604110545.1860309-1-alex.kanavin@gmail.com> References: <20260604110545.1860309-1-alex.kanavin@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Jun 2026 11:06:02 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238125 From: Alexander Kanavin Upgrade QEMU to version 11.0.0. Main changes: - QEMU 11.0.0 has officially dropped all support for 32-bit host systems. This includes the ability to build the system emulator (softmmu) on any 32-bit host architecture. Add COMPATIBLE_HOST for class-target and class-nativesdk to restrict builds to 64-bit architectures. Fix SDK build failure when SDKMACHINE is 32-bit. Note: QEMU 11.0.0 still supports emulating 32-bit guest architectures (such as qemu-system-i386 or qemu-system-arm) as long as they are running on a 64-bit host. - qemu-targets.inc: skip linux-user targets when HOST_ARCH is not in the set of architectures supported by QEMU 11.0.0's linux-user mode (64-bit only: aarch64, loongarch64, mips64, ppc64, riscv64, s390x, sparc64, x86_64). - Add --cpu=${TUNE_ARCH} to EXTRA_OECONF for class-target, and add --cpu=${SDK_ARCH} to nativesdk configure options to fix build failure. QEMU 11's configure script falls back to 'uname -m' (x86_64) when it cannot detect the host CPU. - Add 0012-meson-fix-close_range-detection-on-older-glibc.patch: the meson has_function('close_range') check succeeds at link time on hosts with kernel >= 5.9 even when glibc < 2.34 does not declare the function, causing implicit declaration errors. Add a prefix include so the check only succeeds when the header declares close_range(). - Add 0013-hw-scsi-vhost-scsi-include-standard-headers-for-vhost-worker-structs.patch: on build hosts with kernel headers < 6.0, vhost-scsi.c fails to compile due to missing struct vhost_vring_worker/vhost_worker_state. Include QEMU's bundled standard-headers before the system header, matching the pattern already used in hw/virtio/vhost-backend.c. - Drop fix-strerrorname_np.patch (fixed upstream). Drop 0001-linux-user-elfload.c-Correction-to-HWCAP2-accessor.patch (fixed upstream). Drop 0001-accel-tcg-Fix-iotlb_to_section-for-different-Address.patch (fixed upstream). AI-Generated: kiro-cli Signed-off-by: Quan Sun Signed-off-by: Alexander Kanavin --- .../nativesdk-packagegroup-sdk-host.bb | 3 +- .../qemu/nativesdk-qemu-helper_1.0.bb | 2 + ...native_10.2.0.bb => qemu-native_11.0.0.bb} | 1 - ...10.2.0.bb => qemu-system-native_11.0.0.bb} | 1 - meta/recipes-devtools/qemu/qemu-targets.inc | 4 + meta/recipes-devtools/qemu/qemu.inc | 26 +- ...tlb_to_section-for-different-Address.patch | 274 ------------------ ...load.c-Correction-to-HWCAP2-accessor.patch | 42 --- ...n-environment-space-to-boot-loader-q.patch | 8 +- .../0002-apic-fixup-fallthrough-to-PIC.patch | 6 +- ...mu-Do-not-include-file-if-not-exists.patch | 6 +- ...er-space-mmap-tweaks-to-address-musl.patch | 24 +- .../qemu/0006-qemu-Determinism-fixes.patch | 4 +- ...d-use-relative-path-to-refer-to-file.patch | 6 +- ...and-MAP_SHARED_VALIDATE-on-needed-li.patch | 2 +- ...gure-lookup-meson-exutable-from-PATH.patch | 10 +- ...and-the-python-venv-aren-t-used-for-.patch | 10 +- ...close_range-detection-on-older-glibc.patch | 36 +++ ...ard-headers-for-vhost-worker-structs.patch | 35 +++ .../qemu/qemu/fix-strerrorname_np.patch | 35 --- .../qemu/{qemu_10.2.0.bb => qemu_11.0.0.bb} | 0 21 files changed, 127 insertions(+), 408 deletions(-) rename meta/recipes-devtools/qemu/{qemu-native_10.2.0.bb => qemu-native_11.0.0.bb} (99%) rename meta/recipes-devtools/qemu/{qemu-system-native_10.2.0.bb => qemu-system-native_11.0.0.bb} (99%) delete mode 100644 meta/recipes-devtools/qemu/qemu/0001-accel-tcg-Fix-iotlb_to_section-for-different-Address.patch delete mode 100644 meta/recipes-devtools/qemu/qemu/0001-linux-user-elfload.c-Correction-to-HWCAP2-accessor.patch create mode 100644 meta/recipes-devtools/qemu/qemu/0012-meson-fix-close_range-detection-on-older-glibc.patch create mode 100644 meta/recipes-devtools/qemu/qemu/0013-hw-scsi-vhost-scsi-include-standard-headers-for-vhost-worker-structs.patch delete mode 100644 meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch rename meta/recipes-devtools/qemu/{qemu_10.2.0.bb => qemu_11.0.0.bb} (100%) diff --git a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb index c1d3c25060..51e48f250b 100644 --- a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb +++ b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb @@ -13,8 +13,7 @@ PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" # build some recent linux kernels (5.14+) for arm RDEPENDS:${PN} = "\ nativesdk-pkgconfig \ - nativesdk-qemu \ - nativesdk-qemu-helper \ + ${@'nativesdk-qemu nativesdk-qemu-helper' if d.getVar('SDK_ARCH') in ['x86_64', 'aarch64', 'ppc64', 'ppc64le', 'riscv64', 'loongarch64', 'mips64', 's390x', 'sparc64'] else ''} \ nativesdk-pseudo \ nativesdk-unfs3 \ nativesdk-opkg \ diff --git a/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb b/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb index 35735c1e15..60fb635600 100644 --- a/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb +++ b/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb @@ -1,5 +1,7 @@ SUMMARY = "Qemu helper scripts" LICENSE = "GPL-2.0-only" +# QEMU 11.0.0+ requires a 64-bit host architecture +COMPATIBLE_HOST = "(aarch64|x86_64|ppc64|riscv64|loongarch64|mips64|s390x|sparc64).*-linux" RDEPENDS:${PN} = "nativesdk-qemu nativesdk-unfs3 nativesdk-pseudo \ nativesdk-python3-shell nativesdk-python3-fcntl nativesdk-python3-logging \ " diff --git a/meta/recipes-devtools/qemu/qemu-native_10.2.0.bb b/meta/recipes-devtools/qemu/qemu-native_11.0.0.bb similarity index 99% rename from meta/recipes-devtools/qemu/qemu-native_10.2.0.bb rename to meta/recipes-devtools/qemu/qemu-native_11.0.0.bb index 26fa84c180..a77953529b 100644 --- a/meta/recipes-devtools/qemu/qemu-native_10.2.0.bb +++ b/meta/recipes-devtools/qemu/qemu-native_11.0.0.bb @@ -7,4 +7,3 @@ require qemu-native.inc EXTRA_OECONF:append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-install-blobs --disable-guest-agent" PACKAGECONFIG ??= "pie" - diff --git a/meta/recipes-devtools/qemu/qemu-system-native_10.2.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb similarity index 99% rename from meta/recipes-devtools/qemu/qemu-system-native_10.2.0.bb rename to meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb index 62e8a0a83b..7947499c5f 100644 --- a/meta/recipes-devtools/qemu/qemu-system-native_10.2.0.bb +++ b/meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb @@ -26,4 +26,3 @@ do_install:append() { rm -rf ${D}${datadir}/icons/ rm -rf ${D}${includedir}/qemu-plugin.h } - diff --git a/meta/recipes-devtools/qemu/qemu-targets.inc b/meta/recipes-devtools/qemu/qemu-targets.inc index 50e5eb6796..937ef1a911 100644 --- a/meta/recipes-devtools/qemu/qemu-targets.inc +++ b/meta/recipes-devtools/qemu/qemu-targets.inc @@ -25,6 +25,10 @@ def get_qemu_target_list(d): archs.remove(arch) if 'linux' not in tos: return softmmuonly + ''.join([arch + "-softmmu" + "," for arch in archs]).rstrip(',') + # QEMU 11.0.0+ only supports linux-user on 64-bit host architectures + linux_user_hosts = ['aarch64', 'loongarch64', 'mips64', 'ppc64', 'riscv64', 's390x', 'sparc64', 'x86_64'] + if tarch not in linux_user_hosts: + return softmmuonly + ''.join([arch + "-softmmu" + "," for arch in archs]).rstrip(',') return softmmuonly + linuxuseronly + ''.join([arch + "-linux-user" + "," + arch + "-softmmu" + "," for arch in archs]).rstrip(',') def get_qemu_usermode_target_list(d): diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 5f30416a48..f61f43de4b 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -4,6 +4,7 @@ machine's processor through dynamic binary translation and provides a set \ of different hardware and device models for the machine, enabling it to run \ a variety of guest operating systems" HOMEPAGE = "http://qemu.org" +BUGTRACKER = "https://gitlab.com/qemu-project/qemu/-/issues" LICENSE = "GPL-2.0-only & LGPL-2.1-only" DEPENDS += "bison-native meson-native ninja-native" @@ -22,7 +23,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a3b50d8b88dcc0eb3d7d39b760b9e821 \ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://powerpc_rom.bin \ file://run-ptest \ - file://fix-strerrorname_np.patch \ file://0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch \ file://0002-apic-fixup-fallthrough-to-PIC.patch \ file://0004-qemu-Do-not-include-file-if-not-exists.patch \ @@ -32,8 +32,8 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ file://0010-configure-lookup-meson-exutable-from-PATH.patch \ file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \ - file://0001-linux-user-elfload.c-Correction-to-HWCAP2-accessor.patch \ - file://0001-accel-tcg-Fix-iotlb_to_section-for-different-Address.patch \ + file://0012-meson-fix-close_range-detection-on-older-glibc.patch \ + file://0013-hw-scsi-vhost-scsi-include-standard-headers-for-vhost-worker-structs.patch \ file://qemu-guest-agent.init \ file://qemu-guest-agent.udev \ " @@ -41,7 +41,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ UPSTREAM_CHECK_URI = "https://www.qemu.org" UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" -SRC_URI[sha256sum] = "9e30ad1b8b9f7b4463001582d1ab297f39cfccea5d08540c0ca6d6672785883a" +SRC_URI[sha256sum] = "c04ca36012653f32d11c674d370cf52a710e7d3f18c2d8b63e4932052a4854d6" CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default." @@ -61,6 +61,10 @@ COMPATIBLE_HOST:mipsarchn32 = "null" COMPATIBLE_HOST:mipsarchn64 = "null" COMPATIBLE_HOST:riscv32 = "null" +# QEMU 11.0.0+ requires a 64-bit host architecture for emulator builds +COMPATIBLE_HOST:class-target = "(aarch64|x86_64|ppc64|riscv64|loongarch64|mips64|s390x|sparc64).*-linux" +COMPATIBLE_HOST:class-nativesdk = "(aarch64|x86_64|ppc64|riscv64|loongarch64|mips64|s390x|sparc64).*-linux" + # Per https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03873.html # upstream states qemu doesn't work without optimization DEBUG_BUILD = "0" @@ -75,7 +79,7 @@ do_install_ptest() { find ${D}${PTEST_PATH}/tests -type f -name "*.[Sshcodp]" | xargs -i rm -rf {} # Don't check the file genreated by configure - sed -i -e "1s,#!/usr/bin/bash,#!${base_bindir}/bash," ${D}${PTEST_PATH}/tests/data/acpi/disassemle-aml.sh + sed -i -e "1s,#!/usr/bin/bash,#!${base_bindir}/bash," ${D}${PTEST_PATH}/tests/data/acpi/disassemble-aml.sh # Strip the paths from the QEMU variable, we can use PATH makfiles=$(find ${D}${PTEST_PATH} -name "*.mak") @@ -119,19 +123,17 @@ EXTRA_OECONF = " \ ${PACKAGECONFIG_CONFARGS} \ " -EXTRA_OECONF:append:class-target = " --cross-prefix=${HOST_PREFIX}" -EXTRA_OECONF:append:class-nativesdk = " --cross-prefix=${HOST_PREFIX}" +EXTRA_OECONF:append:class-target = " --cross-prefix=${HOST_PREFIX} --cpu=${TUNE_ARCH}" +EXTRA_OECONF:append:class-nativesdk = " --cross-prefix=${HOST_PREFIX} --cpu=${@d.getVar('SDK_ARCH').replace('i686', 'i386')}" B = "${WORKDIR}/build" #EXTRA_OECONF:append = " --python=${HOSTTOOLS_DIR}/python3" do_configure:prepend:class-native() { - # Append build host pkg-config paths for native target since the host may provide sdl - BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "") - if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then - export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$BHOST_PKGCONFIG_PATH - fi + # Avoid leaking host pkg-config paths which may find incompatible + # old system libraries (e.g. glib-2.0, fixesproto, gtk+-3.0) + export PKG_CONFIG_PATH="${STAGING_LIBDIR_NATIVE}/pkgconfig:${STAGING_DATADIR_NATIVE}/pkgconfig" } do_configure() { diff --git a/meta/recipes-devtools/qemu/qemu/0001-accel-tcg-Fix-iotlb_to_section-for-different-Address.patch b/meta/recipes-devtools/qemu/qemu/0001-accel-tcg-Fix-iotlb_to_section-for-different-Address.patch deleted file mode 100644 index d19f872fc3..0000000000 --- a/meta/recipes-devtools/qemu/qemu/0001-accel-tcg-Fix-iotlb_to_section-for-different-Address.patch +++ /dev/null @@ -1,274 +0,0 @@ -From 858e6bb252e075e09cca6e78299151d3af0bf5fb Mon Sep 17 00:00:00 2001 -From: Quan Sun -Date: Tue, 28 Apr 2026 14:56:36 -0400 -Subject: [PATCH] accel/tcg: Fix iotlb_to_section() for different AddressSpace -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -'CPUTLBEntryFull.xlat_section' stores section_index in last 12 bits to -find the correct section when CPU access the IO region over the IOTLB. -However, section_index is only unique inside single AddressSpace. If -address space translation is over IOMMUMemoryRegion, it could return -section from other AddressSpace. 'iotlb_to_section()' API only finds the -sections from CPU's AddressSpace so that it couldn't find section in -other AddressSpace. Thus, using 'iotlb_to_section()' API will find the -wrong section and QEMU will have wrong load/store access. - -To fix this bug of iotlb_to_section(), store complete MemoryRegionSection -pointer in CPUTLBEntryFull to replace the section_index in xlat_section. -Rename 'xlat_section' to 'xlat_offset' as we remove last 12 bits -section_index inside. Also, since we directly use section pointer in the -CPUTLBEntryFull (full->section), we can remove the unused functions: -iotlb_to_section(), memory_region_section_get_iotlb(). - -This bug occurs only when -(1) IOMMUMemoryRegion is in the path of CPU access. -(2) IOMMUMemoryRegion returns different target_as and the section is in -the IO region. - -This patch incorporates prerequisite changes from upstream commit -94c6e9cf0440 ("accel/tcg: Send the CPUTLBEntryFull struct into -io_prepare()") needed for the fix to apply cleanly. - -Upstream-Status: Backport [https://gitlab.com/qemu-project/qemu/-/commit/854cd16e318eed12de2995014b28d9f374c64bf7] - -Signed-off-by: Jim Shu -Reviewed-by: Philippe Mathieu-Daudé -Tested-by: Mark Burton -Reviewed-by: Pierrick Bouvier -Signed-off-by: Philippe Mathieu-Daudé -Signed-off-by: Quan Sun ---- - accel/tcg/cputlb.c | 32 +++++++++++++++----------------- - include/accel/tcg/iommu.h | 15 --------------- - include/exec/cputlb.h | 4 ++-- - include/hw/core/cpu.h | 17 +++++++++-------- - system/physmem.c | 25 ------------------------- - 5 files changed, 26 insertions(+), 67 deletions(-) - -diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c -index fd1606c85..fa0f4d8b3 100644 ---- a/accel/tcg/cputlb.c -+++ b/accel/tcg/cputlb.c -@@ -1089,7 +1089,7 @@ void tlb_set_page_full(CPUState *cpu, int mmu_idx, - } - } else { - /* I/O or ROMD */ -- iotlb = memory_region_section_get_iotlb(cpu, section) + xlat; -+ iotlb = xlat; - /* - * Writes to romd devices must go through MMIO to enable write. - * Reads to romd devices go through the ram_ptr found above, -@@ -1140,10 +1140,9 @@ void tlb_set_page_full(CPUState *cpu, int mmu_idx, - /* - * When memory region is ram, iotlb contains a TARGET_PAGE_BITS - * aligned ram_addr_t of the page base of the target RAM. -- * Otherwise, iotlb contains -- * - a physical section number in the lower TARGET_PAGE_BITS -- * - the offset within section->mr of the page base (I/O, ROMD) with the -- * TARGET_PAGE_BITS masked off. -+ * Otherwise, iotlb contains a TARGET_PAGE_BITS aligned -+ * offset within section->mr of the page base (I/O, ROMD) -+ * - * We subtract addr_page (which is page aligned and thus won't - * disturb the low bits) to give an offset which can be added to the - * (non-page-aligned) vaddr of the eventual memory access to get -@@ -1153,7 +1152,8 @@ void tlb_set_page_full(CPUState *cpu, int mmu_idx, - */ - desc->fulltlb[index] = *full; - full = &desc->fulltlb[index]; -- full->xlat_section = iotlb - addr_page; -+ full->xlat_offset = iotlb - addr_page; -+ full->section = section; - full->phys_addr = paddr_page; - - /* Now calculate the new entry */ -@@ -1269,14 +1269,14 @@ static inline void cpu_unaligned_access(CPUState *cpu, vaddr addr, - } - - static MemoryRegionSection * --io_prepare(hwaddr *out_offset, CPUState *cpu, hwaddr xlat, -+io_prepare(hwaddr *out_offset, CPUState *cpu, CPUTLBEntryFull *full, - MemTxAttrs attrs, vaddr addr, uintptr_t retaddr) - { - MemoryRegionSection *section; - hwaddr mr_offset; - -- section = iotlb_to_section(cpu, xlat, attrs); -- mr_offset = (xlat & TARGET_PAGE_MASK) + addr; -+ section = full->section; -+ mr_offset = full->xlat_offset + addr; - cpu->mem_io_pc = retaddr; - if (!cpu->neg.can_do_io) { - cpu_io_recompile(cpu, retaddr); -@@ -1335,7 +1335,7 @@ static bool victim_tlb_hit(CPUState *cpu, size_t mmu_idx, size_t index, - static void notdirty_write(CPUState *cpu, vaddr mem_vaddr, unsigned size, - CPUTLBEntryFull *full, uintptr_t retaddr) - { -- ram_addr_t ram_addr = mem_vaddr + full->xlat_section; -+ ram_addr_t ram_addr = mem_vaddr + full->xlat_offset; - - trace_memory_notdirty_write_access(mem_vaddr, ram_addr, size); - -@@ -1592,9 +1592,7 @@ bool tlb_plugin_lookup(CPUState *cpu, vaddr addr, int mmu_idx, - - /* We must have an iotlb entry for MMIO */ - if (tlb_addr & TLB_MMIO) { -- MemoryRegionSection *section = -- iotlb_to_section(cpu, full->xlat_section & ~TARGET_PAGE_MASK, -- full->attrs); -+ MemoryRegionSection *section = full->section; - data->is_io = true; - data->mr = section->mr; - } else { -@@ -1980,7 +1978,7 @@ static uint64_t do_ld_mmio_beN(CPUState *cpu, CPUTLBEntryFull *full, - tcg_debug_assert(size > 0 && size <= 8); - - attrs = full->attrs; -- section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra); -+ section = io_prepare(&mr_offset, cpu, full, attrs, addr, ra); - mr = section->mr; - - BQL_LOCK_GUARD(); -@@ -2001,7 +1999,7 @@ static Int128 do_ld16_mmio_beN(CPUState *cpu, CPUTLBEntryFull *full, - tcg_debug_assert(size > 8 && size <= 16); - - attrs = full->attrs; -- section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra); -+ section = io_prepare(&mr_offset, cpu, full, attrs, addr, ra); - mr = section->mr; - - BQL_LOCK_GUARD(); -@@ -2521,7 +2519,7 @@ static uint64_t do_st_mmio_leN(CPUState *cpu, CPUTLBEntryFull *full, - tcg_debug_assert(size > 0 && size <= 8); - - attrs = full->attrs; -- section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra); -+ section = io_prepare(&mr_offset, cpu, full, attrs, addr, ra); - mr = section->mr; - - BQL_LOCK_GUARD(); -@@ -2541,7 +2539,7 @@ static uint64_t do_st16_mmio_leN(CPUState *cpu, CPUTLBEntryFull *full, - tcg_debug_assert(size > 8 && size <= 16); - - attrs = full->attrs; -- section = io_prepare(&mr_offset, cpu, full->xlat_section, attrs, addr, ra); -+ section = io_prepare(&mr_offset, cpu, full, attrs, addr, ra); - mr = section->mr; - - BQL_LOCK_GUARD(); -diff --git a/include/accel/tcg/iommu.h b/include/accel/tcg/iommu.h -index 90cfd6c0e..547f8ea0e 100644 ---- a/include/accel/tcg/iommu.h -+++ b/include/accel/tcg/iommu.h -@@ -14,18 +14,6 @@ - #include "exec/hwaddr.h" - #include "exec/memattrs.h" - --/** -- * iotlb_to_section: -- * @cpu: CPU performing the access -- * @index: TCG CPU IOTLB entry -- * -- * Given a TCG CPU IOTLB entry, return the MemoryRegionSection that -- * it refers to. @index will have been initially created and returned -- * by memory_region_section_get_iotlb(). -- */ --MemoryRegionSection *iotlb_to_section(CPUState *cpu, -- hwaddr index, MemTxAttrs attrs); -- - MemoryRegionSection *address_space_translate_for_iotlb(CPUState *cpu, - int asidx, - hwaddr addr, -@@ -34,8 +22,5 @@ MemoryRegionSection *address_space_translate_for_iotlb(CPUState *cpu, - MemTxAttrs attrs, - int *prot); - --hwaddr memory_region_section_get_iotlb(CPUState *cpu, -- MemoryRegionSection *section); -- - #endif - -diff --git a/include/exec/cputlb.h b/include/exec/cputlb.h -index 9bec0e789..16f866990 100644 ---- a/include/exec/cputlb.h -+++ b/include/exec/cputlb.h -@@ -43,8 +43,8 @@ void tlb_reset_dirty_range_all(ram_addr_t start, ram_addr_t length); - * @full: the details of the tlb entry - * - * Add an entry to @cpu tlb index @mmu_idx. All of the fields of -- * @full must be filled, except for xlat_section, and constitute -- * the complete description of the translated page. -+ * @full must be filled, except for xlat_offset & section, and -+ * constitute the complete description of the translated page. - * - * This is generally called by the target tlb_fill function after - * having performed a successful page table walk to find the physical -diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h -index 961505177..a3db3f66f 100644 ---- a/include/hw/core/cpu.h -+++ b/include/hw/core/cpu.h -@@ -214,15 +214,16 @@ typedef uint32_t MMUIdxMap; - */ - struct CPUTLBEntryFull { - /* -- * @xlat_section contains: -- * - in the lower TARGET_PAGE_BITS, a physical section number -- * - with the lower TARGET_PAGE_BITS masked off, an offset which -- * must be added to the virtual address to obtain: -- * + the ram_addr_t of the target RAM (if the physical section -- * number is PHYS_SECTION_NOTDIRTY or PHYS_SECTION_ROM) -- * + the offset within the target MemoryRegion (otherwise) -+ * @xlat_offset: TARGET_PAGE_BITS aligned offset which must be added to -+ * the virtual address to obtain: -+ * + the ram_addr_t of the target RAM (if the physical section -+ * number is PHYS_SECTION_NOTDIRTY or PHYS_SECTION_ROM) -+ * + the offset within the target MemoryRegion (otherwise) - */ -- hwaddr xlat_section; -+ hwaddr xlat_offset; -+ -+ /* @section contains physical section. */ -+ MemoryRegionSection *section; - - /* - * @phys_addr contains the physical address in the address space -diff --git a/system/physmem.c b/system/physmem.c -index c9869e404..a21e7ca64 100644 ---- a/system/physmem.c -+++ b/system/physmem.c -@@ -748,31 +748,6 @@ translate_fail: - return &d->map.sections[PHYS_SECTION_UNASSIGNED]; - } - --MemoryRegionSection *iotlb_to_section(CPUState *cpu, -- hwaddr index, MemTxAttrs attrs) --{ -- int asidx = cpu_asidx_from_attrs(cpu, attrs); -- CPUAddressSpace *cpuas = &cpu->cpu_ases[asidx]; -- AddressSpaceDispatch *d = address_space_to_dispatch(cpuas->as); -- 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 ret; --} -- --/* Called from RCU critical section */ --hwaddr memory_region_section_get_iotlb(CPUState *cpu, -- MemoryRegionSection *section) --{ -- AddressSpaceDispatch *d = flatview_to_dispatch(section->fv); -- return section - d->map.sections; --} -- - #endif /* CONFIG_TCG */ - - void cpu_address_space_init(CPUState *cpu, int asidx, --- -2.43.0 diff --git a/meta/recipes-devtools/qemu/qemu/0001-linux-user-elfload.c-Correction-to-HWCAP2-accessor.patch b/meta/recipes-devtools/qemu/qemu/0001-linux-user-elfload.c-Correction-to-HWCAP2-accessor.patch deleted file mode 100644 index 47d6f41385..0000000000 --- a/meta/recipes-devtools/qemu/qemu/0001-linux-user-elfload.c-Correction-to-HWCAP2-accessor.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c333f9c4ee212297f3b9a8a6ef62396a63c48e61 Mon Sep 17 00:00:00 2001 -From: Jim MacArthur -Date: Tue, 6 Jan 2026 15:40:48 +0000 -Subject: [PATCH] linux-user/elfload.c: Correction to HWCAP2 accessor -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -get_elf_hwcap was used when get_elf_hwcap2 should have been. - -Cc: qemu-stable@nongnu.org -Fixes: fcac98d0ba8b ("linux-user: Remove ELF_HWCAP2") -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3259 -Signed-off-by: Jim MacArthur -Reviewed-by: Richard Henderson -Reviewed-by: Philippe Mathieu-Daudé -Signed-off-by: Richard Henderson -Message-ID: <20260106-fix-hwcap2-sve2-v1-1-1d70dff63370@linaro.org> - -Upstream-Status: Backport [https://gitlab.com/qemu-project/qemu/-/commit/c333f9c4ee212297f3b9a8a6ef62396a63c48e61] - -Signed-off-by: Chen Qi ---- - linux-user/elfload.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/linux-user/elfload.c b/linux-user/elfload.c -index 0002d5be2f..35471c0c9a 100644 ---- a/linux-user/elfload.c -+++ b/linux-user/elfload.c -@@ -708,7 +708,7 @@ static abi_ulong create_elf_tables(abi_ulong p, int argc, int envc, - NEW_AUX_ENT(AT_EXECFN, info->file_string); - - if (HAVE_ELF_HWCAP2) { -- NEW_AUX_ENT(AT_HWCAP2, get_elf_hwcap(thread_cpu)); -+ NEW_AUX_ENT(AT_HWCAP2, get_elf_hwcap2(thread_cpu)); - } - if (u_base_platform) { - NEW_AUX_ENT(AT_BASE_PLATFORM, u_base_platform); --- -2.34.1 - diff --git a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch index bc8dace013..40b08cd247 100644 --- a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch +++ b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch @@ -1,10 +1,10 @@ -From f2d9bc614f7edf66412209aba78aa086e65dc75e Mon Sep 17 00:00:00 2001 +From a84184c98cf296954e0c757604e969b8565eb474 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Fri, 28 Mar 2014 17:42:43 +0800 Subject: [PATCH] qemu: Add addition environment space to boot loader qemu-system-mips -Upstream-Status: Inappropriate - OE uses deep paths +Upstream-Status: Inappropriate [OE uses deep paths] If you create a project with very long directory names like 128 characters deep and use NFS, the kernel arguments will be truncated. The kernel will @@ -18,10 +18,10 @@ Signed-off-by: Roy Li 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/mips/malta.c b/hw/mips/malta.c -index cbdbb2105..62681fdae 100644 +index 812ff64d8..daf929943 100644 --- a/hw/mips/malta.c +++ b/hw/mips/malta.c -@@ -65,7 +65,7 @@ +@@ -66,7 +66,7 @@ #define ENVP_PADDR 0x2000 #define ENVP_VADDR cpu_mips_phys_to_kseg0(NULL, ENVP_PADDR) #define ENVP_NB_ENTRIES 16 diff --git a/meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch b/meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch index bfc85f4842..ad00f24482 100644 --- a/meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch +++ b/meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch @@ -1,4 +1,4 @@ -From 945af9ecc80653955cbdbb7d3e28dce61795b251 Mon Sep 17 00:00:00 2001 +From 0a688e763d91c2e0e11cbe960f405442a9f35417 Mon Sep 17 00:00:00 2001 From: Mark Asselstine Date: Tue, 26 Feb 2013 11:43:28 -0500 Subject: [PATCH] apic: fixup fallthrough to PIC @@ -33,10 +33,10 @@ Signed-off-by: Kai Kang 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/intc/apic.c b/hw/intc/apic.c -index aad253a..212b01f 100644 +index 8766ed00b..581fc6deb 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c -@@ -740,7 +740,7 @@ int apic_accept_pic_intr(APICCommonState *s) +@@ -741,7 +741,7 @@ int apic_accept_pic_intr(APICCommonState *s) { uint32_t lvt0; diff --git a/meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch b/meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch index 2e738abaa3..4b6ac54445 100644 --- a/meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch +++ b/meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch @@ -1,4 +1,4 @@ -From f8c1614b204c1d64af906dc70dbf4a1534eb6b38 Mon Sep 17 00:00:00 2001 +From b38315a5a6f9fc033c72bb94ff258bb4b1ac8dd3 Mon Sep 17 00:00:00 2001 From: Oleksiy Obitotskyy Date: Wed, 25 Mar 2020 21:21:35 +0200 Subject: [PATCH] qemu: Do not include file if not exists @@ -16,10 +16,10 @@ Signed-off-by: Sakib Sajal 1 file changed, 2 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index c236b2834..2a3527a87 100644 +index f4b74ad35..3da51ea83 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -119,7 +119,9 @@ +@@ -117,7 +117,9 @@ #include #include #include diff --git a/meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch index ffbbb1ab32..59236999f9 100644 --- a/meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch +++ b/meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch @@ -1,4 +1,4 @@ -From 3621615790270449bf9c8a0777e8ef28eb762bf9 Mon Sep 17 00:00:00 2001 +From e4abb937ba5a6a476d31886e71e67006df22a664 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 8 Jan 2021 17:27:06 +0000 Subject: [PATCH] qemu: Add some user space mmap tweaks to address musl 32 bit @@ -16,32 +16,24 @@ A better return value for the other cases of invalid addresses is EINVAL rather than ENOMEM so adjust the other part of the test to this. Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01355.html] -Signed-off-by: Richard Purdie --- - linux-user/mmap.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) + linux-user/mmap.c | 5 +++++ + 1 file changed, 5 insertions(+) diff --git a/linux-user/mmap.c b/linux-user/mmap.c -index 002e1e668..912839dec 100644 +index b635b6a21..a5a617516 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c -@@ -1109,12 +1109,16 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, +@@ -1113,6 +1113,11 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, int prot; void *host_addr; -- if (!guest_range_valid_untagged(old_addr, old_size) || -- ((flags & MREMAP_FIXED) && + if (!guest_range_valid_untagged(old_addr, old_size)) { + errno = EFAULT; + return -1; + } -+ -+ if (((flags & MREMAP_FIXED) && ++ + if (((flags & MREMAP_FIXED) && !guest_range_valid_untagged(new_addr, new_size)) || ((flags & MREMAP_MAYMOVE) == 0 && - !guest_range_valid_untagged(old_addr, new_size))) { -- errno = ENOMEM; -+ errno = EINVAL; - return -1; - } - diff --git a/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch b/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch index 5b24c18916..0d7974fcdc 100644 --- a/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch +++ b/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch @@ -1,4 +1,4 @@ -From 8b28a9376074067bc2d84d4f77d5c7a42433b31b Mon Sep 17 00:00:00 2001 +From e891928d2248e186c65979cf5a2ba0cff9d00824 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 1 Mar 2021 13:00:47 +0000 Subject: [PATCH] qemu: Determinism fixes @@ -11,6 +11,8 @@ meson to pass relative paths but we can fix that in the script. Upstream-Status: Pending [some version of all/part of this may be accepted] RP 2021/3/1 + +Signed-off-by: Richard Purdie --- scripts/decodetree.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch b/meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch index a58c936d06..275c500894 100644 --- a/meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch +++ b/meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch @@ -1,4 +1,4 @@ -From 097b75ad8310143decab92f6d1744144e7a4809f Mon Sep 17 00:00:00 2001 +From ac9a866ac807cb1542f26df07b4aad3a06342a99 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Thu, 14 Jan 2021 06:33:04 +0000 Subject: [PATCH] tests/meson.build: use relative path to refer to files @@ -17,10 +17,10 @@ Signed-off-by: Changqing Li 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/meson.build b/tests/unit/meson.build -index d5248ae51..2c581f055 100644 +index 41e8b06c3..ce5df4957 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build -@@ -127,17 +127,17 @@ endif +@@ -124,17 +124,17 @@ endif if have_system tests += { diff --git a/meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch b/meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch index af0eafb65f..f6e563ad80 100644 --- a/meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch +++ b/meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch @@ -1,4 +1,4 @@ -From 9d5deb767523ea0d1aeecb9960244c702530acad Mon Sep 17 00:00:00 2001 +From c0bfd2c5556afcf4413c81b3fda54a62f2bdd8c8 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 21 Mar 2022 10:09:38 -0700 Subject: [PATCH] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux diff --git a/meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch b/meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch index db88766cf6..430b1aa509 100644 --- a/meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch +++ b/meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch @@ -1,4 +1,4 @@ -From aaec67c133dddda7204d23964732b4b788cbc9ce Mon Sep 17 00:00:00 2001 +From e357ac91b04f733148defe8c133ae8b2085a9a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= Date: Wed, 22 May 2024 14:02:55 +0200 Subject: [PATCH] configure: lookup meson exutable from PATH @@ -13,10 +13,10 @@ Signed-off-by: Kai Kang 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/configure b/configure -index 82cace1..83bbda9 100755 +index eea903067..217af781f 100755 --- a/configure +++ b/configure -@@ -993,10 +993,7 @@ get_pwd() { +@@ -981,10 +981,7 @@ get_pwd() { fi } @@ -26,5 +26,5 @@ index 82cace1..83bbda9 100755 -fi +meson=`which meson` - # Conditionally ensure Sphinx is installed. - + # On Haiku, meson might show up in a "non-packaged" subfolder instead, see + # https://github.com/haiku/haiku/blob/r1beta5/docs/user/storage/storageintro.dox diff --git a/meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch b/meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch index d04596d313..040931a941 100644 --- a/meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch +++ b/meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch @@ -1,4 +1,4 @@ -From c9f174b2f7b43e59e91f88c75c8b3e2ee30bfcdd Mon Sep 17 00:00:00 2001 +From 70fa360e5bf72b28960747da47d9b85e650ad312 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 22 May 2024 13:58:23 +0200 Subject: [PATCH] qemu: Ensure pip and the python venv aren't used for meson @@ -29,10 +29,10 @@ Signed-off-by: Richard Purdie 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure -index 84e429409..1a9585e8e 100755 +index 217af781f..cf8666337 100755 --- a/configure +++ b/configure -@@ -981,14 +981,14 @@ python="$(command -v "$python")" +@@ -951,14 +951,14 @@ python="$(command -v "$python")" echo "python determined to be '$python'" echo "python version: $($python --version)" @@ -47,5 +47,5 @@ index 84e429409..1a9585e8e 100755 -mkvenv="$python ${source_path}/python/scripts/mkvenv.py" +mkvenv=true - # Finish preparing the virtual environment using vendored .whl files - + # Finish preparing the virtual environment using vendored .whl files. + # Even if PyPI is allowed, we disallow it here to force installation diff --git a/meta/recipes-devtools/qemu/qemu/0012-meson-fix-close_range-detection-on-older-glibc.patch b/meta/recipes-devtools/qemu/qemu/0012-meson-fix-close_range-detection-on-older-glibc.patch new file mode 100644 index 0000000000..3dfc70dad6 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu/0012-meson-fix-close_range-detection-on-older-glibc.patch @@ -0,0 +1,36 @@ +From: Quan Sun +Subject: [PATCH] meson: fix close_range detection on older glibc + +The has_function('close_range') check succeeds at link time on hosts +with kernel >= 5.9 even when glibc does not declare the function +(glibc < 2.34, e.g. AlmaLinux 8 / CentOS 8 with glibc 2.28). This +causes CONFIG_CLOSE_RANGE to be set, but compilation then fails with: + + error: implicit declaration of function 'close_range' [-Wimplicit-function-declaration] + +Fix by adding a prefix that includes , so the meson check +only succeeds when the C library actually declares close_range() in +its headers. When the check fails, the existing fallback path in +oslib-posix.c (which returns false and falls through to the /proc +based fd closing) is used instead. + +Upstream-Status: Submitted [https://lore.kernel.org/qemu-devel/20260522201850.1342167-1-Quan.Sun@windriver.com/] + +Signed-off-by: Quan Sun +--- + meson.build | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index cf634dfcd8..a1b2c3d4e5 100644 +--- a/meson.build ++++ b/meson.build +@@ -2632,6 +2632,7 @@ endif + + # has_function +-config_host_data.set('CONFIG_CLOSE_RANGE', cc.has_function('close_range')) ++config_host_data.set('CONFIG_CLOSE_RANGE', ++ cc.has_function('close_range', prefix: '#include ')) + config_host_data.set('CONFIG_ACCEPT4', cc.has_function('accept4')) + config_host_data.set('CONFIG_CLOCK_ADJTIME', cc.has_function('clock_adjtime')) + config_host_data.set('CONFIG_DUP3', cc.has_function('dup3')) diff --git a/meta/recipes-devtools/qemu/qemu/0013-hw-scsi-vhost-scsi-include-standard-headers-for-vhost-worker-structs.patch b/meta/recipes-devtools/qemu/qemu/0013-hw-scsi-vhost-scsi-include-standard-headers-for-vhost-worker-structs.patch new file mode 100644 index 0000000000..ea37d20d87 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu/0013-hw-scsi-vhost-scsi-include-standard-headers-for-vhost-worker-structs.patch @@ -0,0 +1,35 @@ +From: Quan Sun +Subject: [PATCH] hw/scsi/vhost-scsi: fix build with older kernel headers + +On build hosts with kernel headers older than 6.0, the system's + does not define struct vhost_vring_worker or +struct vhost_worker_state, causing compilation of vhost-scsi.c to +fail: + + error: storage size of 'vq_worker' isn't known + +Fix by including standard-headers/linux/vhost_types.h before the +system's , matching the existing pattern used in +hw/virtio/vhost-backend.c. QEMU's bundled header provides the +struct definitions, and its include guard prevents redefinition +when the system header pulls in its own vhost_types.h. + +Upstream-Status: Submitted [https://lore.kernel.org/qemu-devel/20260525182730.4098543-1-Quan.Sun@windriver.com/] + +Signed-off-by: Quan Sun +--- + hw/scsi/vhost-scsi.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c +index 699863cc10..10e8fbe503 100644 +--- a/hw/scsi/vhost-scsi.c ++++ b/hw/scsi/vhost-scsi.c +@@ -15,6 +15,7 @@ + */ + + #include "qemu/osdep.h" ++#include "standard-headers/linux/vhost_types.h" + #include + #include + #include "qapi/error.h" diff --git a/meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch b/meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch deleted file mode 100644 index 524e20a3dd..0000000000 --- a/meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 475dbdbee7ff878d113f45a1a623e9abbf0e55f3 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Wed, 18 Sep 2024 16:19:37 -0700 -Subject: [PATCH] target/riscv/kvm: do not use non-portable strerrorname_np() - -strerrorname_np is non-portable and breaks building with musl libc. - -Use strerror(errno) instead, like we do other places. - -Upstream-Status: Submitted [https://mail.gnu.org/archive/html/qemu-stable/2023-12/msg00069.html] - -Cc: qemu-stable@nongnu.org -Fixes: commit 082e9e4a58ba (target/riscv/kvm: improve 'init_multiext_cfg' error -msg) -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2041 -Buglink: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15541 -Signed-off-by: Natanael Copa ---- - target/riscv/kvm/kvm-cpu.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c -index e06d2126b..e1cc02fba 100644 ---- a/target/riscv/kvm/kvm-cpu.c -+++ b/target/riscv/kvm/kvm-cpu.c -@@ -1994,8 +1994,7 @@ static bool kvm_cpu_realize(CPUState *cs, Error **errp) - if (riscv_has_ext(&cpu->env, RVV)) { - ret = prctl(PR_RISCV_V_SET_CONTROL, PR_RISCV_V_VSTATE_CTRL_ON); - if (ret) { -- error_setg(errp, "Error in prctl PR_RISCV_V_SET_CONTROL, code: %s", -- strerrorname_np(errno)); -+ error_setg(errp, "Error in prctl PR_RISCV_V_SET_CONTROL, error %d", errno); - return false; - } - } diff --git a/meta/recipes-devtools/qemu/qemu_10.2.0.bb b/meta/recipes-devtools/qemu/qemu_11.0.0.bb similarity index 100% rename from meta/recipes-devtools/qemu/qemu_10.2.0.bb rename to meta/recipes-devtools/qemu/qemu_11.0.0.bb From patchwork Thu Jun 4 11:05:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 89308 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 555EFCD6E6B for ; Thu, 4 Jun 2026 11:06:02 +0000 (UTC) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.8731.1780571152361208669 for ; Thu, 04 Jun 2026 04:05:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=WxjP6N62; spf=pass (domain: gmail.com, ip: 209.85.221.54, mailfrom: alex.kanavin@gmail.com) Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-45eec22fab7so298230f8f.3 for ; Thu, 04 Jun 2026 04:05:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780571151; x=1781175951; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6Gje6ycEW99hpIB5epELPRIsuKMKMvlkQ21jjpLntF4=; b=WxjP6N62eHTjW2ICV8AgcsYcCYZUDfDg8JLMgsDm/obzb+QhaxfumwXEFbbAEnxWf/ Rd8r/+FRuJF3RJ0XXWE6OANKfdEnFIibjEnqXpkrm70SjyeizG+eZ/kTYEiVm2BkEUWy 0s2v9twk3fwJeElk+Ff6ghCAuAjwVtswwufxzSVsZqJUHRrDgg9U1FzGcspj+/H53o2q AGcafKZkAhNgCCTM5MDncSXaWeMpxe+6stLeD6/9DkVvHqaF7vCiYxlWLkAno11ICipd wrBHILkTgU492enO4i6RpnFsZzqq6HR5/eRnXZZU9ZzSELBNPRAUiGw/vb1OJAoeRetu JROA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780571151; x=1781175951; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6Gje6ycEW99hpIB5epELPRIsuKMKMvlkQ21jjpLntF4=; b=N+hJffMZ2empWLwAA8ykypcfve64l0QYM4opaf7CY3k3c7nTo4LulAZCRutPHcXtQq w+uA1lcNUTts7luJ4CFbT/CZJn3Ta3Ln0fZ07RsaheXBjDgjZojOBrHGIwM2MK6UHgbv bV5qBjkc1YQW6mbXPMukQRR36cijyxXZACVZ0M3jr26YnOuvUbuUi0nmpUtOmoCiJ5YX 07XjoyJdxOhqfB3GawH/Iuo+hXHKDS8xFotRO07jYCkhPJDPEwjBuBfK/FvUJ9uhLgUj 7qjo9LK9B3wzPApTnKPT4T3h8MHhiWtR19UOZHwzDi8b+OrVbzPVFEtM3QH+Nzp0Or/s Ss5A== X-Gm-Message-State: AOJu0YyakZdE2elQDUdPULmnmUuDRwYr4/EV7UmhAIE6wpH2b7mjnwP2 8cdEOAmAyXysrxwPc7rbnpsoBmENNj9T9rOUxCQRLDX0/57lSSZtSTH4GMVUFw== X-Gm-Gg: Acq92OFl0QGkD/e5/ohRO1wajbltYC6z6ix402RKKijha7pjPDD1ewtdFYEwmXuAPV1 NOw60M5wwZ/I1grRsQIzLY6pFAH2TAlEVha73hyrDUsdyV5P8KLPhHJLM81IvN8Gb4eZT1dwB4E rQk8d7jNZ2ggOyPhUQUCbolqZHgfoHnFOvxylGVZ0iAtJoJ/AjMxmbR/UN6pVaVB3AHd1POkR3M eV4NG+9Yw6lFNr9gAEPbB0dcoDVjgmnzgxT9ZvIMhBu1uAk9MGE//M8vYfdJpvfb32gP2kKq/TN GtlSGGI164Il56wDAA1GHT7TbWG8uLi82ssTRb9jP6sGBl5yrv1c8WEacDtZPmhppEOWJLIv5ZM qSD5uU86j0P42YLRlHav39BLYGmxE0f/9LCmSmJf/QGqmkP1uANEcZKEkTkLV/boZITPGD3tGSS XcttWXGLzjtctuMpzlwGF/W9MDin0BoKIFRHleRKNNFvdyq7lQdKNXgVkOjeQT59R7iUaTZQ== X-Received: by 2002:a5d:5989:0:b0:45e:e44b:313e with SMTP id ffacd0b85a97d-4602181fac2mr11766297f8f.19.1780571150766; Thu, 04 Jun 2026 04:05:50 -0700 (PDT) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f368e9fsm14946005f8f.37.2026.06.04.04.05.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 04:05:50 -0700 (PDT) From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 3/4] qemu: disable SDL UI frontend Date: Thu, 4 Jun 2026 13:05:34 +0200 Message-ID: <20260604110545.1860309-3-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260604110545.1860309-1-alex.kanavin@gmail.com> References: <20260604110545.1860309-1-alex.kanavin@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Jun 2026 11:06:02 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238124 From: Alexander Kanavin For rationale please see https://lists.openembedded.org/g/openembedded-architecture/message/2374 SDL-based UI is of limited use in typical scenarios, and can be replaced by qemu's own vnc server. Signed-off-by: Alexander Kanavin --- meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb | 2 +- meta/recipes-devtools/qemu/qemu_11.0.0.bb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb index 7947499c5f..258945c512 100644 --- a/meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb +++ b/meta/recipes-devtools/qemu/qemu-system-native_11.0.0.bb @@ -9,7 +9,7 @@ DEPENDS += "glib-2.0-native zlib-native pixman-native qemu-native python3-qemu-q EXTRA_OECONF:append = " --target-list=${@get_qemu_system_target_list(d)}" -PACKAGECONFIG ??= "fdt alsa kvm pie slirp png pixman sdl \ +PACKAGECONFIG ??= "fdt alsa kvm pie slirp png pixman \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ " diff --git a/meta/recipes-devtools/qemu/qemu_11.0.0.bb b/meta/recipes-devtools/qemu/qemu_11.0.0.bb index 5d544d8d13..cb3ce6a85c 100644 --- a/meta/recipes-devtools/qemu/qemu_11.0.0.bb +++ b/meta/recipes-devtools/qemu/qemu_11.0.0.bb @@ -16,12 +16,12 @@ EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCU EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" PACKAGECONFIG ??= " \ - fdt sdl kvm pie slirp \ + fdt kvm pie slirp \ ${@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)} \ " -PACKAGECONFIG:class-nativesdk ??= "fdt sdl kvm pie slirp \ +PACKAGECONFIG:class-nativesdk ??= "fdt kvm pie slirp \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ " # ppc32 hosts are no longer supported in qemu From patchwork Thu Jun 4 11:05:35 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 89309 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 94C94CD6E6E for ; Thu, 4 Jun 2026 11:06:02 +0000 (UTC) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.8732.1780571153200963334 for ; Thu, 04 Jun 2026 04:05:53 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=kxf9Kyzk; spf=pass (domain: gmail.com, ip: 209.85.221.54, mailfrom: alex.kanavin@gmail.com) Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-45ef6565cfdso318802f8f.0 for ; Thu, 04 Jun 2026 04:05:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780571151; x=1781175951; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4dIi7C9tLnl1f74WRAkxZLbWXkbA32oZRWHcvotO1R4=; b=kxf9KyzkXPX+8Pgnv/QfG1dggBI6zboYUURV1/gWPphgir2Sh+Co8cXOe/ru1f2PjY kTBmSlWDzoeuZd0T+bYEYCEE5od1/pZJ07lCNdioAZkU8RfZnrlc74DOhB3NMoDQibzf 4lsFnpzr/tpBzEtDH3VnfvB0c+JlFCeTGOVBzWkFGfvn5OS/45fsE/JH4N70v2GzmBwh yMiKHZy1Zp6YapWrHEHj1orcUNFRSDSBYQ3ZgnfmVp0Vhyqt/pRGLrNW9LKvptfrYVFR DfPbs4Oc28cB0rILDy9BDO0nnvP8CYELhu78MJjd8fYMs9VrUzbSBrRMNkJxmC1nSweH cJGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780571151; x=1781175951; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4dIi7C9tLnl1f74WRAkxZLbWXkbA32oZRWHcvotO1R4=; b=d0qCQhjKQ+JcObYFrCsNV5kq699Y6Njt7SzW0mo5ZP+3SNsKUtYZFUbxDlfCz85Baf W8Ivuk8BnCpDP9K20vM2vKWbYMBFF9J5hfWZkw2kySCKaDAlOIiHbEOyIfqBmjc0xz6s DKadvS56Rmajd20KoZjdnj4i+uz6OpTA3A5U85azB+o5Ik70HeIyloVA0vLY0LGeo6MX sdmHWx8sJugrwRXDUfuQc8zTOSY159nZdJJ1M+ppNqfvaSyaHE8NXl4yATARqZckMw97 HZuK/m9sDtOZ3+hxkTW6A0w90wiYgxbWoH60BCHgNYMNEazNKqlxArTNB8rlZWLpMvY3 xVag== X-Gm-Message-State: AOJu0Ywo+wxqfaEuENvOfmwOBFP9/KEVqo0WWcO2+iu1c9I5mAM6prb0 ScJX6+hYZx12Wi6J8c35xlqcaQRc4OP+IeIDNlKRugBuvWC3n6fFLVstncQaeA== X-Gm-Gg: Acq92OH3Ik+WPERtM4+GPNI92EDvyYbXNq65+Y9zv8ZN43j3Cmu1Yo8eeq8oh4oyWjG RO9lT8HRBWF/Yk8DU6cI1Fm3RPKecxC3isPCdbMix2bcrnVtRl9Q7ZcM8wJpq5/bSxneSIogWX4 KiA3DNTZtYWfGn44i8dDd8z7/Q4f7ToOddLNUvfj5ATjDjGbwTNWyo1XEr8pfAMILSP/TrYgeBK 9+Ps9s+05UBhuS/WJZ1VpNeyhYjiEHoz1hjcnMvbGf9zpXx3nWbAO86jzHlC5gsSkQYMr0LjtgK 0wY163oQgqu0TVVJROiCyYshK25SVGUwhoorqNRE13U70/AojJnCqD4fA6o8lWe9yDCbq+WDwLN eJ/6FL8TirJvBO53DDcJ9wB0XvvfnTIeh0r/JP5CQIhaKXxWZgTgYb2bFtSiHCtsily8kEgqFx3 7ZDTxWGq9ooK3yrA7KBshjIj0M1ToswRtSo7NFz4QoFOTbIDOlKEXvMXVSLdNhc0+bPmYmmA== X-Received: by 2002:a05:6000:4188:b0:43d:6244:f8b with SMTP id ffacd0b85a97d-460217b976emr7607877f8f.13.1780571151551; Thu, 04 Jun 2026 04:05:51 -0700 (PDT) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f368e9fsm14946005f8f.37.2026.06.04.04.05.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 04:05:51 -0700 (PDT) From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 4/4] templates/default: adjust instructions for qemu UI frontends Date: Thu, 4 Jun 2026 13:05:35 +0200 Message-ID: <20260604110545.1860309-4-alex.kanavin@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260604110545.1860309-1-alex.kanavin@gmail.com> References: <20260604110545.1860309-1-alex.kanavin@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Jun 2026 11:06:02 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/238126 From: Alexander Kanavin Mention that SDL needs to be enabled separately. Signed-off-by: Alexander Kanavin --- meta/conf/templates/default/local.conf.sample | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/meta/conf/templates/default/local.conf.sample b/meta/conf/templates/default/local.conf.sample index 2a0eea493c..8e7fb6c938 100644 --- a/meta/conf/templates/default/local.conf.sample +++ b/meta/conf/templates/default/local.conf.sample @@ -218,8 +218,12 @@ BB_DISKMON_DIRS ??= "\ # # Qemu configuration # -# By default native qemu will build with a builtin VNC server and a SDL UI frontend -# where graphical output can be seen. +# By default native qemu will build with a builtin VNC server providing a way +# to see graphical output with a VNC client. + +# You can also enable the SDL UI frontend, which opens a graphical windows +# directly into X11 display, if that is available on the build machine. +#PACKAGECONFIG:append:pn-qemu-system-native = " sdl" # By default libsdl2-native will be built, if you want to use your host's libSDL instead of # the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below. #ASSUME_PROVIDED += "libsdl2-native"