summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/qemu')
-rw-r--r--meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb5
-rw-r--r--meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb3
-rw-r--r--meta/recipes-devtools/qemu/qemu-native.inc2
-rw-r--r--meta/recipes-devtools/qemu/qemu-native_10.0.2.bb (renamed from meta/recipes-devtools/qemu/qemu-native_9.0.0.bb)1
-rw-r--r--meta/recipes-devtools/qemu/qemu-system-native_10.0.2.bb (renamed from meta/recipes-devtools/qemu/qemu-system-native_9.0.0.bb)3
-rw-r--r--meta/recipes-devtools/qemu/qemu-targets.inc6
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc33
-rw-r--r--meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch11
-rw-r--r--meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch11
-rw-r--r--meta/recipes-devtools/qemu/qemu/0003-configure-Add-pkg-config-handling-for-libgcrypt.patch31
-rw-r--r--meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch11
-rw-r--r--meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch12
-rw-r--r--meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch9
-rw-r--r--meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch36
-rw-r--r--meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch9
-rw-r--r--meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch358
-rw-r--r--meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch11
-rw-r--r--meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch12
-rw-r--r--meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch35
-rw-r--r--meta/recipes-devtools/qemu/qemu/run-ptest5
-rw-r--r--meta/recipes-devtools/qemu/qemu_10.0.2.bb (renamed from meta/recipes-devtools/qemu/qemu_9.0.0.bb)1
-rw-r--r--meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb4
22 files changed, 114 insertions, 495 deletions
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 90bba84b03..35735c1e15 100644
--- a/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
+++ b/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
@@ -4,10 +4,8 @@ RDEPENDS:${PN} = "nativesdk-qemu nativesdk-unfs3 nativesdk-pseudo \
4 nativesdk-python3-shell nativesdk-python3-fcntl nativesdk-python3-logging \ 4 nativesdk-python3-shell nativesdk-python3-fcntl nativesdk-python3-logging \
5 " 5 "
6 6
7
8LIC_FILES_CHKSUM = "file://${COREBASE}/scripts/runqemu;beginline=5;endline=10;md5=ac2b489a58739c7628a2604698db5e7f" 7LIC_FILES_CHKSUM = "file://${COREBASE}/scripts/runqemu;beginline=5;endline=10;md5=ac2b489a58739c7628a2604698db5e7f"
9 8
10
11SRC_URI = "file://${COREBASE}/scripts/runqemu \ 9SRC_URI = "file://${COREBASE}/scripts/runqemu \
12 file://${COREBASE}/scripts/runqemu-addptable2image \ 10 file://${COREBASE}/scripts/runqemu-addptable2image \
13 file://${COREBASE}/scripts/runqemu-gen-tapdevs \ 11 file://${COREBASE}/scripts/runqemu-gen-tapdevs \
@@ -18,8 +16,7 @@ SRC_URI = "file://${COREBASE}/scripts/runqemu \
18 file://${COREBASE}/scripts/runqemu-export-rootfs \ 16 file://${COREBASE}/scripts/runqemu-export-rootfs \
19 " 17 "
20 18
21S = "${WORKDIR}/sources" 19S = "${UNPACKDIR}"
22UNPACKDIR = "${S}"
23 20
24inherit nativesdk 21inherit nativesdk
25 22
diff --git a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
index 28a3b95c4e..30108e76df 100644
--- a/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
@@ -6,8 +6,7 @@ LIC_FILES_CHKSUM = "file://${S}/qemu-oe-bridge-helper.c;endline=4;md5=ae00a3bab8
6 6
7SRC_URI = "file://qemu-oe-bridge-helper.c" 7SRC_URI = "file://qemu-oe-bridge-helper.c"
8 8
9S = "${WORKDIR}/sources" 9S = "${UNPACKDIR}"
10UNPACKDIR = "${S}"
11 10
12inherit native 11inherit native
13 12
diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc
index 891dc5e2a1..d074d7d181 100644
--- a/meta/recipes-devtools/qemu/qemu-native.inc
+++ b/meta/recipes-devtools/qemu/qemu-native.inc
@@ -4,4 +4,4 @@ inherit_defer native
4 4
5EXTRA_OEMAKE:append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'" 5EXTRA_OEMAKE:append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
6 6
7LDFLAGS:append = " -fuse-ld=bfd" 7LDFLAGS += "-fuse-ld=bfd"
diff --git a/meta/recipes-devtools/qemu/qemu-native_9.0.0.bb b/meta/recipes-devtools/qemu/qemu-native_10.0.2.bb
index a77953529b..26fa84c180 100644
--- a/meta/recipes-devtools/qemu/qemu-native_9.0.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-native_10.0.2.bb
@@ -7,3 +7,4 @@ require qemu-native.inc
7EXTRA_OECONF:append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-install-blobs --disable-guest-agent" 7EXTRA_OECONF:append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-install-blobs --disable-guest-agent"
8 8
9PACKAGECONFIG ??= "pie" 9PACKAGECONFIG ??= "pie"
10
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_9.0.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_10.0.2.bb
index 5d2fbcbc02..22462e2499 100644
--- a/meta/recipes-devtools/qemu/qemu-system-native_9.0.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-system-native_10.0.2.bb
@@ -9,7 +9,7 @@ DEPENDS += "glib-2.0-native zlib-native pixman-native qemu-native"
9 9
10EXTRA_OECONF:append = " --target-list=${@get_qemu_system_target_list(d)}" 10EXTRA_OECONF:append = " --target-list=${@get_qemu_system_target_list(d)}"
11 11
12PACKAGECONFIG ??= "fdt alsa kvm pie slirp png \ 12PACKAGECONFIG ??= "fdt alsa kvm pie slirp png pixman sdl \
13 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ 13 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \
14" 14"
15 15
@@ -29,3 +29,4 @@ do_install:append() {
29 install -d ${D}${libdir}/qemu-python/qmp/ 29 install -d ${D}${libdir}/qemu-python/qmp/
30 install -D ${S}/python/qemu/qmp/* ${D}${libdir}/qemu-python/qmp/ 30 install -D ${S}/python/qemu/qmp/* ${D}${libdir}/qemu-python/qmp/
31} 31}
32
diff --git a/meta/recipes-devtools/qemu/qemu-targets.inc b/meta/recipes-devtools/qemu/qemu-targets.inc
index 24f9a03948..50e5eb6796 100644
--- a/meta/recipes-devtools/qemu/qemu-targets.inc
+++ b/meta/recipes-devtools/qemu/qemu-targets.inc
@@ -7,6 +7,12 @@ def get_qemu_target_list(d):
7 import bb 7 import bb
8 archs = d.getVar('QEMU_TARGETS').split() 8 archs = d.getVar('QEMU_TARGETS').split()
9 tos = d.getVar('HOST_OS') 9 tos = d.getVar('HOST_OS')
10 tarch = d.getVar('HOST_ARCH')
11 # 32 bit hosts can't handle 64 bit targets
12 if "64" not in tarch:
13 for arch in archs.copy():
14 if "64" in arch:
15 archs.remove(arch)
10 softmmuonly = "" 16 softmmuonly = ""
11 for arch in ['ppcemb', 'lm32']: 17 for arch in ['ppcemb', 'lm32']:
12 if arch in archs: 18 if arch in archs:
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index fb38fb44de..7893df0df2 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -21,23 +21,24 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
21SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ 21SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
22 file://powerpc_rom.bin \ 22 file://powerpc_rom.bin \
23 file://run-ptest \ 23 file://run-ptest \
24 file://fix-strerrorname_np.patch \
24 file://0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch \ 25 file://0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch \
25 file://0002-apic-fixup-fallthrough-to-PIC.patch \ 26 file://0002-apic-fixup-fallthrough-to-PIC.patch \
26 file://0003-configure-Add-pkg-config-handling-for-libgcrypt.patch \
27 file://0004-qemu-Do-not-include-file-if-not-exists.patch \ 27 file://0004-qemu-Do-not-include-file-if-not-exists.patch \
28 file://0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch \ 28 file://0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch \
29 file://0006-qemu-Determinism-fixes.patch \ 29 file://0006-qemu-Determinism-fixes.patch \
30 file://0007-tests-meson.build-use-relative-path-to-refer-to-file.patch \ 30 file://0007-tests-meson.build-use-relative-path-to-refer-to-file.patch \
31 file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ 31 file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \
32 file://0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch \
33 file://0010-configure-lookup-meson-exutable-from-PATH.patch \ 32 file://0010-configure-lookup-meson-exutable-from-PATH.patch \
34 file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \ 33 file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \
35 file://qemu-guest-agent.init \ 34 file://qemu-guest-agent.init \
36 file://qemu-guest-agent.udev \ 35 file://qemu-guest-agent.udev \
37 " 36 "
37# file index at download.qemu.org isn't reliable: https://gitlab.com/qemu-project/qemu-web/-/issues/9
38UPSTREAM_CHECK_URI = "https://www.qemu.org"
38UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" 39UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
39 40
40SRC_URI[sha256sum] = "32708ac66c30d8c892633ea968c771c1c76d597d70ddead21a0d22ccf386da69" 41SRC_URI[sha256sum] = "ef786f2398cb5184600f69aef4d5d691efd44576a3cff4126d38d4c6fec87759"
41 42
42CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default." 43CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default."
43 44
@@ -47,6 +48,11 @@ CVE_STATUS[CVE-2018-18438] = "disputed: The issues identified by this CVE were d
47# As per https://bugzilla.redhat.com/show_bug.cgi?id=2203387 48# As per https://bugzilla.redhat.com/show_bug.cgi?id=2203387
48CVE_STATUS[CVE-2023-2680] = "not-applicable-platform: RHEL specific issue." 49CVE_STATUS[CVE-2023-2680] = "not-applicable-platform: RHEL specific issue."
49 50
51# NVD DB has this CVE as version-less (with "-")
52CVE_STATUS[CVE-2024-6505] = "fixed-version: this CVE is fixed since 9.1.0"
53
54CVE_STATUS[CVE-2023-1386] = "disputed: not an issue as per https://bugzilla.redhat.com/show_bug.cgi?id=2223985"
55
50COMPATIBLE_HOST:mipsarchn32 = "null" 56COMPATIBLE_HOST:mipsarchn32 = "null"
51COMPATIBLE_HOST:mipsarchn64 = "null" 57COMPATIBLE_HOST:mipsarchn64 = "null"
52COMPATIBLE_HOST:riscv32 = "null" 58COMPATIBLE_HOST:riscv32 = "null"
@@ -155,25 +161,12 @@ do_install () {
155 rm ${D}${datadir}/qemu/hppa* -f 161 rm ${D}${datadir}/qemu/hppa* -f
156} 162}
157 163
158# The following fragment will create a wrapper for qemu-mips user emulation
159# binary in order to work around a segmentation fault issue. Basically, by
160# default, the reserved virtual address space for 32-on-64 bit is set to 4GB.
161# This will trigger a MMU access fault in the virtual CPU. With this change,
162# the qemu-mips works fine.
163# IMPORTANT: This piece needs to be removed once the root cause is fixed!
164do_install:append() {
165 if [ -e "${D}/${bindir}/qemu-mips" ]; then
166 create_wrapper ${D}/${bindir}/qemu-mips \
167 QEMU_RESERVED_VA=0x0
168 fi
169}
170# END of qemu-mips workaround
171
172# Disable kvm/virgl/mesa on targets that do not support it 164# Disable kvm/virgl/mesa on targets that do not support it
173PACKAGECONFIG:remove:darwin = "kvm virglrenderer epoxy gtk+" 165PACKAGECONFIG:remove:darwin = "kvm virglrenderer epoxy gtk+"
174PACKAGECONFIG:remove:mingw32 = "kvm virglrenderer epoxy gtk+ pie" 166PACKAGECONFIG:remove:mingw32 = "kvm virglrenderer epoxy gtk+ pie"
175 167
176PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2" 168PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl2"
169PACKAGECONFIG[sdl-image] = "--enable-sdl-image,--disable-sdl-image,libsdl2-image"
177PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" 170PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
178PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr," 171PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr,"
179PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio," 172PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio,"
@@ -184,6 +177,7 @@ PACKAGECONFIG[vnc-jpeg] = "--enable-vnc --enable-vnc-jpeg,--disable-vnc-jpeg,jpe
184PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,curl," 177PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,curl,"
185PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss," 178PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss,"
186PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses," 179PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
180PACKAGECONFIG[pixman] = "--enable-pixman,--disable-pixman,pixman"
187PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native" 181PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native"
188PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native" 182PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native"
189PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng," 183PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
@@ -258,9 +252,6 @@ python split_qemu_packages () {
258 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') 252 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')
259 if subpackages: 253 if subpackages:
260 d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(subpackages)) 254 d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(subpackages))
261 mipspackage = d.getVar('PN') + "-user-mips"
262 if mipspackage in ' '.join(subpackages):
263 d.appendVar('RDEPENDS:' + mipspackage, ' ' + d.getVar("MLPREFIX") + 'bash')
264} 255}
265 256
266# Put the guest agent in a separate package 257# Put the guest agent in a separate package
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 2333cc8432..f27208f45f 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,7 +1,7 @@
1From e9baf07a667a1c04b57e14776cc4fa387448c908 Mon Sep 17 00:00:00 2001 1From 27273fcac6857750f07a2632bdb6b0ed66ae982a Mon Sep 17 00:00:00 2001
2From: Jason Wessel <jason.wessel@windriver.com> 2From: Jason Wessel <jason.wessel@windriver.com>
3Date: Fri, 28 Mar 2014 17:42:43 +0800 3Date: Fri, 28 Mar 2014 17:42:43 +0800
4Subject: [PATCH 01/11] qemu: Add addition environment space to boot loader 4Subject: [PATCH] qemu: Add addition environment space to boot loader
5 qemu-system-mips 5 qemu-system-mips
6 6
7Upstream-Status: Inappropriate - OE uses deep paths 7Upstream-Status: Inappropriate - OE uses deep paths
@@ -18,10 +18,10 @@ Signed-off-by: Roy Li <rongqing.li@windriver.com>
18 1 file changed, 1 insertion(+), 1 deletion(-) 18 1 file changed, 1 insertion(+), 1 deletion(-)
19 19
20diff --git a/hw/mips/malta.c b/hw/mips/malta.c 20diff --git a/hw/mips/malta.c b/hw/mips/malta.c
21index af74008c82..a588b9ad4e 100644 21index 8e9cea70b..2268a8b61 100644
22--- a/hw/mips/malta.c 22--- a/hw/mips/malta.c
23+++ b/hw/mips/malta.c 23+++ b/hw/mips/malta.c
24@@ -63,7 +63,7 @@ 24@@ -65,7 +65,7 @@
25 #define ENVP_PADDR 0x2000 25 #define ENVP_PADDR 0x2000
26 #define ENVP_VADDR cpu_mips_phys_to_kseg0(NULL, ENVP_PADDR) 26 #define ENVP_VADDR cpu_mips_phys_to_kseg0(NULL, ENVP_PADDR)
27 #define ENVP_NB_ENTRIES 16 27 #define ENVP_NB_ENTRIES 16
@@ -30,6 +30,3 @@ index af74008c82..a588b9ad4e 100644
30 30
31 /* Hardware addresses */ 31 /* Hardware addresses */
32 #define FLASH_ADDRESS 0x1e000000ULL 32 #define FLASH_ADDRESS 0x1e000000ULL
33--
342.44.0
35
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 5f8fe4faa3..ad5c5ba03e 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,7 +1,7 @@
1From 23bf534e463bf4c1ba2e1356eaf17be0b23b192e Mon Sep 17 00:00:00 2001 1From 19b95073e5d42dc4aa5392da3d422ab668003107 Mon Sep 17 00:00:00 2001
2From: Mark Asselstine <mark.asselstine@windriver.com> 2From: Mark Asselstine <mark.asselstine@windriver.com>
3Date: Tue, 26 Feb 2013 11:43:28 -0500 3Date: Tue, 26 Feb 2013 11:43:28 -0500
4Subject: [PATCH 02/11] apic: fixup fallthrough to PIC 4Subject: [PATCH] apic: fixup fallthrough to PIC
5 5
6Commit 0e21e12bb311c4c1095d0269dc2ef81196ccb60a [Don't route PIC 6Commit 0e21e12bb311c4c1095d0269dc2ef81196ccb60a [Don't route PIC
7interrupts through the local APIC if the local APIC config says so.] 7interrupts through the local APIC if the local APIC config says so.]
@@ -29,10 +29,10 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
29 1 file changed, 1 insertion(+), 1 deletion(-) 29 1 file changed, 1 insertion(+), 1 deletion(-)
30 30
31diff --git a/hw/intc/apic.c b/hw/intc/apic.c 31diff --git a/hw/intc/apic.c b/hw/intc/apic.c
32index 4186c57b34..43cd805a96 100644 32index d18c1dbf2..45dde1fc5 100644
33--- a/hw/intc/apic.c 33--- a/hw/intc/apic.c
34+++ b/hw/intc/apic.c 34+++ b/hw/intc/apic.c
35@@ -759,7 +759,7 @@ int apic_accept_pic_intr(DeviceState *dev) 35@@ -758,7 +758,7 @@ int apic_accept_pic_intr(DeviceState *dev)
36 APICCommonState *s = APIC(dev); 36 APICCommonState *s = APIC(dev);
37 uint32_t lvt0; 37 uint32_t lvt0;
38 38
@@ -41,6 +41,3 @@ index 4186c57b34..43cd805a96 100644
41 return -1; 41 return -1;
42 42
43 lvt0 = s->lvt[APIC_LVT_LINT0]; 43 lvt0 = s->lvt[APIC_LVT_LINT0];
44--
452.44.0
46
diff --git a/meta/recipes-devtools/qemu/qemu/0003-configure-Add-pkg-config-handling-for-libgcrypt.patch b/meta/recipes-devtools/qemu/qemu/0003-configure-Add-pkg-config-handling-for-libgcrypt.patch
deleted file mode 100644
index 30e269f8f4..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0003-configure-Add-pkg-config-handling-for-libgcrypt.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From e4f6c6b9f43b28271bc9dc6cbcafad53f80387e0 Mon Sep 17 00:00:00 2001
2From: He Zhe <zhe.he@windriver.com>
3Date: Wed, 28 Aug 2019 19:56:28 +0800
4Subject: [PATCH 03/11] configure: Add pkg-config handling for libgcrypt
5
6libgcrypt may also be controlled by pkg-config, this patch adds pkg-config
7handling for libgcrypt.
8
9Upstream-Status: Denied [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html]
10
11Signed-off-by: He Zhe <zhe.he@windriver.com>
12---
13 meson.build | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/meson.build b/meson.build
17index 91a0aa64c6..e8373d55b8 100644
18--- a/meson.build
19+++ b/meson.build
20@@ -1655,7 +1655,7 @@ endif
21 if not gnutls_crypto.found()
22 if (not get_option('gcrypt').auto() or have_system) and not get_option('nettle').enabled()
23 gcrypt = dependency('libgcrypt', version: '>=1.8',
24- method: 'config-tool',
25+ method: 'pkg-config',
26 required: get_option('gcrypt'))
27 # Debian has removed -lgpg-error from libgcrypt-config
28 # as it "spreads unnecessary dependencies" which in
29--
302.44.0
31
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 d9cab428c4..c04e42608f 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,7 +1,7 @@
1From 5223d46a8d5302396f9fc7cc5d830769e87242fe Mon Sep 17 00:00:00 2001 1From 913064f9fe724fa1b70b9bf6dd3444c7dddeb928 Mon Sep 17 00:00:00 2001
2From: Oleksiy Obitotskyy <oobitots@cisco.com> 2From: Oleksiy Obitotskyy <oobitots@cisco.com>
3Date: Wed, 25 Mar 2020 21:21:35 +0200 3Date: Wed, 25 Mar 2020 21:21:35 +0200
4Subject: [PATCH 04/11] qemu: Do not include file if not exists 4Subject: [PATCH] qemu: Do not include file if not exists
5 5
6Script configure checks for if_alg.h and check failed but 6Script configure checks for if_alg.h and check failed but
7if_alg.h still included. 7if_alg.h still included.
@@ -16,10 +16,10 @@ Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
16 1 file changed, 2 insertions(+) 16 1 file changed, 2 insertions(+)
17 17
18diff --git a/linux-user/syscall.c b/linux-user/syscall.c 18diff --git a/linux-user/syscall.c b/linux-user/syscall.c
19index 3df2b94d9a..18f09f1f07 100644 19index 8bfe4912e..d04984f66 100644
20--- a/linux-user/syscall.c 20--- a/linux-user/syscall.c
21+++ b/linux-user/syscall.c 21+++ b/linux-user/syscall.c
22@@ -116,7 +116,9 @@ 22@@ -118,7 +118,9 @@
23 #include <linux/blkpg.h> 23 #include <linux/blkpg.h>
24 #include <netpacket/packet.h> 24 #include <netpacket/packet.h>
25 #include <linux/netlink.h> 25 #include <linux/netlink.h>
@@ -29,6 +29,3 @@ index 3df2b94d9a..18f09f1f07 100644
29 #include <linux/rtc.h> 29 #include <linux/rtc.h>
30 #include <sound/asound.h> 30 #include <sound/asound.h>
31 #ifdef HAVE_BTRFS_H 31 #ifdef HAVE_BTRFS_H
32--
332.44.0
34
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 3c7f5776ff..388d11d10d 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,8 +1,7 @@
1From 1c295069857b9850f15f2cd6b33b133ea641a454 Mon Sep 17 00:00:00 2001 1From f2adfc703e94819b0daca98fde1d0a30168c292d Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Fri, 8 Jan 2021 17:27:06 +0000 3Date: Fri, 8 Jan 2021 17:27:06 +0000
4Subject: [PATCH 05/11] qemu: Add some user space mmap tweaks to address musl 4Subject: [PATCH] qemu: Add some user space mmap tweaks to address musl 32 bit
5 32 bit
6 5
7When using qemu-i386 to build qemux86 webkitgtk on musl, it sits in an 6When using qemu-i386 to build qemux86 webkitgtk on musl, it sits in an
8infinite loop of mremap calls of ever decreasing/increasing addresses. 7infinite loop of mremap calls of ever decreasing/increasing addresses.
@@ -23,10 +22,10 @@ Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org
23 1 file changed, 7 insertions(+), 3 deletions(-) 22 1 file changed, 7 insertions(+), 3 deletions(-)
24 23
25diff --git a/linux-user/mmap.c b/linux-user/mmap.c 24diff --git a/linux-user/mmap.c b/linux-user/mmap.c
26index be3b9a68eb..481286f01d 100644 25index d1f36e6f1..26ccf8f4d 100644
27--- a/linux-user/mmap.c 26--- a/linux-user/mmap.c
28+++ b/linux-user/mmap.c 27+++ b/linux-user/mmap.c
29@@ -1060,12 +1060,16 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, 28@@ -1108,12 +1108,16 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
30 int prot; 29 int prot;
31 void *host_addr; 30 void *host_addr;
32 31
@@ -46,6 +45,3 @@ index be3b9a68eb..481286f01d 100644
46 return -1; 45 return -1;
47 } 46 }
48 47
49--
502.44.0
51
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 f07054f19a..4690d86315 100644
--- a/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch
+++ b/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch
@@ -1,7 +1,7 @@
1From 9d32df80e33a7541658858497f45bed1e59e3621 Mon Sep 17 00:00:00 2001 1From e032726e9da8de0088d6c70cfd92e0a52155315f Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Mon, 1 Mar 2021 13:00:47 +0000 3Date: Mon, 1 Mar 2021 13:00:47 +0000
4Subject: [PATCH 06/11] qemu: Determinism fixes 4Subject: [PATCH] qemu: Determinism fixes
5 5
6When sources are included within debug information, a couple of areas of the 6When sources are included within debug information, a couple of areas of the
7qemu build are not reproducible due to either full buildpaths or timestamps. 7qemu build are not reproducible due to either full buildpaths or timestamps.
@@ -16,7 +16,7 @@ RP 2021/3/1
16 1 file changed, 1 insertion(+), 1 deletion(-) 16 1 file changed, 1 insertion(+), 1 deletion(-)
17 17
18diff --git a/scripts/decodetree.py b/scripts/decodetree.py 18diff --git a/scripts/decodetree.py b/scripts/decodetree.py
19index e8b72da3a9..5cd86b1428 100644 19index e8b72da3a..5cd86b142 100644
20--- a/scripts/decodetree.py 20--- a/scripts/decodetree.py
21+++ b/scripts/decodetree.py 21+++ b/scripts/decodetree.py
22@@ -1558,7 +1558,7 @@ def main(): 22@@ -1558,7 +1558,7 @@ def main():
@@ -28,6 +28,3 @@ index e8b72da3a9..5cd86b1428 100644
28 f = open(filename, 'rt', encoding='utf-8') 28 f = open(filename, 'rt', encoding='utf-8')
29 parse_file(f, toppat) 29 parse_file(f, toppat)
30 f.close() 30 f.close()
31--
322.44.0
33
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 74de158b2e..7c24f432f2 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,7 +1,7 @@
1From 77ebf67d0c96f51da91c8499200ebd13f4dcdd68 Mon Sep 17 00:00:00 2001 1From ebeab06747306ec16299207bf4bd7481a472b4de Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com> 2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 14 Jan 2021 06:33:04 +0000 3Date: Thu, 14 Jan 2021 06:33:04 +0000
4Subject: [PATCH 07/11] tests/meson.build: use relative path to refer to files 4Subject: [PATCH] tests/meson.build: use relative path to refer to files
5 5
6Fix error like: 6Fix error like:
7Fatal error: can't create tests/ptimer-test.p/..._qemu-5.2.0_hw_core_ptimer.c.o: File name too long 7Fatal error: can't create tests/ptimer-test.p/..._qemu-5.2.0_hw_core_ptimer.c.o: File name too long
@@ -13,23 +13,26 @@ Upstream-Status: Submitted [send to qemu-devel]
13 13
14Signed-off-by: Changqing Li <changqing.li@windriver.com> 14Signed-off-by: Changqing Li <changqing.li@windriver.com>
15--- 15---
16 tests/unit/meson.build | 4 ++-- 16 tests/unit/meson.build | 6 +++---
17 1 file changed, 2 insertions(+), 2 deletions(-) 17 1 file changed, 3 insertions(+), 3 deletions(-)
18 18
19diff --git a/tests/unit/meson.build b/tests/unit/meson.build 19diff --git a/tests/unit/meson.build b/tests/unit/meson.build
20index 228a21d03c..272fb4c6ca 100644 20index d5248ae51..2c581f055 100644
21--- a/tests/unit/meson.build 21--- a/tests/unit/meson.build
22+++ b/tests/unit/meson.build 22+++ b/tests/unit/meson.build
23@@ -47,7 +47,7 @@ tests = { 23@@ -127,17 +127,17 @@ endif
24 'test-keyval': [testqapi], 24
25 'test-logging': [], 25 if have_system
26 'test-uuid': [], 26 tests += {
27- 'ptimer-test': ['ptimer-test-stubs.c', meson.project_source_root() / 'hw/core/ptimer.c'], 27- 'ptimer-test': ['ptimer-test-stubs.c', meson.project_source_root() / 'hw/core/ptimer.c'],
28+ 'ptimer-test': ['ptimer-test-stubs.c', '../../hw/core/ptimer.c'], 28+ 'ptimer-test': ['ptimer-test-stubs.c', '../../hw/core/ptimer.c'],
29 'test-qapi-util': [], 29 'test-iov': [],
30 'test-interval-tree': [], 30 'test-opts-visitor': [testqapi],
31 'test-xs-node': [qom], 31 'test-xs-node': [qom],
32@@ -138,7 +138,7 @@ if have_system 32- 'test-virtio-dmabuf': [meson.project_source_root() / 'hw/display/virtio-dmabuf.c'],
33+ 'test-virtio-dmabuf': ['../../hw/display/virtio-dmabuf.c'],
34 'test-qmp-cmds': [testqapi],
35 'test-xbzrle': [migration],
33 'test-util-sockets': ['socket-helpers.c'], 36 'test-util-sockets': ['socket-helpers.c'],
34 'test-base64': [], 37 'test-base64': [],
35 'test-bufferiszero': [], 38 'test-bufferiszero': [],
@@ -38,6 +41,3 @@ index 228a21d03c..272fb4c6ca 100644
38 'test-vmstate': [migration, io], 41 'test-vmstate': [migration, io],
39 'test-yank': ['socket-helpers.c', qom, io, chardev] 42 'test-yank': ['socket-helpers.c', qom, io, chardev]
40 } 43 }
41--
422.44.0
43
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 2e28590e11..54421544bb 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,7 +1,7 @@
1From 21b159a11bbcb1eeb26f12456e4c3fd62a06cbec Mon Sep 17 00:00:00 2001 1From 9c225234a756f2745cf04c3c3af6ef6b6acf4277 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 21 Mar 2022 10:09:38 -0700 3Date: Mon, 21 Mar 2022 10:09:38 -0700
4Subject: [PATCH 08/11] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux 4Subject: [PATCH] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux
5 systems 5 systems
6 6
7linux only wires MAP_SYNC and MAP_SHARED_VALIDATE for architectures 7linux only wires MAP_SYNC and MAP_SHARED_VALIDATE for architectures
@@ -18,7 +18,7 @@ Cc: Michael S. Tsirkin <mst@redhat.com>
18 1 file changed, 7 insertions(+), 3 deletions(-) 18 1 file changed, 7 insertions(+), 3 deletions(-)
19 19
20diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c 20diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c
21index ed14f9c64d..038f5b4b55 100644 21index ed14f9c64..038f5b4b5 100644
22--- a/util/mmap-alloc.c 22--- a/util/mmap-alloc.c
23+++ b/util/mmap-alloc.c 23+++ b/util/mmap-alloc.c
24@@ -10,14 +10,18 @@ 24@@ -10,14 +10,18 @@
@@ -43,6 +43,3 @@ index ed14f9c64d..038f5b4b55 100644
43 #include "qemu/mmap-alloc.h" 43 #include "qemu/mmap-alloc.h"
44 #include "qemu/host-utils.h" 44 #include "qemu/host-utils.h"
45 #include "qemu/cutils.h" 45 #include "qemu/cutils.h"
46--
472.44.0
48
diff --git a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch b/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch
deleted file mode 100644
index 7577249d39..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch
+++ /dev/null
@@ -1,358 +0,0 @@
1From 23de30079dbf47a8026faddd550a9e181d609c8f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 17 Dec 2022 08:37:46 -0800
4Subject: [PATCH 09/11] linux-user: Replace use of lfs64 related functions and
5 macros
6
7Builds defines -D_FILE_OFFSET_BITS=64 which makes the original functions
8anf macros behave same as their 64 suffixed counterparts. This also
9helps in compiling with latest musl C library, where these macros and
10functions are no more available under _GNU_SOURCE feature macro
11
12Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2022-12/msg02841.html]
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14Cc: Laurent Vivier <laurent@vivier.eu>
15---
16 linux-user/syscall.c | 153 +++++++++++--------------------------------
17 1 file changed, 39 insertions(+), 114 deletions(-)
18
19diff --git a/linux-user/syscall.c b/linux-user/syscall.c
20index 18f09f1f07..1b7c50a2a7 100644
21--- a/linux-user/syscall.c
22+++ b/linux-user/syscall.c
23@@ -761,8 +761,8 @@ safe_syscall6(ssize_t, copy_file_range, int, infd, loff_t *, pinoff,
24 */
25 #define safe_ioctl(...) safe_syscall(__NR_ioctl, __VA_ARGS__)
26 /* Similarly for fcntl. Note that callers must always:
27- * pass the F_GETLK64 etc constants rather than the unsuffixed F_GETLK
28- * use the flock64 struct rather than unsuffixed flock
29+ * pass the F_GETLK etc constants rather than the unsuffixed F_GETLK
30+ * use the flock struct rather than unsuffixed flock
31 * This will then work and use a 64-bit offset for both 32-bit and 64-bit hosts.
32 */
33 #ifdef __NR_fcntl64
34@@ -6739,13 +6739,13 @@ static int target_to_host_fcntl_cmd(int cmd)
35 ret = cmd;
36 break;
37 case TARGET_F_GETLK:
38- ret = F_GETLK64;
39+ ret = F_GETLK;
40 break;
41 case TARGET_F_SETLK:
42- ret = F_SETLK64;
43+ ret = F_SETLK;
44 break;
45 case TARGET_F_SETLKW:
46- ret = F_SETLKW64;
47+ ret = F_SETLKW;
48 break;
49 case TARGET_F_GETOWN:
50 ret = F_GETOWN;
51@@ -6759,17 +6759,6 @@ static int target_to_host_fcntl_cmd(int cmd)
52 case TARGET_F_SETSIG:
53 ret = F_SETSIG;
54 break;
55-#if TARGET_ABI_BITS == 32
56- case TARGET_F_GETLK64:
57- ret = F_GETLK64;
58- break;
59- case TARGET_F_SETLK64:
60- ret = F_SETLK64;
61- break;
62- case TARGET_F_SETLKW64:
63- ret = F_SETLKW64;
64- break;
65-#endif
66 case TARGET_F_SETLEASE:
67 ret = F_SETLEASE;
68 break;
69@@ -6821,8 +6810,8 @@ static int target_to_host_fcntl_cmd(int cmd)
70 * them to 5, 6 and 7 before making the syscall(). Since we make the
71 * syscall directly, adjust to what is supported by the kernel.
72 */
73- if (ret >= F_GETLK64 && ret <= F_SETLKW64) {
74- ret -= F_GETLK64 - 5;
75+ if (ret >= F_GETLK && ret <= F_SETLKW) {
76+ ret -= F_GETLK - 5;
77 }
78 #endif
79
80@@ -6855,55 +6844,11 @@ static int host_to_target_flock(int type)
81 return type;
82 }
83
84-static inline abi_long copy_from_user_flock(struct flock64 *fl,
85- abi_ulong target_flock_addr)
86-{
87- struct target_flock *target_fl;
88- int l_type;
89-
90- if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
91- return -TARGET_EFAULT;
92- }
93-
94- __get_user(l_type, &target_fl->l_type);
95- l_type = target_to_host_flock(l_type);
96- if (l_type < 0) {
97- return l_type;
98- }
99- fl->l_type = l_type;
100- __get_user(fl->l_whence, &target_fl->l_whence);
101- __get_user(fl->l_start, &target_fl->l_start);
102- __get_user(fl->l_len, &target_fl->l_len);
103- __get_user(fl->l_pid, &target_fl->l_pid);
104- unlock_user_struct(target_fl, target_flock_addr, 0);
105- return 0;
106-}
107-
108-static inline abi_long copy_to_user_flock(abi_ulong target_flock_addr,
109- const struct flock64 *fl)
110-{
111- struct target_flock *target_fl;
112- short l_type;
113-
114- if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
115- return -TARGET_EFAULT;
116- }
117-
118- l_type = host_to_target_flock(fl->l_type);
119- __put_user(l_type, &target_fl->l_type);
120- __put_user(fl->l_whence, &target_fl->l_whence);
121- __put_user(fl->l_start, &target_fl->l_start);
122- __put_user(fl->l_len, &target_fl->l_len);
123- __put_user(fl->l_pid, &target_fl->l_pid);
124- unlock_user_struct(target_fl, target_flock_addr, 1);
125- return 0;
126-}
127-
128-typedef abi_long from_flock64_fn(struct flock64 *fl, abi_ulong target_addr);
129-typedef abi_long to_flock64_fn(abi_ulong target_addr, const struct flock64 *fl);
130+typedef abi_long from_flock_fn(struct flock *fl, abi_ulong target_addr);
131+typedef abi_long to_flock_fn(abi_ulong target_addr, const struct flock *fl);
132
133 #if defined(TARGET_ARM) && TARGET_ABI_BITS == 32
134-struct target_oabi_flock64 {
135+struct target_oabi_flock {
136 abi_short l_type;
137 abi_short l_whence;
138 abi_llong l_start;
139@@ -6911,10 +6856,10 @@ struct target_oabi_flock64 {
140 abi_int l_pid;
141 } QEMU_PACKED;
142
143-static inline abi_long copy_from_user_oabi_flock64(struct flock64 *fl,
144+static inline abi_long copy_from_user_oabi_flock(struct flock *fl,
145 abi_ulong target_flock_addr)
146 {
147- struct target_oabi_flock64 *target_fl;
148+ struct target_oabi_flock *target_fl;
149 int l_type;
150
151 if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
152@@ -6935,10 +6880,10 @@ static inline abi_long copy_from_user_oabi_flock64(struct flock64 *fl,
153 return 0;
154 }
155
156-static inline abi_long copy_to_user_oabi_flock64(abi_ulong target_flock_addr,
157- const struct flock64 *fl)
158+static inline abi_long copy_to_user_oabi_flock(abi_ulong target_flock_addr,
159+ const struct flock *fl)
160 {
161- struct target_oabi_flock64 *target_fl;
162+ struct target_oabi_flock *target_fl;
163 short l_type;
164
165 if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
166@@ -6956,10 +6901,10 @@ static inline abi_long copy_to_user_oabi_flock64(abi_ulong target_flock_addr,
167 }
168 #endif
169
170-static inline abi_long copy_from_user_flock64(struct flock64 *fl,
171+static inline abi_long copy_from_user_flock(struct flock *fl,
172 abi_ulong target_flock_addr)
173 {
174- struct target_flock64 *target_fl;
175+ struct target_flock *target_fl;
176 int l_type;
177
178 if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
179@@ -6980,10 +6925,10 @@ static inline abi_long copy_from_user_flock64(struct flock64 *fl,
180 return 0;
181 }
182
183-static inline abi_long copy_to_user_flock64(abi_ulong target_flock_addr,
184- const struct flock64 *fl)
185+static inline abi_long copy_to_user_flock(abi_ulong target_flock_addr,
186+ const struct flock *fl)
187 {
188- struct target_flock64 *target_fl;
189+ struct target_flock *target_fl;
190 short l_type;
191
192 if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
193@@ -7002,7 +6947,7 @@ static inline abi_long copy_to_user_flock64(abi_ulong target_flock_addr,
194
195 static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
196 {
197- struct flock64 fl64;
198+ struct flock fl64;
199 #ifdef F_GETOWN_EX
200 struct f_owner_ex fox;
201 struct target_f_owner_ex *target_fox;
202@@ -7015,6 +6960,7 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
203
204 switch(cmd) {
205 case TARGET_F_GETLK:
206+ case TARGET_F_OFD_GETLK:
207 ret = copy_from_user_flock(&fl64, arg);
208 if (ret) {
209 return ret;
210@@ -7024,32 +6970,11 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
211 ret = copy_to_user_flock(arg, &fl64);
212 }
213 break;
214-
215 case TARGET_F_SETLK:
216 case TARGET_F_SETLKW:
217- ret = copy_from_user_flock(&fl64, arg);
218- if (ret) {
219- return ret;
220- }
221- ret = get_errno(safe_fcntl(fd, host_cmd, &fl64));
222- break;
223-
224- case TARGET_F_GETLK64:
225- case TARGET_F_OFD_GETLK:
226- ret = copy_from_user_flock64(&fl64, arg);
227- if (ret) {
228- return ret;
229- }
230- ret = get_errno(safe_fcntl(fd, host_cmd, &fl64));
231- if (ret == 0) {
232- ret = copy_to_user_flock64(arg, &fl64);
233- }
234- break;
235- case TARGET_F_SETLK64:
236- case TARGET_F_SETLKW64:
237 case TARGET_F_OFD_SETLK:
238 case TARGET_F_OFD_SETLKW:
239- ret = copy_from_user_flock64(&fl64, arg);
240+ ret = copy_from_user_flock(&fl64, arg);
241 if (ret) {
242 return ret;
243 }
244@@ -7278,7 +7203,7 @@ static inline abi_long target_truncate64(CPUArchState *cpu_env, const char *arg1
245 arg2 = arg3;
246 arg3 = arg4;
247 }
248- return get_errno(truncate64(arg1, target_offset64(arg2, arg3)));
249+ return get_errno(truncate(arg1, target_offset64(arg2, arg3)));
250 }
251 #endif
252
253@@ -7292,7 +7217,7 @@ static inline abi_long target_ftruncate64(CPUArchState *cpu_env, abi_long arg1,
254 arg2 = arg3;
255 arg3 = arg4;
256 }
257- return get_errno(ftruncate64(arg1, target_offset64(arg2, arg3)));
258+ return get_errno(ftruncate(arg1, target_offset64(arg2, arg3)));
259 }
260 #endif
261
262@@ -8667,7 +8592,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, abi_long count)
263 void *tdirp;
264 int hlen, hoff, toff;
265 int hreclen, treclen;
266- off64_t prev_diroff = 0;
267+ off_t prev_diroff = 0;
268
269 hdirp = g_try_malloc(count);
270 if (!hdirp) {
271@@ -8720,7 +8645,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, abi_long count)
272 * Return what we have, resetting the file pointer to the
273 * location of the first record not returned.
274 */
275- lseek64(dirfd, prev_diroff, SEEK_SET);
276+ lseek(dirfd, prev_diroff, SEEK_SET);
277 break;
278 }
279
280@@ -8754,7 +8679,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
281 void *tdirp;
282 int hlen, hoff, toff;
283 int hreclen, treclen;
284- off64_t prev_diroff = 0;
285+ off_t prev_diroff = 0;
286
287 hdirp = g_try_malloc(count);
288 if (!hdirp) {
289@@ -8796,7 +8721,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
290 * Return what we have, resetting the file pointer to the
291 * location of the first record not returned.
292 */
293- lseek64(dirfd, prev_diroff, SEEK_SET);
294+ lseek(dirfd, prev_diroff, SEEK_SET);
295 break;
296 }
297
298@@ -11527,7 +11452,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
299 return -TARGET_EFAULT;
300 }
301 }
302- ret = get_errno(pread64(arg1, p, arg3, target_offset64(arg4, arg5)));
303+ ret = get_errno(pread(arg1, p, arg3, target_offset64(arg4, arg5)));
304 unlock_user(p, arg2, ret);
305 return ret;
306 case TARGET_NR_pwrite64:
307@@ -11544,7 +11469,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
308 return -TARGET_EFAULT;
309 }
310 }
311- ret = get_errno(pwrite64(arg1, p, arg3, target_offset64(arg4, arg5)));
312+ ret = get_errno(pwrite(arg1, p, arg3, target_offset64(arg4, arg5)));
313 unlock_user(p, arg2, 0);
314 return ret;
315 #endif
316@@ -12404,14 +12329,14 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
317 case TARGET_NR_fcntl64:
318 {
319 int cmd;
320- struct flock64 fl;
321- from_flock64_fn *copyfrom = copy_from_user_flock64;
322- to_flock64_fn *copyto = copy_to_user_flock64;
323+ struct flock fl;
324+ from_flock_fn *copyfrom = copy_from_user_flock;
325+ to_flock_fn *copyto = copy_to_user_flock;
326
327 #ifdef TARGET_ARM
328 if (!cpu_env->eabi) {
329- copyfrom = copy_from_user_oabi_flock64;
330- copyto = copy_to_user_oabi_flock64;
331+ copyfrom = copy_from_user_oabi_flock;
332+ copyto = copy_to_user_oabi_flock;
333 }
334 #endif
335
336@@ -12421,7 +12346,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
337 }
338
339 switch(arg2) {
340- case TARGET_F_GETLK64:
341+ case TARGET_F_GETLK:
342 ret = copyfrom(&fl, arg3);
343 if (ret) {
344 break;
345@@ -12432,8 +12357,8 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
346 }
347 break;
348
349- case TARGET_F_SETLK64:
350- case TARGET_F_SETLKW64:
351+ case TARGET_F_SETLK:
352+ case TARGET_F_SETLKW:
353 ret = copyfrom(&fl, arg3);
354 if (ret) {
355 break;
356--
3572.44.0
358
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 98ce85a8cf..28a10d98bd 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,7 +1,7 @@
1From e12a93174f9b652604dda8d8464b9559b62b29d5 Mon Sep 17 00:00:00 2001 1From 9adf3fc3ea2cbccb41d49695a53c74fed6850fb0 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= <martin@geanix.com> 2From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= <martin@geanix.com>
3Date: Wed, 22 May 2024 14:02:55 +0200 3Date: Wed, 22 May 2024 14:02:55 +0200
4Subject: [PATCH 10/11] configure: lookup meson exutable from PATH 4Subject: [PATCH] configure: lookup meson exutable from PATH
5 5
6Upstream-Status: Inappropriate [workaround, would need a real fix for upstream] 6Upstream-Status: Inappropriate [workaround, would need a real fix for upstream]
7--- 7---
@@ -9,10 +9,10 @@ Upstream-Status: Inappropriate [workaround, would need a real fix for upstream]
9 1 file changed, 1 insertion(+), 6 deletions(-) 9 1 file changed, 1 insertion(+), 6 deletions(-)
10 10
11diff --git a/configure b/configure 11diff --git a/configure b/configure
12index 3cd736b139..482a1f8ef3 100755 12index 02f1dd231..2c5ecd346 100755
13--- a/configure 13--- a/configure
14+++ b/configure 14+++ b/configure
15@@ -956,12 +956,7 @@ fi 15@@ -983,12 +983,7 @@ mkvenv="$python ${source_path}/python/scripts/mkvenv.py"
16 $mkvenv ensuregroup --dir "${source_path}/python/wheels" \ 16 $mkvenv ensuregroup --dir "${source_path}/python/wheels" \
17 ${source_path}/pythondeps.toml meson || exit 1 17 ${source_path}/pythondeps.toml meson || exit 1
18 18
@@ -26,6 +26,3 @@ index 3cd736b139..482a1f8ef3 100755
26 26
27 # Conditionally ensure Sphinx is installed. 27 # Conditionally ensure Sphinx is installed.
28 28
29--
302.44.0
31
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 c7bb9b1b47..b06020d106 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,8 +1,7 @@
1From a93c2a6b2c9db9c4bd30298da43c37c5e5c6236e Mon Sep 17 00:00:00 2001 1From 0d85988457a475c25b84085cf090040150a9c16d Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Wed, 22 May 2024 13:58:23 +0200 3Date: Wed, 22 May 2024 13:58:23 +0200
4Subject: [PATCH 11/11] qemu: Ensure pip and the python venv aren't used for 4Subject: [PATCH] qemu: Ensure pip and the python venv aren't used for meson
5 meson
6 5
7Qemu wants to use a supported python version and a specific meson version 6Qemu wants to use a supported python version and a specific meson version
8to "help" users and uses pip and creates a venv to do this. This is a nightmare 7to "help" users and uses pip and creates a venv to do this. This is a nightmare
@@ -30,10 +29,10 @@ Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
30 1 file changed, 2 insertions(+), 2 deletions(-) 29 1 file changed, 2 insertions(+), 2 deletions(-)
31 30
32diff --git a/configure b/configure 31diff --git a/configure b/configure
33index 482a1f8ef3..0da4bf3e4d 100755 32index 2c5ecd346..5315ede35 100755
34--- a/configure 33--- a/configure
35+++ b/configure 34+++ b/configure
36@@ -938,14 +938,14 @@ python="$(command -v "$python")" 35@@ -969,14 +969,14 @@ python="$(command -v "$python")"
37 echo "python determined to be '$python'" 36 echo "python determined to be '$python'"
38 echo "python version: $($python --version)" 37 echo "python version: $($python --version)"
39 38
@@ -50,6 +49,3 @@ index 482a1f8ef3..0da4bf3e4d 100755
50 49
51 # Finish preparing the virtual environment using vendored .whl files 50 # Finish preparing the virtual environment using vendored .whl files
52 51
53--
542.44.0
55
diff --git a/meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch b/meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch
new file mode 100644
index 0000000000..1cc973443e
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/fix-strerrorname_np.patch
@@ -0,0 +1,35 @@
1From 7e09654fa179ad5fab1dc0a47886c6a1a2acc097 Mon Sep 17 00:00:00 2001
2From: Natanael Copa <ncopa@alpinelinux.org>
3Date: Wed, 18 Sep 2024 16:19:37 -0700
4Subject: [PATCH] target/riscv/kvm: do not use non-portable strerrorname_np()
5
6strerrorname_np is non-portable and breaks building with musl libc.
7
8Use strerror(errno) instead, like we do other places.
9
10Upstream-Status: Submitted [https://mail.gnu.org/archive/html/qemu-stable/2023-12/msg00069.html]
11
12Cc: qemu-stable@nongnu.org
13Fixes: commit 082e9e4a58ba (target/riscv/kvm: improve 'init_multiext_cfg' error
14msg)
15Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2041
16Buglink: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15541
17Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
18---
19 target/riscv/kvm/kvm-cpu.c | 3 +--
20 1 file changed, 1 insertion(+), 2 deletions(-)
21
22diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
23index 8001ca153..79fb43f92 100644
24--- a/target/riscv/kvm/kvm-cpu.c
25+++ b/target/riscv/kvm/kvm-cpu.c
26@@ -1968,8 +1968,7 @@ static bool kvm_cpu_realize(CPUState *cs, Error **errp)
27 if (riscv_has_ext(&cpu->env, RVV)) {
28 ret = prctl(PR_RISCV_V_SET_CONTROL, PR_RISCV_V_VSTATE_CTRL_ON);
29 if (ret) {
30- error_setg(errp, "Error in prctl PR_RISCV_V_SET_CONTROL, code: %s",
31- strerrorname_np(errno));
32+ error_setg(errp, "Error in prctl PR_RISCV_V_SET_CONTROL, error %d", errno);
33 return false;
34 }
35 }
diff --git a/meta/recipes-devtools/qemu/qemu/run-ptest b/meta/recipes-devtools/qemu/qemu/run-ptest
index f9a4e8fb2b..1157b48855 100644
--- a/meta/recipes-devtools/qemu/qemu/run-ptest
+++ b/meta/recipes-devtools/qemu/qemu/run-ptest
@@ -9,5 +9,10 @@ export SRC_PATH=$ptestdir
9cd $ptestdir/tests 9cd $ptestdir/tests
10tests=$(find . -name "test-*" ! -name "*.p") 10tests=$(find . -name "test-*" ! -name "*.p")
11for f in $tests; do 11for f in $tests; do
12 # Test hangs intermittently on qemurisc64 on autobuilder
13 if [ "$f" = "./unit/test-nested-aio-poll" -a `uname -m` = "riscv64" ]; then
14 continue
15 fi
16 echo "Running $f"
12 $f | sed '/^ok/ s/ok/PASS:/g' 17 $f | sed '/^ok/ s/ok/PASS:/g'
13done 18done
diff --git a/meta/recipes-devtools/qemu/qemu_9.0.0.bb b/meta/recipes-devtools/qemu/qemu_10.0.2.bb
index dc1352232e..5d544d8d13 100644
--- a/meta/recipes-devtools/qemu/qemu_9.0.0.bb
+++ b/meta/recipes-devtools/qemu/qemu_10.0.2.bb
@@ -7,6 +7,7 @@ DEPENDS += "glib-2.0 zlib pixman"
7DEPENDS:append:libc-musl = " libucontext" 7DEPENDS:append:libc-musl = " libucontext"
8 8
9CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" 9CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}"
10LDFLAGS:append:toolchain-clang:x86 = " -latomic"
10 11
11RDEPENDS:${PN}-common:class-target += "bash" 12RDEPENDS:${PN}-common:class-target += "bash"
12 13
diff --git a/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb b/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
index 6d0e7883ad..752ff3198d 100644
--- a/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
+++ b/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
@@ -2,8 +2,7 @@ SUMMARY = "QEMU wrapper script"
2HOMEPAGE = "http://qemu.org" 2HOMEPAGE = "http://qemu.org"
3LICENSE = "MIT" 3LICENSE = "MIT"
4 4
5S = "${WORKDIR}/sources" 5S = "${UNPACKDIR}"
6UNPACKDIR = "${S}"
7 6
8DEPENDS += "qemu-native" 7DEPENDS += "qemu-native"
9 8
@@ -27,7 +26,6 @@ if [ ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False',
27 exit 1 26 exit 1
28fi 27fi
29 28
30
31$qemu_binary $qemu_options "\$@" 29$qemu_binary $qemu_options "\$@"
32EOF 30EOF
33 31