ENVS/Tobskep

Misusing Universal Binaries

If you were expecting an in-depth technological write-up of exactly how this would be performed, I hate to disappoint. I don't honestly know much about the UBin format and I don't know if any of this is possible.

Apple has moved the Mac's CPU architecture around 3 times now.

The 68k to PPC transition took place well within the life and times of classic Mac OS, so that doesn't matter much on Mac OS X versions past 10.4. The latter two transitions are what piqued my interest.

During the transition from PowerPC to Intel x86, they created what's known as a 'Universal binary', a type of fat binary which allows for both a PowerPC and Intel version of a program to be shipped at once, for maximum compatibility with all current Macs. They defibrillated the dead binary format again when they transitioned from Intel to their own flavor of ARM.

This makes me wonder - the original Universal format was able to support 32-bit and 64-bit PowerPC processors, as well as both x86 and x86_64, creating a 4-architecture binary. With the ARM transition, there is an extra architecture thrown in, Apple's custom 64-bit ARM silicon. Though, theoretically, you can bump the number of architectures up to 6 if you want to compile in a useless ARM32 binary.

Of course, compiling a 6-architecture binary where two architectures are completely useless depending on platform isn't very practical, and is... well, stupid... but I'm a stupid guy, so I'm all about this sorta thing. I just gotta wonder...

Is PowerPC even still supported in modern versions of the lipo tool?

This site is built with new.css and some really bad hacks by yours truly.