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

Reply via email to