GCC 14.1 released
(Log in to post comments)
GCC 14.1 released
Posted May 7, 2024 14:07 UTC (Tue) by sam_c (subscriber, #139836) [Link]
GCC 14.1 released
Posted May 7, 2024 16:52 UTC (Tue) by coriordan (guest, #7544) [Link]
Oh. Do you know any more details? Does that mean the errors in a complete Fedora build are down to zero and the outdated constructs now throw errors?
GCC 14.1 released
Posted May 7, 2024 18:24 UTC (Tue) by JoeBuck (subscriber, #2330) [Link]
We'd have to hear from the Fedora team on that, but I don't think that the GCC team would consider failure to clean up all Fedora packages as a blocker for a GCC release. Not their job.
GCC 14.1 released
Posted May 7, 2024 18:35 UTC (Tue) by sam_c (subscriber, #139836) [Link]
On our end in Gentoo, we've fixed a lot, including most popular things (and we've benefitted from the Fedora work - and vice versa), but there's still a long tail too. We are also a bit more affected in that we have USE flags in Gentoo where some configurations might fail but others may not, or an issue only shows up on one architecture so other distros may not have noticed a failure. Check out the fun wall at https://bugs.gentoo.org/showdependencytree.cgi?id=870412&... :)
Neither distro felt that the issue was insurmountable and so severe that it needed to be withdrawn from GCC 14, although the option was kept on the table for a bit in case. My hope is that as GCC 14 is now released, it'll propagate into upstream CI jobs, and that'll also help kill off some stragglers.
GCC 14.1 released
Posted May 8, 2024 14:10 UTC (Wed) by rgmoore (✭ supporter ✭, #75) [Link]
A big thank you to all the people who have been working on the Modern C project. It's the kind of project people have long used as "proof" of the problems with FOSS: an unglamorous task that most people will never know about unless it causes problems by being left undone. I guess it really shouldn't come as a surprise that FOSS can do it- we somehow find people to work on behind the scenes stuff like DNS and MTAs- but it's gratifying to hear about this kind of progress. Well done!
GCC 14.1 released
Posted May 8, 2024 20:06 UTC (Wed) by fw (subscriber, #26023) [Link]
Towards the release, it became increasingly unclear if a build failure was a Modern C problem, or something else. For example, removing a function declaration from an installed header file used to be a mostly source-compatible change (but not necessarily ABI-compatible if the function returned a double or a pointer). Likewise adding a new argument to a callback function was de-facto source-compatible (and probably ABI-compatible on our targets). Now these result in compilation failures. If I recall correctly, libxml2 2.12 had quite a few changes like that. Are the fixes required work items for the libxml2 2.12 transition, or are they part of the GCC 14 cleanups?
Even before all the fixes, the failure rate wasn't that alarming from a distribution perspective. (As I mentioned, things break all the time, so you fix them and move on.) The more significant concern was that people who start using GCC 14 would no longer be able to build a fair number of generally well-maintained upstream projects. That's why we put so much effort into upstreaming our patches.
GCC 14.1 released
Posted May 8, 2024 20:38 UTC (Wed) by sam_c (subscriber, #139836) [Link]
GCC 14.1 released
Posted May 12, 2024 20:04 UTC (Sun) by ballombe (subscriber, #9523) [Link]
GCC 14.1 released
Posted May 12, 2024 20:13 UTC (Sun) by fw (subscriber, #26023) [Link]
Surely something likeCC="gcc -fpermissive"
will work for that. The porting advice describers other approaches, too.
GCC 14.1 released
Posted May 13, 2024 9:44 UTC (Mon) by farnz (subscriber, #17727) [Link]
As a tooling matter, this is why I check in rust-toolchain.toml and Cargo.lock on personal Rust projects; that way, as I bisect, I move automatically to the version of tooling I used in the past.
I'm also cautious about having separate commits for changes to these files, so that if I do bisect, and land on one of them, it's clear that I'm seeing an impact from either a toolchain change, or a dependency change.