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