From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Weil Subject: Re: [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 Message-ID: <52846263.1020608@weilnetz.de> References: <1384384147-11076-1-git-send-email-peter.maydell@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Gleb Natapov , kvm@vger.kernel.org, patches@linaro.org, Andreas Tobler , Anthony Liguori , Paolo Bonzini , Richard Henderson To: Peter Maydell , qemu-devel@nongnu.org Return-path: In-Reply-To: <1384384147-11076-1-git-send-email-peter.maydell@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org 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 > --- > 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 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