From Fedora Project Wiki

< Changes

Revision as of 14:35, 20 December 2019 by Jakub (talk | contribs)


GCC10

Summary

Switch GCC in Fedora 32 to 10.x.y, rebuild all packages with it, or optionally rebuild just some packages with it and rebuild all packages only in Fedora 33.

Owner

Current status

  • Targeted release: Fedora 32
  • Last updated: 2019-12-20
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

GCC 10 is currently in stage3, switching to stage4 in January, at which point it will be in a prerelease state with only regression bugfixes and documentation fixes allowed. The release will happen probably in the middle of April. rpms will be built in early January, but Jeff Law has been testing x86_64 Fedora test mass rebuilds with GCC 10 snapshots for a while.

Benefit to Fedora

See http://gcc.gnu.org/gcc-10/changes.html for the list of changes.

Scope

  • Proposal owners:

Prepare rpms for the new compiler, push them into rawhide, watch voluntary rebuilds, fix bugs as they are reported, watch fallout from mass rebuild.

  • Other developers: N/A (not a System Wide Change)

Adjust for what will be written in https://gcc.gnu.org/gcc-10/porting_to.html , fix bugs in packages that will show up after rebuild or report if there are bugs on the compiler side.

Perform a mass rebuild, which will be needed for the LTO System Wide change too.

  • Policies and guidelines: N/A (not a System Wide Change)

I don't think so, this is a usual system compiler update that is being done every year. I think we have skipped GCC 4.2, so in Fedora this is likely the 15th such System Wide change.

  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

No impact

How To Test

GCC has its own testsuite, which is run during the package build, plus many other packages with automated tests also help to test the new gcc.

User Experience

Users will be able to see compiled code improvements and use the newly added features. Developers will notice a newer compiler, and might need to adjust their codebases acording to http://gcc.gnu.org/gcc-10/porting_to.html, or, if they detect a GCC bug, report it.

Dependencies

libtool, annobin, gcc-python-plugin depend on exact gcc version, those need to be rebuilt.

Contingency Plan

If bugs are discovered, I'd appreciate help from the package owners in preparing self-contained testcases to speed up analysis and fixing the bugs. Don't have time to debug issues in 12000+ packages, especially when in many cases it could be caused by undefined code in the packages etc. I don't expect we'll have to fall back to the older gcc, we've never had to do it in the past, but worst case we can mass rebuild everything with older gcc again. Jeff Law has performed test mass rebuild on x86_64.

  • Contingency mechanism: (What to do? Who will do it?) Revert to older gcc, mass rebuild everything again
  • Contingency deadline: Before release
  • Blocks release? Yes
  • Blocks product? No

Documentation

http://gcc.gnu.org/gcc-10/

Release Notes

Fedora 32 comes with GCC 10.1 as primary compiler, see http://gcc.gnu.org/gcc-10/changes.html for user visible changes in it.