Patchwork ppce500_mpc8544ds: Fix compile with --enable-debug and --disable-kvm

login
register
mail settings
Submitter David Gibson
Date April 8, 2011, 10:08 a.m.
Message ID <1302257305-5425-1-git-send-email-david@gibson.dropbear.id.au>
Download mbox | patch
Permalink /patch/90304/
State New
Headers show

Comments

David Gibson - April 8, 2011, 10:08 a.m.
When configured with --enable-debug, we compile without optimization.
This means that the function mpc8544_copy_soc_cell() in ppce500_mpc8544ds.c
is not optimized out, even though it is never called without kvm.  That in
turn causes a link failure, because it calls the function
kvmppc_read_host_property() which is in kvm_ppc.o and therefore not
included in a --disable-kvm build.

This patch fixes the problem by providing a dummy stub for
kvmppc_read_host_property() in kvm_ppc.h when !CONFIG_KVM.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 target-ppc/kvm_ppc.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
Alexander Graf - April 8, 2011, 10:19 a.m.
On 08.04.2011, at 12:08, David Gibson wrote:

> When configured with --enable-debug, we compile without optimization.
> This means that the function mpc8544_copy_soc_cell() in ppce500_mpc8544ds.c
> is not optimized out, even though it is never called without kvm.  That in
> turn causes a link failure, because it calls the function
> kvmppc_read_host_property() which is in kvm_ppc.o and therefore not
> included in a --disable-kvm build.
> 
> This patch fixes the problem by providing a dummy stub for
> kvmppc_read_host_property() in kvm_ppc.h when !CONFIG_KVM.

Looks good. When we get more such cases we should probably move this into our own kvm-stub.c, but for now having it in a header is good enough.

I'll take this into the ppc-next tree and send a pull request shortly.


Alex

Patch

diff --git a/target-ppc/kvm_ppc.h b/target-ppc/kvm_ppc.h
index 5afb308..45a1373 100644
--- a/target-ppc/kvm_ppc.h
+++ b/target-ppc/kvm_ppc.h
@@ -11,8 +11,17 @@ 
 
 void kvmppc_init(void);
 void kvmppc_fdt_update(void *fdt);
+#ifndef CONFIG_KVM
+static inline int kvmppc_read_host_property(const char *node_path, const char *prop,
+                                            void *val, size_t len)
+{
+    assert(0);
+    return -ENOSYS;
+}
+#else
 int kvmppc_read_host_property(const char *node_path, const char *prop,
                                      void *val, size_t len);
+#endif
 
 uint32_t kvmppc_get_tbfreq(void);
 int kvmppc_get_hypercall(CPUState *env, uint8_t *buf, int buf_len);