From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nh0Y8-0003VA-Ur for qemu-devel@nongnu.org; Mon, 15 Feb 2010 07:59:40 -0500 Received: from [199.232.76.173] (port=48404 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nh0Y8-0003V2-MD for qemu-devel@nongnu.org; Mon, 15 Feb 2010 07:59:40 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1Nh0Y6-000735-P2 for qemu-devel@nongnu.org; Mon, 15 Feb 2010 07:59:40 -0500 Received: from [71.162.243.5] (port=53035 helo=grelber.thyrsus.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Nh0Xt-00070x-Ca for qemu-devel@nongnu.org; Mon, 15 Feb 2010 07:59:38 -0500 From: Rob Landley Subject: Re: [Qemu-devel] qemu-ppc can't run static uClibc binaries. Date: Mon, 15 Feb 2010 06:58:33 -0600 References: <201002110520.07620.rob@landley.net> <201002150510.22819.rob@landley.net> <8DF180F8-A6F3-4306-9B02-C6870156ADB1@suse.de> In-Reply-To: <8DF180F8-A6F3-4306-9B02-C6870156ADB1@suse.de> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201002150658.34614.rob@landley.net> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: qemu-devel@nongnu.org On Monday 15 February 2010 05:19:24 Alexander Graf wrote: > On 15.02.2010, at 12:10, Rob Landley wrote: > > On Sunday 14 February 2010 08:41:00 Alexander Graf wrote: > >> So the only case I can imagine that this breaks anything is that > >> uClibc requires register state to be 0. > > > > Yes, r3 (which is the exit code from the "exec" syscall, and thus 0 if it > > worked). In the BSD layout, it's argc (which can never be 0). > > > > http://lists.gnu.org/archive/html/qemu-devel/2007-03/msg00720.html > > So what you really want is something like > > #ifdef CONFIG_LINUX_USER > /* exec return value is always 0 */ > env->gpr[3] = 0; > #endif > > just after the #endif in your patch. If you had inlined your patch I > could've commented it there. Unfortunately kmail plays fast and loose with whitespace when I inline stuff. (Not always, but I can't tell by inspection when it's decided it was hungry for tabs or wanted to throw in that horrible UTF8 escaped whitespace.) I didn't explicitly set it because they're initialized to zero in function main() on line 2654 of linux-user/main.c. (Any regs we don't explicitly set to some other value start out zeroed in qemu.) If you prefer to make the requirements explicit, that works too, but a comment might do just as well. (I tend to prefer removing unnecessary work Linux doesn't need done, rather than adding extra code to undo the unnecessary work afterwards. Force of habit from years on busybox and such.) Rob -- Latency is more important than throughput. It's that simple. - Linus Torvalds