What's the reasoning behind using ld64 for gccXX?

Jeremy Huddleston jeremyhu at macports.org
Wed Apr 18 19:37:45 PDT 2012


On Apr 18, 2012, at 07:32, Ryan Schmidt wrote:

> 
> On Apr 17, 2012, at 02:54, Sean Farley wrote:
> 
>> After this change:
>> 
>> https://trac.macports.org/changeset/92064/
>> 
>> 'sudo port -y install gcc4X' will now show a huge (and unnecessary) compile chain:
>> 
>> For llvm-3.0: skipping org.macports.main (dry run)
>> For ld64: skipping org.macports.main (dry run)
>> For cctools: skipping org.macports.main (dry run)
>> For gcc4X: skipping org.macports.main (dry run)
> 
> Obviously Jeremy, who committed that change, believes it is necessary. Perhaps he'll share his reasoning here.

The main reason that it wasn't that way was because for quite some time the rest of the toolchain was just not as well maintained.  That's no longer the case, so now we can benefit from that work in other ports.  YAY!

Benefit 1 - Consistency across similar ports
clang-mp-* use MacPorts's ld64 to link.
apple-gcc-4.2 uses MacPorts ld64 to link and MacPorts cctools to assemble if they're installed (they're not a dependency because it would set up a dependency cycle)
gcc-mp-* should join the party.

Benefit 2 - MacPorts philosophy
This helps isolate bugs due to different versions of XCode being installed in the same way we like to isolate bugs across OS version deltas by providing as much of the library stack as possible.

Benefit 3 - Required on older OSs
On older OS versions which don't support newer XCode, they need newer versions of cctools and ld64 to even use recent compilers.




More information about the macports-dev mailing list