Hi Phil,

On Mon, 2013-08-12 at 11:31 +0100, Phil Evans wrote:
> I do have problems building static executables on OSX: the CCP4 guys seem to 
> be better at it.
> 
> Specifically, when I build with a "static" flag, fatal error messages from 
> program exceptions get lost, making it hard to understand some serious errors.

Apple does not support fully static binaries on OS X, so I would expect
some measure of difficulty there. At the very least, some system
components need to be loaded dynamically for compatibility reasons. If
you want to link against static versions of CCP4 libraries (or libraries
created from your own or other people's source code) to get an
almost-static binary, that is OK, but in your position I wouldn't try to
go the whole way to a full static executable.

The situation is explained in this technical Q&A from Apple:

<http://developer.apple.com/library/mac/qa/qa1118/_index.html>

Personally, I would stick with Apple's recommendations. If any
Apple-supplied libraries required for a dynamic executable to work are
missing on someone's system, so many other things will be broken that
getting aimless or pointless to work will be the least of their
problems.

If you need to check that you have statically linked all the libraries
that you intended to link statically, you can use the command 'otool
-L /path/to/executable'. If the only one listed is something like:

> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 111.1.3)

then I think that is probably as static as you should go on Os X.

Regards,
Peter.


-- 
Peter Keller                                     Tel.: +44 (0)1223 353033
Global Phasing Ltd.,                             Fax.: +44 (0)1223 366889
Sheraton House,
Castle Park,
Cambridge CB3 0AX
United Kingdom

Reply via email to