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. Here's some documentation about how to do
that:
<http://developer.apple.com/documentation/developertools/conceptual/cross_development/Using/chapter_3_section_2.html#//apple_ref/doc/uid/20002000-1114311-BABGCAAB>
If
you use the 10.5 SDK, or no SDK at all, then the new APIs from 10.5 are
available and if your software links to some of that it won't be
possible to run it on 10.4. You can set the (minimum) deployment target
to 10.4 if you want: this will cause functions from 10.5 to be
weak-linked, and then you can check at runtime if they're available and
not use them if they're not. But if you don't need anything specific to
10.5, you should just use the 10.4 SDK and then you'll be pretty sure it
runs correctly there.
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().