So, with Apple’s new “Universal” binary format, where Xcode creates programs that will run natively on both PPC and x86 chips, is there actually a single Mach-O file that contains code sections for both processor types, or are there two different executable files hiding inside of an application bundle?
Apple’s documentation kind of implies that the two architectures are stuffed into a single binary:
You can force a command line tool to run translated by entering the following in Terminal:
ditto -arch ppc tool /tmp/<toolname> /tmp/<toolname>
There only other statement that I see in the documentation that gives any details is this little gem:
Note: Xcode has per-architecure SDK support. For example, you can target Mac OS X v10.3 for PowerPC while also targeting Mac OS X v10.4.1 for Intel.
Between the two statements, it seems pretty likely that the PPC and x86 binaries are crammed into the same file, but probably don’t share static strings or any of the other parts of the executable file. They’re really just two distinct program files combined into a single physical file.
Are any other details on the universal binary process public yet?