Keep 32-bit build support on Mojave

Ryan Schmidt ryandesign at
Mon Sep 24 08:22:44 UTC 2018

The release of macOS Mojave is imminent and I want to make sure we do the right thing for the first release of MacPorts on Mojave. Let me know if you have any thoughts about the below.

Ideally I would like to keep the ability to build 32-bit ports in MacPorts on Mojave, mainly because I don't want my wine ports to stop working. The checks that currently set universal_archs to only x86_64 on 10.14 would be bumped to 10.15.

The 10.13 (or earlier) SDK would have to be used when building 32-bit. I have a port for installing SDKs which I will finish up and submit as a PR. Here is the preliminary port:

I would then like to modify base so that if configure.sdk_version is set to a version that is not provided by Xcode or the command line tools, it will use one provided by a subport of the MacOSX.sdk port instead of generating an error as it currently does. And also, if we are building for 32-bit on Mojave, default to the 10.13 SDK. Here is a preliminary version of those changes:

This should allow those few 32-bit-only ports, and wine which requires a universal build, to continue to be usable on Mojave. But I have not tested this on Mojave yet.

This should also allow us to fix build failures of a variety of ports on older systems that need newer SDKs, such as textmate2. 

This will give us the year until 10.15 is released to figure out the solution to disabling the universal variant when it won't work (

Either now for 10.14 if the above is unworkable, or at the latest for 10.15, we still have the problem that upgrading users will have macports.conf files that say "universal_archs x86_64 i386" but new installations will say "universal_archs x86_64". Most of the settings that we write into macports.conf are commented out so that defaults take effect, but for some reason universal_archs is one of the few settings where we don't comment it out. If we do nothing in base to handle this, we'll have to write a ProblemHotlist entry and probably constantly guide users through making this change.

There is also the problem that the --with-universal-archs MacPorts configure flag affects not only the universal_archs macports.conf setting but also the archs used to build the darwintrace part of MacPorts base. On Mojave I think we want to be able to build MacPorts base x86_64 only, but have universal_archs in macports.conf be x86_64 i386. Building base universal x86_64 i386 is possible on Mojave using the 10.13 SDK which we could manage when building the binary installers, but it's not going to work for users when they run selfupdate and the 10.13 SDK isn't there.

More information about the macports-dev mailing list