Universal and its many meanings
wowfunhappy at gmail.com
Sun Feb 27 15:55:02 UTC 2022
On Feb 26, 2022, at 8:22 PM, Joshua Root <jmr at macports.org> wrote:
> On 2022-2-27 12:10 , Wowfunhappy at gmail.com wrote:
>> As I understand it, +universal is used to mean two different things in MacPorts:
>> 1. Install this port as a universal binary, which contains slices for multiple architectures. For the purposes of this message, I'm going to refer to these as "fat" binaries.
> That is what +universal means.
>> Although, on a completely separate note, I don't understand why many of these problems can't be trivially solved by a combination of the lipo and Apple's built-in translation layers (namely Rosetta 1/2 or x86_64's native 32bit support). If e.g. gcc7 is installable on both Tiger ppc and Tiger intel, and Tiger intel can run ppc binaries via rosetta, shouldn't it be possible to just (1) compile the code with gcc7_intel, (2) compile the code with gcc7_ppc, and (3) lipo the results together?
> This is what the muniversal portgroup does, and if you read the code, you'll see that it's anything but trivial.
> - Josh
Well, that explains a lot! Thank you!
>> 2. Install this port with the ability to /create/ fat binaries with slices for multiple architectures. For the purposes of this message, I'm going to refer to these as "cross-compilers".
> The gcc ports are unique in abusing the universal variant to mean that.
...should they maybe not do that, then? The varient could be named something else...
More information about the macports-dev