mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-27 12:30:34 -09:00
package/qemu: host-qemu does not support XOP capable CPUs
Commit 1f7efaf89f ("package/qemu: do not support x86_steamroller or
x86_core_avx2") excluded BR2_x86_steamroller from
BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS. This is still needed, but for a
different reason than AVX, and the exclusion is incomplete.
steamroller is bdver3, and what the Qemu TCG engine cannot emulate
there is not AVX, but the Bulldozer-specific XOP, FMA4, TBM and LWP
extensions. In Qemu 11.0.0 (the version we currently package) and
11.1.1, target/i386/cpu.c has:
#define TCG_EXT3_FEATURES (CPUID_EXT3_LAHF_LM | CPUID_EXT3_SVM | \
CPUID_EXT3_CR8LEG | CPUID_EXT3_ABM | CPUID_EXT3_SSE4A | \
CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_KERNEL_FEATURES | \
CPUID_EXT3_CMP_LEG)
CPUID_EXT3_XOP, CPUID_EXT3_FMA4, CPUID_EXT3_TBM and CPUID_EXT3_LWP are
defined in target/i386/cpu.h, but are not part of that mask, i.e. TCG
does not implement them. Binaries using those instructions therefore
die with:
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
This affects the whole Bulldozer family, not only steamroller:
bulldozer (bdver1), piledriver (bdver2) and excavator (bdver4) are
equally unsupported, but were never excluded.
Use the newly introduced BR2_X86_CPU_HAS_XOP symbol, which covers all
four variants, instead of listing BR2_x86_steamroller alone. As for
AVX512, this disables gobject-introspection and nodejs, which are the
two packages needing host-qemu in user mode.
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Assisted-by: Claude:claude-opus-5
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
committed by
Thomas Petazzoni
parent
f91407f012
commit
22c0ec4fcf
@@ -22,10 +22,11 @@ config BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS
|
||||
default y if BR2_sparc64
|
||||
default y if BR2_xtensa
|
||||
default y if BR2_x86_64
|
||||
depends on !BR2_x86_steamroller
|
||||
# The Qemu TCG engine does not implement the AVX512
|
||||
# instruction set, so binaries built for such CPUs cannot be
|
||||
# emulated.
|
||||
# The Qemu TCG engine implements neither the XOP instruction set
|
||||
# nor the other Bulldozer-specific extensions (FMA4, TBM, LWP),
|
||||
# and it does not implement the AVX512 instruction set either,
|
||||
# so binaries built for such CPUs cannot be emulated.
|
||||
depends on !BR2_X86_CPU_HAS_XOP
|
||||
depends on !BR2_X86_CPU_HAS_AVX512
|
||||
depends on !BR2_powerpc_620 && !BR2_powerpc_630
|
||||
|
||||
|
||||
Reference in New Issue
Block a user