== 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
