gcc compilers to be supported by Macports, especially on older MacOS systems
Ken Cunningham
ken.cunningham.webuse at gmail.com
Wed Nov 20 22:00:32 UTC 2024
Glad everyone gets to weigh in. If we can get a consensus to do this, we'll try to do it as smartly as possible.
Any gcc compilers that come "free" -- ie don't contribute anything in libgcc and so are just "no-ops" -- we can consider keeping those. However, they still might get pulled in needlessly if they exist, according to the compilers dependency rules.
For example, as Riccardo said, if gcc10 can build it, but gcc13 exists, then gcc13 might get pulled in unnecessarily to build it.
And every one of these is a huge build burden.
Strangely enough, the really ancient ones (gcc48, gcc5, and gcc6) are not really much of a problem as they all depend on gcc7, which will be needed for a long time (until everything is shown to build without it, really, which could take years).
Ken
On 2024-11-20, at 1:32 PM, Chris Jones wrote:
>
> Hi,
>
> One other comment.
>
> When talking about the dependency tree we have with the gcc builds, it’s important to remember this is only for the runtime ports, libgccN. The tree is not there for the actual compiler ports themselves. So gccN does not depend on gcc N+1 and so on.
>
> The other important thing to remember is not every libgcc build actually builds anything. A number of them are just stub ports that build nothing at all, and thus take no time to build, and only exist to set up the dependency tree.
>
> Libgcc13 and libgcc12 fall into this category for example. Building neither of these takes any time so lets take the example of a user requesting gcc 12. The gcc builds they will need for this are
>
> gcc12
> Libgcc12
> Libgcc13
> Libgcc14
>
> Of those, only the first and last are actually builds.
>
> Compare that to what is needed for say the latest gcc
>
> Gcc14
> Libgcc14
>
> So the number of actual builds that take any meaningful time is the same, just 2
>
> This is in part why i object to removing perfectly functional compiler options from users, as the gains are really not there in reality.
>
> Sure, lets discuss dropping some really old compilers, anything less than say gcc10 I think we could discuss removing, but for me the argument to remove the newer ones just does not really exist.
>
> Chris
>
>> On 20 Nov 2024, at 9:00 pm, Chris Jones <jonesc at hep.phy.cam.ac.uk> wrote:
>>
>>
>>
>>
>>> On 20 Nov 2024, at 5:56 pm, Ken Cunningham <ken.cunningham.webuse at gmail.com> wrote:
>>>
>>>
>>>
>>> current status then is we have a proposal to restrict available compilers on systems < 10.6 to
>>>
>>> gcc48, gcc5, gcc6, gcc7, gcc10, and gcc14
>>>
>>>
>>> This list seems workably short. I’ll leave this sit for a while while we see if anyone has more to say about it or thinks of some reason why something should be adjusted.
>>>
>>> I would continue to prefer the list be macports-wide, even if that means gcc13 instead of gcc10, or if one more gcc needs to be added. But we won’t bring down progress on the older systems arguing about that if that will be a sticking point.
>>
>> Personally, I will object to turning off gcc 11 through 13 on newer systems for no good reason. If you wish to disable these on < 10.6 thats your choice, I have no real interest myself in anything that old, but I will insist you do this via a check on the darwin version such that newer OSes are not effected.
>>
>> I also wish you luck in getting the logic right in the portfiles.
>>
>> Finally, remember you will also have to adapt the compilers PG accordingly.
>>
>> I am open to removing some very old compilers entirely, in fact most of these are effectively already disabled on up to date OSes via the platforms setting anyway.
>>
>> Chris
>>
>>>
>>>
>>>
>>>
>>>> On Nov 20, 2024, at 09:33, Ken Cunningham <ken.cunningham.webuse at gmail.com> wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> On Nov 20, 2024, at 06:35, Sergio Had <vital.had at gmail.com> wrote:
>>>>>
>>>>>
>>>>> On Nov 20, 2024 at 22:22 +0800, Ken Cunningham <ken.cunningham.webuse at gmail.com>, wrote:
>>>>> Any concrete example of something gcc-14 breaks that gcc-13 builds?
>>>>>
>>>>> A lot in fact, but for a reason orthogonal to toolchain as such.
>>>>
>>>> Well, if there is “a lot” that won’t build with gcc-14, that certainly cements the idea it had better not be the only working compiler in macports on older systems.
>>>>
>>>> So that puts that argument to rest.
>>>>
>>>>
>>>>>
>>>>> gcc14 became stricter with warnings vs errors, so either all affected ports’ code has to be fixed (in practice this usually translates into “fixed by who builds those with gcc”, i.e. typically myself), which requires hours and hours, or folks with “veto rights” should not prevent at least fixing these ports by adding a `-Wno-error=` flag (which is done in numerous ports for clangs, but for gcc it every time turns into an argument).
>>>>>
>>>>> Other than that no, I believe, and neither gcc7 can build something which gcc14 cannot (and which is actually needed).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20241120/26ac7e87/attachment.htm>
More information about the macports-dev
mailing list