Tuesday, June 7, 2005

Intel and Pre-Tiger Compatibility

It sounds like Universal Binaries won’t really be universal. The programming guidelines strongly suggest that GCC 4 is required to build Universal Binaries. However, applications compiled with Xcode and GCC 4 only run on Mac OS X 10.3.9 and later (if C++ is used) or 10.3 and later (if plain C is used). Will developers have to ship two separate .app files? There are still lots of Panther, and even Jaguar users.

Also, how will Intel’s compilers (which are apparently much better than GCC) factor in?

6 Comments RSS · Twitter

More from Chris Espinosa. I guess I should read all the lists before posting.

This hints that it may be possible to build a Universal Binary that works on 10.2.

I fiddled around with it for a few hours and didn't have any luck -- still getting the libmx missing errors on Jaguar.

From what I've seen in other mailing list messages, the root of the problem is GCC 4.0 having a dependency on the library -- and it's not there on Jaguar.


Also filed a bug at http://bugreport.apple.com -- the more the merrier.

Sure, it's bad form for developers to dictate their customers' OS versions, but encouraging users to stick with earlier versions of 10.3 seems tantamount to encouraging them not to worry their pretty little heads about security releases. Limiting future 10.3 support to 10.3.9 strikes me as the responsible thing for Apple and third-party developers alike.

I can say this because I don't know of any concrete reason why one might choose to stick with 10.3.8, outside of some glitches in Safari 1.3. Supporting Jaguar with a universal binary would be nice, but Jaguar's going to be even less of a factor by the time Intel-based Macs make universal binaries practical for regular folks.

It's a little messy to do this in Xcode, but you can build the PowerPC side of your binary with whatever compiler you want, build the Intel side with GCC 4.0, and use lipo to create a universal binary from the two. The PPC side will then run back to whatever OS version that compiler version supports, and the Intel version will run on Apple's Intel systems.

Obviously, if you'd like a better development experience for this or you'd like to be able to use GCC 4.0 to target earlier releases, file a bug report with Apple.

Leave a Comment