From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19kt5q-0008Qv-5f for qemu-devel@nongnu.org; Thu, 07 Aug 2003 18:18:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19kt5H-0008FE-Aj for qemu-devel@nongnu.org; Thu, 07 Aug 2003 18:18:43 -0400 Received: from [66.33.209.15] (helo=smaug.dreamhost.com) by monty-python.gnu.org with esmtp (Exim 4.20) id 19kt5G-0008Em-V5 for qemu-devel@nongnu.org; Thu, 07 Aug 2003 18:18:11 -0400 Received: from _HOSTNAME_ (cs2417545-42.austin.rr.com [24.175.45.42]) by smaug.dreamhost.com (Postfix) with ESMTP id B71355B828 for ; Thu, 7 Aug 2003 15:18:09 -0700 (PDT) From: "Jon Nall" Date: Thu, 7 Aug 2003 17:05:45 -0500 Subject: Re: [Qemu-devel] powerpc hang Message-ID: <20030807220544.GA3657@themountaingoats.net> References: <1060210228.10894.50.camel@lxws8.ad.newisys.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="JYK4vJDZwFMowpUq" Content-Disposition: inline In-Reply-To: <1060210228.10894.50.camel@lxws8.ad.newisys.com> Reply-To: qemu-devel@nongnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --JYK4vJDZwFMowpUq Content-Type: multipart/mixed; boundary="T4sUOijqQbZv57TR" Content-Disposition: inline --T4sUOijqQbZv57TR Content-Type: text/plain; charset=us-ascii Content-Disposition: inline i believe i've fixed the hang problem (see attached patch). here's my current findings with the binaries provided with qemu and the qemu-glibc tarball. hello-i386 -> runs with or without the patch below ls-i386 -> runs with the patch below, hangs without it test-i386 -> runs with the 3 exceptions: the func_lret32 and func_iret32 tests both die with a SIGSEGV. Also i get "Unsupported syscall: 252" when the program exits. i'm looking into both of these. anyone know what changed to cause the label offsets to be off by 4? nall. --T4sUOijqQbZv57TR Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="qemu-ppc.diff" Content-Transfer-Encoding: quoted-printable --- dyngen.c 11 Jul 2003 15:16:56 -0000 1.26 +++ dyngen.c 7 Aug 2003 21:19:55 -0000 @@ -687,7 +687,11 @@ =20 if (val >=3D start_offset && val < start_offset + copy= _size) { n =3D strtol(p, NULL, 10); +#if ( __GNUC__ =3D=3D 3) && defined(__powerpc__) + fprintf(outfile, " label_offsets[%d] =3D %d + (= gen_code_ptr - gen_code_buf);\n", n, val - start_offset + 4); +#else fprintf(outfile, " label_offsets[%d] =3D %d + (= gen_code_ptr - gen_code_buf);\n", n, val - start_offset); +#endif } } } --- exec.h 26 Jul 2003 12:06:08 -0000 1.13 +++ exec.h 7 Aug 2003 21:19:55 -0000 @@ -210,6 +210,7 @@ label ## n:\ T0 =3D (long)(tbparam) + (n);\ EIP =3D eip;\ + EXIT_TB();\ } while (0) =20 #else --T4sUOijqQbZv57TR-- --JYK4vJDZwFMowpUq Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/Ms04L6MPBxxYYYwRAh6BAJ94DlFhIMIzQ65Co8UtItrDDpvrbQCeM2qI Mc8W43yNjzHB2qmRzEDulms= =kHgF -----END PGP SIGNATURE----- --JYK4vJDZwFMowpUq--