Re: Mach-O binary format support and Darwin syscall personality[Was: uts banner changes]

From: Linus Torvalds
Date: Tue Dec 12 2006 - 11:25:31 EST




On Tue, 12 Dec 2006, Kyle Moffett wrote:
>
> So now I have to figure out how to set up a new syscall personality with a
> bunch of wrapper syscalls which reorder arguments and translate constant
> values before calling into the rest of the Linux code. I'm fairly sure it's
> possible because you can run some Solaris binaries under Linux if you turn on
> the appropriate BINFMT_* config option(s), but I'm totally unsure as to _how_.

What system call interface do Mach-O binaries use? Is it the old stupid
"lcall 7,0" thing, or does it use "sysenter" or something like that?

If it's sysenter, it's going to be "interesting". That code currently
doesn't support any kind of emulation, and the whole "sysenter" interface
is pretty grotty at a CPU level (it doesn't even save eip etc). So you'd
need to delve into x86 asm and arch/i386/kernel/entry.S (or the x86-64
equivalent).

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/