kvm-unit-tests: Fix x86_64 to use host compiler

kvm-unit-tests requires a multilib compiler for x86_64 as it compiles
32bit boot code.

This patch uses the BR2_HOSTARCH_NEEDS_IA32_COMPILER option to enforce
this and avoids using TARGET_CROSS for x86_64 targets and uses the host
32bit (and 64bit) capable compiler.

Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
[Thomas: reword comment in .mk file.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Cyril Bur 2016-10-26 14:19:15 +11:00 committed by Thomas Petazzoni
parent 76e10967e1
commit e1b344070c
2 changed files with 9 additions and 1 deletions

View File

@ -1,5 +1,6 @@
config BR2_PACKAGE_KVM_UNIT_TESTS config BR2_PACKAGE_KVM_UNIT_TESTS
bool "kvm-unit-tests" bool "kvm-unit-tests"
select BR2_HOSTARCH_NEEDS_IA32_COMPILER if BR2_x86_64=y
depends on BR2_arm || BR2_i386 || BR2_powerpc64 || \ depends on BR2_arm || BR2_i386 || BR2_powerpc64 || \
BR2_powerpc64le || BR2_x86_64 BR2_powerpc64le || BR2_x86_64
help help

View File

@ -28,9 +28,16 @@ endif
KVM_UNIT_TESTS_CONF_OPTS =\ KVM_UNIT_TESTS_CONF_OPTS =\
--arch="$(KERNEL_ARCH)" \ --arch="$(KERNEL_ARCH)" \
--cross-prefix="$(TARGET_CROSS)" \
--endian="$(KVM_UNIT_TESTS_ENDIAN)" --endian="$(KVM_UNIT_TESTS_ENDIAN)"
# For all architectures but x86-64, we use the target
# compiler. However, for x86-64, we use the host compiler, as
# kvm-unit-tests builds 32 bit code, which Buildroot toolchains for
# x86-64 cannot do.
ifneq ($(BR2_x86_64),y)
KVM_UNIT_TESTS_CONF_OPTS += --cross-prefix="$(TARGET_CROSS)"
endif
define KVM_UNIT_TESTS_CONFIGURE_CMDS define KVM_UNIT_TESTS_CONFIGURE_CMDS
cd $(@D) && ./configure $(KVM_UNIT_TESTS_CONF_OPTS) cd $(@D) && ./configure $(KVM_UNIT_TESTS_CONF_OPTS)
endef endef