diff options
author | Ross Burton <ross.burton@arm.com> | 2025-01-10 13:01:13 +0000 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2025-01-24 07:59:39 -0800 |
commit | 73d95d9dad384b2ab0a6484f512273a79a13d2f1 (patch) | |
tree | 2fadd0644d0ada1ccf363469cf4d74806ca2e380 | |
parent | 93c245a8686725b3b60cc253ed87131c74c27fdd (diff) | |
download | poky-73d95d9dad384b2ab0a6484f512273a79a13d2f1.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: 972ca555ff3aa41d32980477850c92915b6395ed)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 414b754a6cbb9cc354b1180efd5c3329568a2537)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r-- | meta/classes-recipe/qemu.bbclass | 8 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-testsuite.inc | 4 |
2 files changed, 4 insertions, 8 deletions
diff --git a/meta/classes-recipe/qemu.bbclass b/meta/classes-recipe/qemu.bbclass index dbb5ee0b66..8d7c82668b 100644 --- a/meta/classes-recipe/qemu.bbclass +++ b/meta/classes-recipe/qemu.bbclass | |||
@@ -60,8 +60,8 @@ def qemu_run_binary(data, rootfs_path, binary): | |||
60 | # this dance). For others (e.g. arm) a -cpu option is not necessary, since the | 60 | # this dance). For others (e.g. arm) a -cpu option is not necessary, since the |
61 | # qemu-arm default CPU supports all required architecture levels. | 61 | # qemu-arm default CPU supports all required architecture levels. |
62 | 62 | ||
63 | QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}" | 63 | QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('TUNE_PKGARCH')) or ""}" |
64 | QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}" | 64 | QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${TUNE_PKGARCH}" |
65 | 65 | ||
66 | QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2" | 66 | QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2" |
67 | QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc" | 67 | QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc" |
@@ -71,7 +71,3 @@ QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e500mc" | |||
71 | QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc" | 71 | QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc" |
72 | QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400" | 72 | QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400" |
73 | QEMU_EXTRAOPTIONS_powerpc64le = " -cpu POWER9" | 73 | QEMU_EXTRAOPTIONS_powerpc64le = " -cpu POWER9" |
74 | # Some packages e.g. fwupd sets PACKAGE_ARCH = MACHINE_ARCH and uses meson which | ||
75 | # needs right options to usermode qemu | ||
76 | QEMU_EXTRAOPTIONS_qemuppc = " -cpu 7400" | ||
77 | QEMU_EXTRAOPTIONS_qemuppc64 = " -cpu POWER9" | ||
diff --git a/meta/recipes-devtools/gcc/gcc-testsuite.inc b/meta/recipes-devtools/gcc/gcc-testsuite.inc index f16d471478..eb9ddead08 100644 --- a/meta/recipes-devtools/gcc/gcc-testsuite.inc +++ b/meta/recipes-devtools/gcc/gcc-testsuite.inc | |||
@@ -53,8 +53,8 @@ python check_prepare() { | |||
53 | # - valid for x86*, powerpc, arm, arm64 | 53 | # - valid for x86*, powerpc, arm, arm64 |
54 | if qemu_binary.endswith(("x86_64", "i386", "arm", "aarch64")): | 54 | if qemu_binary.endswith(("x86_64", "i386", "arm", "aarch64")): |
55 | args += ["-cpu", "max"] | 55 | args += ["-cpu", "max"] |
56 | elif qemu_binary.endswith(("ppc", "mips", "mips64")): | 56 | else: |
57 | extra = d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) | 57 | extra = d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('TUNE_PKGARCH')) |
58 | if extra: | 58 | if extra: |
59 | args += extra.split() | 59 | args += extra.split() |
60 | # For mips64 we could set a maximal CPU (e.g. Loongson-3A4000) however they either have MSA | 60 | # For mips64 we could set a maximal CPU (e.g. Loongson-3A4000) however they either have MSA |