Just one more thing...

Greg Parker gparker at apple.com
Sun Feb 22 11:29:18 PST 2009


== Quote from Walter Bright (newshound1 at digitalmars.com)'s article
> Michel Fortin wrote:
> >> Is 10.5 really binary incompatible with 10.4 ?
> >
> > It is compatible, unless you're using a new API or new linker features
> > which weren't available in 10.4.
> >
> > Development on Mac OS X works by choosing a target SDK and a deployment
> > target version. Unless you want to use new APIs from 10.5, you should
> > use the MacOSX10.4u.sdk SDK.
>
> It's hard to see what that might be. dmd uses nothing but the generic
> linker commands, in fact, it uses gcc to do the link. It also doesn't
> use any but the basic api functions like read() and write().

You'll be affected pretty much no matter what you use. Changes between OS versions have included:
* the libc and dynamic linker bootstrap process. Basically, crt.o changed, and you can't compile with the
new crt.o and run on an old OS.
* UNIX compliance. Some functions changed for UNIX compliance, so now libc includes _read and
_read$UNIX2003 for example. If you build with UNIX compliance on (which is the default), then you'll
magically link to the _read$UNIX2003 symbol, which doesn't exist on older OS versions.

You can get backwards compatibility, but you have to ask for it with the SDK and min-version settings.


--
Greg Parker     gparker at apple.com     Runtime Wrangler




More information about the Digitalmars-d-announce mailing list