3 ms·
"Universal" Mach-O binaries are specific to the Mach-O binary format, which wasn't supported on classic Mac OS. (I'm not even sure that multiplatform executable
by duskwuff 6y ago
"Universal" Mach-O binaries are specific to the Mach-O binary format, which wasn't supported on classic Mac OS. (I'm not even sure that multiplatform executables were even supported by Mac OS X before 10.4 or so, when they started using them for Intel cross-compatibitility.)
"Fat" CFM/PEF binaries existed on classic Mac OS, but used a completely different mechanism that only supported 68k and PowerPC code. And if you wanted to support a Classic II, that rules out a Carbon application bundle too.
About the widest range I can imagine for a single executable is a hybrid CFM/PEF/Carbon executable, which might be able to run on anything from a classic 68k mac up to Mac OS 10.6 (through Rosetta).
- deleted 6y ago[deleted]
- icedchai 6y agoI believe multi-platform executables date back to NeXTStep, which supported 68K/x86/Sparc/HPPA binaries.
- Wowfunhappy 6y ago...Perhaps we’re targeting the wrong product lines. I wonder if you could make a binary that runs across all OS X but also NextStep...
- saagarjha 6y agoShameless self-promotion: https://github.com/saagarjha/dummy_thicc https://github.com/saagarjha/dummy_thicc. That reminds me that I have left PRs for the NeXTSTEP slices hanging around for quite a while…
- Wowfunhappy 6y agoOh, this is perfect! Thanks for sharing!
- icedchai 6y agoNeat. I have a NeXT Station Turbo (68040/33, I think?) and am tempted to try this out.
- setpatchaddress 6y agoFor the specific request here (Classic II and current MacBook), you might be able to build an executable with Mach-O data fork and the 68k code in the resource fork. I’m not sure offhand how to make the bundle format work for current macOS, though. But if you can make that work, you can also add classic PowerPC support, by jumping to it via a 68K CODE stub and perhaps from a separate PEF fragment stored in a section in the Mach-O that would be ignored on current macOS.