Cross-building for PPC or "Apple Silicon"

René J.V. Bertin rjvbertin at gmail.com
Sat May 11 11:53:31 UTC 2024


Hi,

This is a development question but not about MacPorts ports so I'm posting it here:

I'm currently working on another CMake contribution that aims to check whether the selected compiler(s) can and do target the architecture(s) selected via CMAKE_OSX_ARCHITECTURES. The idea is to extend an existing internal MachO header parser and use libmacho to translate the numeric CPU type to an architecture string.

My question is to what extent I would need to complete the architectures known my the system libmacho on older systems. I see that the MacPorts LegacySupport headers define CPU_SUBTYPE_ARM64E if not already defined but not why. I also noticed that my own linkers (system & MacPorts installed) on 10.9 don't allow me to build PPC binaries though I can still generate PPC (but not PPC64) object files using the 10.6 SDK.
Can I assume that libmacho knows the names of all architectures its OS version can hope to build for? Or is it trivial enough to set up, say, a not-so-recent Intel-based system to target ARM64 even if it cannot do that out-of-the-box? And by "trivial enough" I do mean to warrant that the necessary supports gets added to stock CMake.

FWIW, I had a look at building the libmacho sources included in the port:cctools tarball. I managed but they're clearly not (or even less) meant to be built & user-upgraded like the other binaries so I won't be teaching CMake's own build system to look for libmacho (the functions in the system version are accessible through libSystem, so without need to link libmacho explicitly).

Thanks,
R.


More information about the macports-users mailing list