Am 11.05.2010 18:23, schrieb Alexander Graf:
On S390 we don't have a real TCG implementation but use a stub instead. This stub obviously doesn't call any of the TCG helper functions that are usually
used by the other TCG targets.

If such a helper function is static though, we end up getting a warning that turns into an error thanks to Werror. So to successfully compile qemu, we need
to get rid of it. In this case it's tcg_out_reloc.

To do that, I figured the easiest way is to call tcg_out_reloc with dumb
parameters after an abort call. That way the code in question never gets
executed, but we got rid of the warning.

Signed-off-by: Alexander Graf <ag...@suse.de>
---
tcg/s390/tcg-target.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c
index 265194a..f1a336d 100644
--- a/tcg/s390/tcg-target.c
+++ b/tcg/s390/tcg-target.c
@@ -35,6 +35,12 @@ static void patch_reloc(uint8_t *code_ptr, int type,
tcg_target_long value, tcg_target_long addend)
{
tcg_abort();
+
+ /*
+ * XXX We need to call this function at least once, since it's static.
+ * Please remove that code when implementing real s390x tcg support.
+ */
+ tcg_out_reloc(NULL, NULL, 0, 0, 0);
}

static inline int tcg_target_get_call_iarg_regs_count(int flags)

Won't you get another warning about unreachable code
because tcg_abort never returns?

What about condition compilation for tcg_out_reloc
(don't compile it for hosts which don't need it)?

Regards,
Stefan


Reply via email to