[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 for-1.7] target-i386: Fix build by providing
From: |
Stefan Weil |
Subject: |
Re: [Qemu-devel] [PATCH v2 for-1.7] target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() |
Date: |
Thu, 14 Nov 2013 06:40:51 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 |
Am 14.11.2013 00:09, schrieb Peter Maydell:
> Fix build failures with clang when KVM is not enabled by
> providing a stub version of kvm_arch_get_supported_cpuid().
> We retain the compile time check that this function isn't
> called when CONFIG_KVM is not set by guarding the stub with
> ifndef __OPTIMIZE__ (we assume that an optimizing build will
> do sufficient constant folding and dead code elimination to
> remove the calls before linking).
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> Changes v1->v2:
> * guard stub with ifndef __OPTIMIZE__
> * make stub abort() rather than return bogus value
>
> target-i386/kvm-stub.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/target-i386/kvm-stub.c b/target-i386/kvm-stub.c
> index 11429c4..2b9e801 100644
> --- a/target-i386/kvm-stub.c
> +++ b/target-i386/kvm-stub.c
> @@ -16,3 +16,15 @@ bool kvm_allows_irq0_override(void)
> {
> return 1;
> }
> +
> +#ifndef __OPTIMIZE__
> +/* This function is only called inside conditionals which we
> + * rely on the compiler to optimize out when CONFIG_KVM is not
> + * defined.
> + */
> +uint32_t q(KVMState *env, uint32_t function,
> + uint32_t index, int reg)
> +{
> + abort();
> +}
> +#endif
Reviewed-by: Stefan Weil <address@hidden>
If you happen to write a v3 patch, g_assert_not_reached would be even
better than abort.
It's impossible to tell why QEMU terminated after an assert without a
debugger,
whereas g_assert_not_reached clearly shows the location.
Regards, Stefan