On 21/11/2024 3:34 pm, Chris Jones via macports-dev wrote:
likewise, if I look at the compilers PG
https://github.com/macports/macports-ports/blob/master/_resources/
port1.0/group/compilers-1.0.tcl
the list there is also already restricted to
lappend gcc_versions 5 6 7 8 9
if I am parsing things correctly.
So, where exactly are the gcc compilers 10 to 14 entering the game
currently for builds on <10.6 ?
I guess we are back to the point about the issue being not really with
the gcc-N ports, but the libgcc-N ports as it is there where the
dependency tree currently lives.
So taking gcc10 as an example, to install this from scratch you need
gcc10
libgcc10
libgcc11
libgcc12
libgcc13
libgcc14
and removing those ports that are just stub ports so building takes no time
gcc10
libgcc10
libgcc11
libgcc14
so compared to the minimum, which would be 2 builds (one gccN and one
libgccM build) we are taking 4 builds instead of 2.
So yes, its twice the builds you in theory would need in the best case
scenario. Whilst not ideal, this is (for me) hardly the nightmare
scenario people seem to be making it out to be.
( Also note, I suspect a number of those builds *could* be made stub
ports, but currently they are not, either because the port is badly
written or by giving up on some optional functionalities, like sanitizer
libs)
My problem with what you are proposing is changing how the dependencies
between the various libgccN ports is currently configured, to be
different on <10.6 to the newer OSes, is likely going to be waay more
messy than I think you are currently anticipating. To my eye, trying to
reduce as many libgccN ports down to basic stub ports that become
trivial to install is the better way forward).
So, I just took a look at what is actually installed by the binary
tarballs for OSX10.6 (the oldest I can check via
https://packages.macports.org/) got gcc versions 7 through to 13
Of these the only versions that install any dylibs (and thus are not in
practise just stub ports) are
libgcc7
libgcc9
thats it !
of the others, I think these are currently not correctly configured as
stub ports and thus build is actually run, but in the end nothing is
done with it
libgcc8
libgcc10
libgcc11
these are already properly configured as stub ports
libgcc12
libgcc13
So the very first thing that someone should do is fix these three ports
libgcc8
libgcc10
libgcc11
to avoid running the build needlessly.
Once done, the number of (real) builds you will actually need with the
current dep tree will be much much reduced.
Chris
p.s. Obviously I have the caveat I do not know what happens on <10.6
machines. Someone with access to these should run
> port contents libgccN
for each of them and report what is actually there· If all you see is
something like
pcmf ~/Downloads/gcc > tar -jxvf libgcc8-8.5.0_1.darwin_10.x86_64.tbz2
./
./+COMMENT
./+CONTENTS
./+DESC
./+PORTFILE
./+STATE
./opt/
./opt/local/
./opt/local/share/
./opt/local/share/doc/
./opt/local/share/doc/libgcc8/
./opt/local/share/doc/libgcc8/README
then the port is just a stub port and the build should be disabled to
avoid needlessly running it.
Chris