should we change the default universal_archs now?

Ken Cunningham ken.cunningham.webuse at
Thu Jan 17 19:07:44 UTC 2019

On all systems 10.6+ , universal_arches ="i386 x86_64" . That is pretty much what port authors expect to see these days, and except on 10.14, our compilers handle that OK.

But on < 10.6, universal_arches="i386 ppc" 

This is a problem now, because our newer c++11 capable compilers can't cross compile. And sometimes, the cross-compiling idea just never worked for some ports (lz4). Increasingly, this is generating tickets when MacPorts tried to do the impossible -- I see several such tickets in the pipeline over the past couple of days. And the usefulness of default cross compiling has been long gone for some years now. The cxx11 PG already tries to disable the universal variant for this reason, but it doesn't catch all cases, ie when the cxx11 PG is not used.

One option is to go through each port and make individual changes to force the right archs. Some ports do that. It's a bit tedious and repetitive, but once we sort out the block, we can copy/paste it.

But we could make a change to the default universal_arches globally on these systems, perhaps:

on 10.4 and 10.5 intel, set the default universal_arches="i386 x86_64" just like newer systems.

on PPC -- well -- we could just set the default to universal_arches="ppc". That way when a port comes up forcing a default universal variant, it at least just works. (I'm thinking if we set it to "ppc ppc64" we will likely have trouble on PPC as not everything can build ppc64 and pretty much nothing has been tested that way.)

Would that make our lives simpler?

Best, Ken

More information about the macports-dev mailing list