Thanks Stefan for the explanation ... It does not look like a pleasant thing
to do though :)

On Wed, Aug 11, 2010 at 3:33 PM, Stefan Weil <w...@mail.berlios.de> 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 <w...@mail.berlios.de>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 <w...@mail.berlios.de>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
>
>
>


-- 
Regards,
Kashyap

Reply via email to