kvm-unit-tests: Fix x86_64 to use host compiler
authorCyril Bur <cyrilbur@gmail.com>
Wed, 26 Oct 2016 03:19:15 +0000 (14:19 +1100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 26 Oct 2016 10:33:31 +0000 (12:33 +0200)
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>
package/kvm-unit-tests/Config.in
package/kvm-unit-tests/kvm-unit-tests.mk

index f77189601dafa97eef43f53b7f46dece7b394c26..d72c734e786baf233ddbf47f7dd86454325dafcf 100644 (file)
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_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 || \
                BR2_powerpc64le || BR2_x86_64
        help
index 7fd03add7df992b667526a11995cd101f2d62b28..1ace2e721a189bba9f5a8ae4bcec14d0a258c534 100644 (file)
@@ -28,9 +28,16 @@ endif
 
 KVM_UNIT_TESTS_CONF_OPTS =\
        --arch="$(KERNEL_ARCH)" \
-       --cross-prefix="$(TARGET_CROSS)" \
        --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
        cd $(@D) && ./configure $(KVM_UNIT_TESTS_CONF_OPTS)
 endef