mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-04 16:10:04 +00:00
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>
This commit is contained in:
parent
83dfb365a8
commit
966aead7e8
|
|
@ -54,8 +54,8 @@ def qemu_run_binary(data, rootfs_path, binary):
|
|||
# this dance). For others (e.g. arm) a -cpu option is not necessary, since the
|
||||
# qemu-arm default CPU supports all required architecture levels.
|
||||
|
||||
QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')) or ""}"
|
||||
QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
|
||||
QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('TUNE_PKGARCH')) or ""}"
|
||||
QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${TUNE_PKGARCH}"
|
||||
|
||||
QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
|
||||
QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc"
|
||||
|
|
@ -65,7 +65,3 @@ QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e500mc"
|
|||
QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc"
|
||||
QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400"
|
||||
QEMU_EXTRAOPTIONS_powerpc64le = " -cpu POWER9"
|
||||
# Some packages e.g. fwupd sets PACKAGE_ARCH = MACHINE_ARCH and uses meson which
|
||||
# needs right options to usermode qemu
|
||||
QEMU_EXTRAOPTIONS_qemuppc = " -cpu 7400"
|
||||
QEMU_EXTRAOPTIONS_qemuppc64 = " -cpu POWER9"
|
||||
|
|
|
|||
|
|
@ -53,8 +53,10 @@ python check_prepare() {
|
|||
# - valid for x86*, powerpc, arm, arm64
|
||||
if qemu_binary.lstrip("qemu-") in ["x86_64", "i386", "arm", "aarch64"]:
|
||||
args += ["-cpu", "max"]
|
||||
elif qemu_binary.lstrip("qemu-") in ["ppc"]:
|
||||
args += d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')).split()
|
||||
else:
|
||||
extra = d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('TUNE_PKGARCH'))
|
||||
if extra:
|
||||
args += extra.split()
|
||||
sysroot = d.getVar("RECIPE_SYSROOT")
|
||||
args += ["-L", sysroot]
|
||||
# lib paths are static here instead of using $libdir since this is used by a -cross recipe
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user