4 ms·
This is not the reason. We created this branch in July 2025 (GCC 12.5 was released on 11 July, 2025) and spent a year stabilizing it. A new system compiler is c
by washbear 2mo ago
This is not the reason. We created this branch in July 2025 (GCC 12.5 was released on 11 July, 2025) and spent a year stabilizing it. A new system compiler is considered far too much of a risky, incompatible change to backport. Especially since lots of C code no longer compiles with GCC 14+ without significant changes.
Each time we upgrade the system compiler, it requires extensive work to keep all of our supported architectures in working order, and adjust our code for compatibility.
- ranger_danger 2mo agoWhy would the C code no longer compile if it conforms to the spec?
- stonogo 2mo agoThere is more than one C specification, and with each new release of GCC several things that used to emit warnings are newly treated as errors.
- ranger_danger 2mo agobut if the correct standard is specified as an option, shouldn't that prevent conformant applications from failing to compile in newer versions?
- seabrookmx 2mo ago"The spec" is loose in places and is full of undefined behavior which can change from compiler to compiler. Very low level code tends to hit these types of issues much more than application code would. But these types of issues are even common in large userspace codebases.
- ranger_danger 2mo agoTo me, undefined behavior is by default not conformant, so that wouldn't count for the purposes of my question.
- wasting_time 2mo agoYou sort of answered your own question. Another reason is compiling with -Werror and hitting new warnings. Also, the version of the spec changes with almost every major release.
- hulitu 2mo agoBecause, for some reason, someone at gcc decided that some warnings shall be treated as errors. Good luck finding out which those are and which flags you need as a countermeasure. Of course it has documentation. Of course it is useless.