public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Kyle Moffett <mrmacman_g4@mac.com>
Cc: Linus Torvalds <torvalds@osdl.org>,
	LKML Kernel <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>
Subject: Re: Mach-O binary format support and Darwin syscall personality [Was: uts banner changes]
Date: Wed, 13 Dec 2006 09:21:23 +1100	[thread overview]
Message-ID: <1165962083.11914.85.camel@localhost.localdomain> (raw)
In-Reply-To: <D571C4CB-3D52-446C-802E-024C4C333562@mac.com>


> The PPC syscall stuff on the other hand is fairly straightforward.   
> The code loads the argument registers (which I _think_ follow the  
> same syscall ABI on Linux and Darwin due to somebody having a flash  
> of inspiration and putting that recommendation in the PPC spec  
> documents) 

I wouldn't bet on that ... they might look the same but it's likely that
there will be subtle differences. There are definitely differences
between the PEF ABI used on MacOS < X (and useable in OS X with a
special loader) and the SysV ABI we use in Linux. The differences
generally are around those areas:

 - stack frame format (hopefully should be irrelevant for syscalls,
well, I hope so ...)
 - va_args format (same)
 - passing or returning function arguments larger than the native int
size (passing 64 bits values, passing structures by values)  (r3/r4 vs.
stack for example).
 - TOC/TLS/whatever is in r2, r12 and r13 ...

I would expect most of these but not all to be irrelevant for syscalls.

Now, I don't know precisely what the mach-o ABI looks like, we might be
lucky and it may be similar to ours. PEF is not, but then, PEF isn't
native in OS-X, they use a special loader/wrapper for it.

Also, beware that there are two different ABIs (both in linux and in
mach-o) for 32 and 64 bits binaries.

Ben.



  parent reply	other threads:[~2006-12-12 22:21 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-11 15:11 2.6.19-git13: uts banner changes break SLES9 (at least) Andy Whitcroft
2006-12-11 16:33 ` Olaf Hering
2006-12-11 16:44   ` Linus Torvalds
2006-12-11 16:52     ` Linus Torvalds
2006-12-11 18:04       ` Olaf Hering
2006-12-11 18:18         ` Olaf Hering
2006-12-11 18:26           ` Linus Torvalds
2006-12-11 18:29             ` Herbert Poetzl
2006-12-11 18:43               ` Linus Torvalds
2006-12-11 18:55                 ` Olaf Hering
2006-12-11 19:11                   ` Linus Torvalds
2006-12-11 22:04                     ` Paul Mackerras
2006-12-12  0:05                       ` David Miller
2006-12-12  9:10                         ` Gerd Hoffmann
2006-12-11 19:20                 ` Andy Whitcroft
2006-12-11 19:36                   ` Linus Torvalds
2006-12-11 22:42                     ` Andy Whitcroft
2006-12-11 19:37                   ` Herbert Poetzl
2006-12-11 19:56                   ` Olaf Hering
2006-12-11 20:05                     ` Linus Torvalds
2006-12-11 20:09                       ` Linus Torvalds
2006-12-11 20:21                       ` Greg KH
2006-12-11 20:16                     ` Olaf Hering
2006-12-11 20:15                   ` Theodore Tso
2006-12-11 20:23                     ` Arjan van de Ven
2006-12-11 21:16                     ` H. Peter Anvin
2006-12-11 18:49             ` Olaf Hering
2006-12-12 12:23             ` Mach-O binary format support and Darwin syscall personality [Was: uts banner changes] Kyle Moffett
2006-12-12 16:23               ` Linus Torvalds
2006-12-12 17:56                 ` Kyle Moffett
2006-12-12 18:20                   ` Linus Torvalds
2006-12-12 22:34                     ` Kyle Moffett
2006-12-12 22:38                       ` Benjamin Herrenschmidt
2006-12-12 22:57                         ` Linus Torvalds
2006-12-12 22:21                   ` Benjamin Herrenschmidt [this message]
2006-12-15 12:53                   ` Pavel Machek
2006-12-11 17:50     ` 2.6.19-git13: uts banner changes break SLES9 (at least) Olaf Hering
2006-12-11 17:57       ` Arjan van de Ven
2006-12-11 18:00         ` Olaf Hering
2006-12-11 18:08           ` Arjan van de Ven
2006-12-11 18:14             ` Olaf Hering
2006-12-11 19:03               ` Arjan van de Ven
2006-12-11 19:37               ` Jan Engelhardt
2006-12-11 18:19       ` Linus Torvalds
2006-12-11 18:40         ` Olaf Hering
2006-12-11 18:52           ` Linus Torvalds
2006-12-11 19:34     ` Jan Engelhardt
2006-12-11 21:15     ` H. Peter Anvin

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=1165962083.11914.85.camel@localhost.localdomain \
    --to=benh@kernel.crashing.org \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mrmacman_g4@mac.com \
    --cc=torvalds@osdl.org \
    /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