Help me understand dependents of libgcc-devel vs gcc13?

Jim DeLaHunt list+macports-users at jdlh.com
Tue Oct 17 21:10:01 UTC 2023


Ken:

Thank you for your explanation. I can imagine this is how my ports 
collection came to include gcc-devel/libgcc-devel.

On 2023-10-17 00:36, Ken Cunningham <ken.cunningham.webuse at gmail.com> wrote:
> There was a time when the only version of gcc that built on arm64 was gcc-devel/libgcc-devel. So ports put a specific dependency on that on arm. This was a long time ago now.  It got things built.
>
> Then various gcc versions came out, gcc-12, gcc-13 that would build on arm64 (with extra patches, but would build). So the dependency on gcc-devel/libgcc-devel was removed.
>
> But there are situations where if you had already installed some ports, you were stuck in the gcc-devel loop due to recorded variant history. Or if you had gcc-devel installed / libgcc-devel, it just kept on getting updated.
>
> None of this is ideal... It was just "expedient" as a Way To Get Things Done when things are imperfect.
>
> Same thing happens with perl and python and other supporting ports.
>
> MacPorts has been trying to purge all this kind of stuff out of the ports tree -- but it's hard, and complicated, and there is still lots and lots of it in there. Josh has made specific changes to try to reduce this recorded clutter.

This is very helpful information. I am trying to figure out a way to 
package it into a wiki article, so that it can help the next person who 
has my question. For now, it is in the macports-users list archives, 
where searches can find it.

One of my questions was, "was deactivating libgcc-devel and explicitly 
installing gcc13 the right way to fix this problem?" From your mention 
of "gcc-12, gcc-13 [coming out] which would build on arm64, I infer that 
it was an acceptable way to fix the problem. But you seem to have a 
different way to solve it:

> What I do is keep track of the ports I actually want installed by using "requested".
>
> Then every so often I delete all my ports, and reinstall them all freshly (not using the restore script, as that records the old variants I'm trying to get rid of) to pick up all the new defaults that have crept in over the period of time since I did it last.
>
> By doing that, you get all the new perl versions, python versions, gcc versions, etc.

Clever!

One question of mine which did not get answered: "Q: why are ports like 
fftw-3 reported as dependents of port libgcc-devel? I don't see anything 
in fftw-3's portfile[2] which mentions port libgcc-devel, or indeed any 
gcc or libgcc, are dependencies.

"I suspect there is some behind-the-scenes dependency addition. Maybe it 
is behind the scenes because so many ports depend on C or C++ compilers. 
Where is this dependence addition documented? How should I as a user 
think of it?"

Best regards,
     —Jim DeLaHunt



More information about the macports-users mailing list