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.web...@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

Reply via email to