From 48291f20749f0ea28c59f041015cf8b7f614b6a9 Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Wed, 27 Jan 2016 12:58:51 -0800 Subject: qemu.bbclass: clarify QEMU_EXTRAOPTIONS QEMU_EXTRAOPTIONS is a way to add PACKAGE_ARCH specific options to the qemu_run_binary qemu commandline. The base QEMU_EXTRAOPTIONS variable (ie without a PACKAGE_ARCH suffix) is not used, so defining it, either directly or via an over-ride has no effect. Although previously an over-ride for _armv7a was used, it did nothing for most armv7a builds, which typically use PACKAGE_ARCH values such as "cortexa9hf-neon". In practice this worked OK since without a -cpu option, qemu-arm will default to emulating a CPU which supports all required architecture levels. qemu-arm (v2.5.0) with no -cpu option has been confirmed to successfully run binaries built for armv7ve. Signed-off-by: Andre McCurdy Signed-off-by: Ross Burton (cherry picked from commit 62b25b3489b44969e4adad657daebfaffdb4de56) Signed-off-by: Andreas Oberritter --- meta/classes/qemu.bbclass | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass index 315c17f2ff..c696085ddf 100644 --- a/meta/classes/qemu.bbclass +++ b/meta/classes/qemu.bbclass @@ -35,18 +35,20 @@ def qemu_run_binary(data, rootfs_path, binary): + " -E LD_LIBRARY_PATH=" + libdir + ":" + base_libdir + " "\ + rootfs_path + binary -# QEMU_EXTRAOPTIONS is not meant to be directly used, the extensions are -# PACKAGE_ARCH, not overrides and hence have to do this dance. Simply being arch -# specific isn't good enough. +# QEMU_EXTRAOPTIONS is not meant to be directly used, the extensions are +# PACKAGE_ARCH, *NOT* overrides. +# In some cases (e.g. ppc) simply being arch specific (apparently) isn't good +# enough and a PACKAGE_ARCH specific -cpu option is needed (hence we have to do +# 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', True), True) or ""}" QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}" -QEMU_EXTRAOPTIONS_iwmmxt = " -cpu pxa270-c5" -QEMU_EXTRAOPTIONS_armv6 = " -cpu arm1136" -QEMU_EXTRAOPTIONS_armv7a = " -cpu cortex-a8" + QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2" QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc" QEMU_EXTRAOPTIONS_ppce5500 = " -cpu e5500" QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e5500" QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e6500" QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e6500" -QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400" +QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400" -- cgit 1.2.3-korg