On 2022-2-27 12:10 , [email protected] 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.

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.

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

Reply via email to