From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=60998 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OBscE-0008Cf-5g for qemu-devel@nongnu.org; Tue, 11 May 2010 12:47:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OBscC-0003dG-1N for qemu-devel@nongnu.org; Tue, 11 May 2010 12:47:30 -0400 Received: from moutng.kundenserver.de ([212.227.17.10]:49206) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OBscB-0003d5-LH for qemu-devel@nongnu.org; Tue, 11 May 2010 12:47:27 -0400 Message-ID: <4BE98A13.1040103@mail.berlios.de> Date: Tue, 11 May 2010 18:47:15 +0200 From: Stefan Weil MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] [S390] Remove warning in tcg stub (tcg_out_reloc) References: <1273595012-19587-1-git-send-email-agraf@suse.de> In-Reply-To: <1273595012-19587-1-git-send-email-agraf@suse.de> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: qemu-devel@nongnu.org, Aurelien Jarno 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 > --- > 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