summaryrefslogtreecommitdiffstats
path: root/meta/classes/qemu.bbclass
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2025-01-10 13:13:39 +0000
committerSteve Sakoman <steve@sakoman.com>2025-01-24 07:49:28 -0800
commit966aead7e857386206e69b37487e9ace6ee31eba (patch)
treeaaf33865aebb72ee0fb1ee5a9c112ebc0254326d /meta/classes/qemu.bbclass
parent83dfb365a81248aa3453bd62e24d870aae862f0b (diff)
downloadpoky-966aead7e857386206e69b37487e9ace6ee31eba.tar.gz
classes/qemu: use tune to select QEMU_EXTRAOPTIONS, not package architecture
Using the package architecture to select the right qemu options to pass to qemu-user is incorrect, and fails for recipes that set PACKAGE_ARCH to MACHINE_ARCH (as the qemuppc workarounds suggest) because there are not typically any options set for the machine name. Solve this by using TUNE_PKGARCH instead: for the majority of recipes this is the same value, but for machine-specific recipes it remains the same instead of changing to the machine name. This means we can remove the qemuppc workarounds, as they're obsolete. Also update the gcc-testsuite recipe which uses the same pattern to use TUNE_PKGARCH, and generalise the else codepath to avoid needing to update the list of architectures. [ YOCTO #15647 ] (From OE-Core rev: 077aab43f2c928eb8da71934405c62327010f552) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/classes/qemu.bbclass')
-rw-r--r--meta/classes/qemu.bbclass8
1 files changed, 2 insertions, 6 deletions
diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
index 7493ac34d4..1b888f4699 100644
--- a/meta/classes/qemu.bbclass
+++ b/meta/classes/qemu.bbclass
@@ -54,8 +54,8 @@ def qemu_run_binary(data, rootfs_path, binary):
54# this dance). For others (e.g. arm) a -cpu option is not necessary, since the 54# this dance). For others (e.g. arm) a -cpu option is not necessary, since the
55# qemu-arm default CPU supports all required architecture levels. 55# qemu-arm default CPU supports all required architecture levels.
56 56
57QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}" 57QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('TUNE_PKGARCH')) or ""}"
58QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}" 58QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${TUNE_PKGARCH}"
59 59
60QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2" 60QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
61QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc" 61QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc"
@@ -65,7 +65,3 @@ QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e500mc"
65QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc" 65QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc"
66QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400" 66QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400"
67QEMU_EXTRAOPTIONS_powerpc64le = " -cpu POWER9" 67QEMU_EXTRAOPTIONS_powerpc64le = " -cpu POWER9"
68# Some packages e.g. fwupd sets PACKAGE_ARCH = MACHINE_ARCH and uses meson which
69# needs right options to usermode qemu
70QEMU_EXTRAOPTIONS_qemuppc = " -cpu 7400"
71QEMU_EXTRAOPTIONS_qemuppc64 = " -cpu POWER9"