From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DUA3F-00026D-FE for qemu-devel@nongnu.org; Fri, 06 May 2005 17:08:02 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DUA3A-00024I-88 for qemu-devel@nongnu.org; Fri, 06 May 2005 17:07:56 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DUA3A-000240-5C for qemu-devel@nongnu.org; Fri, 06 May 2005 17:07:56 -0400 Received: from [192.76.135.70] (helo=kurt.tools.de) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1DUA77-00057O-PH for qemu-devel@nongnu.org; Fri, 06 May 2005 17:12:02 -0400 Message-Id: <200505062106.j46L6MJZ029180@imap3.tools.intra> Date: Fri, 6 May 2005 23:06:22 +0200 (CEST) From: Juergen Keil Subject: Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real) MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii Content-MD5: ojSP2UnOxdRV2HWDkWOPgg== Reply-To: Juergen Keil , qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Heiko.Nardmann@secunet.com > I have retested on sparc (sol9), by adding some of the > defines in fenv.h for Solaris 10 to the gnu-c99-math.h > file you created, and the patches you posted, and now > I'm getting an error when I compile that looks like this: > > for d in i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu; do \ > gmake -C $d all || exit 1 ; \ > done > gmake[1]: Entering directory `/export/src/qemu-snapshot-2005-05-04_23-sol/i386-softmmu' > ../dyngen -c -o opc.h op.o > dyngen: ret; restore; not found at end of op_fstt_ST0_A0 > gmake[1]: *** [opc.h] Error 1 > gmake[1]: Leaving directory `/export/src/qemu-snapshot-2005-05-04_23-sol/i386-softmmu' > gmake: *** [all] Error 1 > > Ideas? Which compiler was used? Disassemble the op_fstt_ST0_A0 function, using "dis -F op_fstt_ST0_A0 op.o". My S10 sparc binary for op.o currently includes: % dis -F op_fstt_ST0_A0 i386-softmmu/op.o **** DISASSEMBLER **** disassembly for i386-softmmu/op.o section .text op_fstt_ST0_A0() op_fstt_ST0_A0: 9d e3 bf 90 save %sp, -0x70, %sp op_fstt_ST0_A0+0x4: 40 00 00 00 call op_fstt_ST0_A0+0x4 op_fstt_ST0_A0+0x8: 01 00 00 00 nop op_fstt_ST0_A0+0xc: 01 00 00 00 nop op_fstt_ST0_A0+0x10: 81 c7 e0 08 ret op_fstt_ST0_A0+0x14: 81 e8 00 00 restore I've seen cases where gcc 3.4.x has compiled the op.o code templates into "leaf" functions, and these are incompatible with dyngen. I think some extra gnu cc CFLAGS for op.c (-fno-omit-frame-pointer) fix this problem.