Statically linked binaries killed by signal 9 on Yosemite

Michael Crawford mdcrawford at
Sat Nov 15 09:32:40 PST 2014

Apple has never guaranteed support for fully static binaries, rather
it has explicitly discouraged them.

The reason is that Apple wants to be free to change the binary
interface for system calls.  My understanding is that they are, in
general, implemented by sending Mach messages from a dylib that is in
the frameworks that most userspace links to, into the kernel.

The ABI between userspace code and those dylibs is - for the most part
- constant, but one cannot count on the private ABI between the system
framework dylibs and the kernel.

In principle you can still make a fully-static binary work, but if
this is your problem, you will have to figure out what changed in
Apple's private kernel ABI.

I'm not so sure I'm cool with this but it is a fact that Apple has
always been clear that it does not support system calls directly into
the kernel.

I'll send you my bill in the mail.
Michael David Crawford
mdcrawford at

   Available for Software Development in the Portland, Oregon Metropolitan

On Sat, Nov 15, 2014 at 9:20 AM, Brandon Allbery <allbery.b at> wrote:
> On Sat, Nov 15, 2014 at 12:17 PM, René J.V. <rjvbertin at> wrote:
>> Have you asked your users to start the executable in the debugger to see
>> if the SIGTERM results from an abort function being called or something
>> else?
> 9 is SIGKILL, not SIGTERM.
> I am under the impression that Apple doesn't like fully static executables
> any more; it's possible that 10.10 just refuses to run them now.
> might show what's going on.
> --
> brandon s allbery kf8nh                               sine nomine associates
> allbery.b at                                  ballbery at
> unix, openafs, kerberos, infrastructure, xmonad
> _______________________________________________
> macports-users mailing list
> macports-users at

More information about the macports-users mailing list