On Wed, Aug 11, 2010 at 3:33 PM, Stefan Weil
<address@hidden> wrote:
Am 11.08.2010 11:33, schrieb C K Kashyap:
I was wondering if it would be easy to force build the
user-emulation on mac - as in, lets say my a.out from linux is really
trivial - even statically linked for that matter. All it does is, say,
write "hello world\n" to the screen - I'd imaging that write system
call would be similar on mac (as far as writing to stdout is concerned)
.... Would it be possible/easy to give it a shot?
It should be possible. Projects like wine can emulate windows system
calls on linux.
Emulating darwin system calls on linux is much easier.
If you want to try it yourself, you could start by removing the exit
from file configure:
if test "$linux" != "yes" ; then
echo "ERROR: Target '$target' is only available on a Linux host"
# exit 1
fi
Then you can run 'configure --target-list=i386-linux-user'.
Run make and fix all error messages which you will get.
If you think they are in code which you don't need for your a.out,
#if 0 ... #endif helps to remove that code.
Run the new-built qemu-i386 with your a.out and fix the remaining bugs.
That's all :-)
On Wed, Aug 11, 2010 at 2:48 PM, Stefan Weil <address@hidden>
wrote:
Am 11.08.2010 11:06, schrieb C K Kashyap:
Let me see if I understand this right -
qemu loads the a.out and begins to interpret the x86 instructions in
the a.out and when a system call happens, it makes the call the host
system .... is that right?
Right. That's the way how linux user mode emulation (for
example
qemu-i386) works.
See linux-user/syscall.c if you want to see more details.
bsd-user and darwin-user are also supported (more or less), but
darwin-user
only supports translation of darwin/powerpc to darwin/x86 syscalls.
It won't help you to run a linux a.out on your mac.
On Wed, Aug 11, 2010 at 2:12 PM, Stefan Weil <address@hidden>
wrote:
Am 11.08.2010 10:31, schrieb C K Kashyap:
Hi,
I've built qemu on my mac osx using this config -
./configure --prefix=/Users/ckk/local/ --target-list="i386-softmmu
x86_64-softmmu" --enable-linux-user
Now, I have a simple a.out built on linux - how can I run it using qemu
on my mac box?
--
Regards,
Kashyap
Hi Kashyap,
you cannot run it in user mode emulation unless you replace Mac OS by
Linux
on your mac box. Linux user emulations requires a Linux host.
If you have a Linux host, you would need --target-list=i386-linux-user.
You can run your a.out if you run system emulation (e.g.
i386-softmmu/qemu)
and install Linux there, of course.
Regards,
Stefan
--
Regards,
Kashyap
--
Regards,
Kashyap