== Quote from Walter Bright ([email protected])'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     [email protected]     Runtime Wrangler


Reply via email to