From fef106b9b97ec48bad2b9a084357b884f653d6c8 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 8 Feb 2016 15:00:24 +0000 Subject: tune-corei7.inc: tell qemu to emulate a matching processor If tune-corei7 is in use then the target binaries may contain instructions that qemu-x86-64 can't execute by default, resulting in errors on rootfs construction: NOTE: Running intercept scripts: NOTE: > Executing update_font_cache intercept ... qemu: uncaught target signal 4 (Illegal instruction) - core dumped In this case the instruction is popcnt, part of SSE4.2, so tell Qemu to emulate the CPU that the tune targets (in this case, Nehalem). Also pass check=false as the Nehalem machine supports VME but user-space qemu doesn't, which produces a warning unless CPUID checking is disabled. [ YOCTO #8888 ] Signed-off-by: Ross Burton --- meta/conf/machine/include/tune-corei7.inc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta/conf/machine/include/tune-corei7.inc b/meta/conf/machine/include/tune-corei7.inc index d245d9fba3..153a21bc94 100644 --- a/meta/conf/machine/include/tune-corei7.inc +++ b/meta/conf/machine/include/tune-corei7.inc @@ -11,6 +11,7 @@ DEFAULTTUNE ?= "corei7-64" # Pull in the previous tune in to pull in PACKAGE_EXTRA_ARCHS require conf/machine/include/tune-core2.inc + # Extra tune features TUNEVALID[corei7] = "Enable corei7 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'corei7', ' -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2', '', d)}" @@ -21,15 +22,18 @@ TUNE_FEATURES_tune-corei7-32 = "${TUNE_FEATURES_tune-x86} corei7" BASE_LIB_tune-corei7-32 = "lib" TUNE_PKGARCH_tune-corei7-32 = "corei7-32" PACKAGE_EXTRA_ARCHS_tune-corei7-32 = "${PACKAGE_EXTRA_ARCHS_tune-core2} corei7-32" +QEMU_EXTRAOPTIONS_corei7-32 = " -cpu Nehalem,check=false" AVAILTUNES += "corei7-64" TUNE_FEATURES_tune-corei7-64 = "${TUNE_FEATURES_tune-x86-64} corei7" BASE_LIB_tune-corei7-64 = "lib64" TUNE_PKGARCH_tune-corei7-64 = "corei7-64" PACKAGE_EXTRA_ARCHS_tune-corei7-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} corei7-64" +QEMU_EXTRAOPTIONS_corei7-64 = " -cpu Nehalem,check=false" AVAILTUNES += "corei7-64-x32" TUNE_FEATURES_tune-corei7-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} corei7" BASE_LIB_tune-corei7-64-x32 = "libx32" TUNE_PKGARCH_tune-corei7-64-x32 = "corei7-64-x32" PACKAGE_EXTRA_ARCHS_tune-corei7-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64-x32} corei7-64-x32" +QEMU_EXTRAOPTIONS_corei7-64-x32 = " -cpu Nehalem,check=false" -- cgit v1.2.3