From: Rob Landley <rob@landley.net>
To: Alexander Graf <agraf@suse.de>
Cc: riku.voipio@iki.fi,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] qemu-ppc can't run static uClibc binaries.
Date: Tue, 16 Feb 2010 12:31:53 -0600 [thread overview]
Message-ID: <201002161231.54740.rob@landley.net> (raw)
In-Reply-To: <23C4D0AC-090B-4FEA-96EF-DAD40D1F3716@suse.de>
On Monday 15 February 2010 07:01:02 Alexander Graf wrote:
> 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 :-).
No git command is my friend. The user interface of that monstrosity should be
<strike>condemned</strike> banished with full bell book and dribbly candles.
And I dunno how it would interface with kmail. (No other program on my laptop
has the ssh tunnel to my mail server set up so it can send anything.) But out
of curiosity...
landley@driftwood:~$ git send-mail
git: 'send-mail' is not a git-command. See 'git --help'.
landley@driftwood:~$ git-send-mail
bash: git-send-mail: command not found
landley@driftwood:~$ git send mail
git: 'send' is not a git-command. See 'git --help'.
Since it's unlikely that this could send a patch I haven't checked into git
(and I generally treat git as a read-only resource), learning more about it
goes on the todo list I expect.
> > 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?
*shrug* It doesn't.
Let's see, one of the lines I #ifdefed out (line 535-ish of linux-
user/elfload.c) is:
get_user_ual(_regs->gpr[3], pos);
Rummage, rummage... get_user_ual() is a wrapper for get_user() which is a
wrapper for __get_user() which assigns to its first argument. So yeah, that's
setting _regs->gpr[3] to a nonzero value.
I don't know if that's the _only_ problem the block of code I #ifdefed out was
causing, but in general that whole section is specifically for BSD, and makes
the behavior diverge from that of the Linux kernel.
> > 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.
Not all Linux binaries are going to run on BSD. This is a case where the
behavior of the two honestly diverges, and existing code depends on the actual
linux-kernel behavior.
> But this is Riku's call. He's the linux-user maintainer.
Hi Riku!
/me makes puppy eyes at Riku.
> Alex
Rob
--
Latency is more important than throughput. It's that simple. - Linus Torvalds
next prev parent reply other threads:[~2010-02-16 18:32 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-11 11:20 [Qemu-devel] qemu-ppc can't run static uClibc binaries Rob Landley
2010-02-11 12:32 ` Alexander Graf
2010-02-14 8:36 ` Rob Landley
2010-02-14 14:41 ` Alexander Graf
2010-02-15 11:10 ` Rob Landley
2010-02-15 11:19 ` Alexander Graf
2010-02-15 12:58 ` Rob Landley
2010-02-15 13:01 ` Alexander Graf
2010-02-16 18:31 ` Rob Landley [this message]
2010-02-16 18:36 ` Alexander Graf
2010-02-16 19:14 ` Rob Landley
2010-02-15 13:08 ` [Qemu-devel] " Michael S. Tsirkin
2010-02-16 0:52 ` Rob Landley
2010-02-16 9:31 ` Alexander Graf
2010-02-16 18:14 ` Rob Landley
2010-02-17 9:24 ` Artyom Tarasenko
2010-02-17 15:45 ` Paolo Bonzini
2010-02-17 18:55 ` Rob Landley
2010-02-17 20:46 ` Blue Swirl
2010-02-18 11:38 ` Artyom Tarasenko
2010-02-18 13:17 ` Rob Landley
2010-02-18 14:10 ` Artyom Tarasenko
2010-02-18 13:05 ` Rob Landley
2010-02-18 11:21 ` Artyom Tarasenko
2010-02-18 13:14 ` Rob Landley
2010-02-18 14:19 ` Artyom Tarasenko
2010-02-20 17:17 ` [Qemu-devel] Fun with sparc (was Re: qemu-ppc can't run static uClibc binaries.) Rob Landley
2010-02-20 17:34 ` [Qemu-devel] " Blue Swirl
2010-02-20 18:38 ` Rob Landley
2010-02-20 21:59 ` Blue Swirl
2010-02-20 23:12 ` Rob Landley
2010-02-21 16:25 ` [Qemu-devel] Commit 085219f79cad broke Sparc-32 back in 2.6.28 Rob Landley
2010-02-21 23:57 ` [Qemu-devel] " David Miller
2010-02-22 0:28 ` Bartlomiej Zolnierkiewicz
2010-02-22 2:03 ` Rob Landley
2010-02-22 2:06 ` David Miller
2010-02-20 21:59 ` [Qemu-devel] Re: Fun with sparc (was Re: qemu-ppc can't run static uClibc binaries.) Artyom Tarasenko
2010-02-20 21:39 ` Artyom Tarasenko
2010-02-20 22:03 ` Blue Swirl
2010-02-17 16:36 ` [Qemu-devel] Re: qemu-ppc can't run static uClibc binaries Rob Landley
2010-02-16 8:21 ` [Qemu-devel] " Stuart Brady
2010-02-28 21:05 ` Aurelien Jarno
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201002161231.54740.rob@landley.net \
--to=rob@landley.net \
--cc=agraf@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).