On 15.02.2010, at 13:58, Rob Landley wrote: > 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.)
git-send-mail is your friend :-). > 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.) So it should work already? > 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.) Well, I personally prefer to always use the same code paths whenever possible. That makes the code less prone to failure in odd configurations. And we have a lot of different combinations of those in Qemu. But this is Riku's call. He's the linux-user maintainer. Alex