From Fedora Project Wiki
(Create GCC8 feature)
 
m (Fix porting_to URL from gcc 7 to gcc 8)
 
(5 intermediate revisions by 2 users not shown)
Line 7: Line 7:
* Name: [[User:jakub| Jakub Jelínek]]
* Name: [[User:jakub| Jakub Jelínek]]
* Email: jakub@redhat.com
* Email: jakub@redhat.com
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Release notes ticket: [https://pagure.io/fedora-docs/release-notes/issue/115 #115]
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
Line 27: Line 27:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1537255 #1537255]


== Detailed Description ==
== Detailed Description ==
Line 45: Line 45:
* Other developers: First few days/weeks just voluntary rebuilds using the new system gcc, if things fail, look at http://gcc.gnu.org/gcc-8/porting_to.html and fix bugs in packages or, if there is a gcc bug or suspected gcc bug, analyze and report.
* Other developers: First few days/weeks just voluntary rebuilds using the new system gcc, if things fail, look at http://gcc.gnu.org/gcc-8/porting_to.html and fix bugs in packages or, if there is a gcc bug or suspected gcc bug, analyze and report.


* Release engineering: Organize a mass rebuild, either in f28 or in f29
* Release engineering: [https://pagure.io/releng/issue/7249 PR#7249 ]. Mass rebuild requested for F28.


* Policies and guidelines: No policies need to be changed <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Policies and guidelines: No policies need to be changed <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Line 58: Line 58:
== User Experience ==
== User Experience ==
Users will be able to see compiled code improvements and use the newly added features.
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-7/porting_to.html, or, if they detect a GCC bug, report it.
Developers will notice a newer compiler, and might need to adjust their codebases acording to http://gcc.gnu.org/gcc-8/porting_to.html, or, if they detect a GCC bug, report it.


== Dependencies ==
== Dependencies ==
Line 79: Line 79:
Fedora 28 comes with GCC 8.1 as primary compiler, see http://gcc.gnu.org/gcc-8/changes.html for user visible changes in it.
Fedora 28 comes with GCC 8.1 as primary compiler, see http://gcc.gnu.org/gcc-8/changes.html for user visible changes in it.


[[Category:ChangeReadyForWrangler]]
[[Category:ChangeAcceptedF28]]
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]

Latest revision as of 22:45, 2 March 2018

GCC8

Summary

Switch GCC in Fedora 28 to 8.x.y, rebuild all packages with it, or optionally rebuild just some packages with it and rebuild all packages only in Fedora 29.

Owner

Current status

Detailed Description

GCC 8 is currently in stage3, will move to stage4 on January 14th, in prerelease state with only regression bugfixes and documentation fixes allowed. The release will happen probably in the middle of April. We are working on scratch gcc rpms and will perform a test mass rebuild.

Benefit to Fedora

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

Scope

All packages should be rebuilt with the new gcc once it hits f28, or, if there is not enough time for that, just all packages built after the new gcc hits the buildroots.

  • Proposal owners:

Build gcc in f28, rebuild packages that have direct dependencies on exact gcc version (libtool, llvm, gcc-python-plugin, odb).

  • Other developers: First few days/weeks just voluntary rebuilds using the new system gcc, if things fail, look at http://gcc.gnu.org/gcc-8/porting_to.html and fix bugs in packages or, if there is a gcc bug or suspected gcc bug, analyze and report.
  • Release engineering: PR#7249 . Mass rebuild requested for F28.
  • Policies and guidelines: No policies need to be changed

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-8/porting_to.html, or, if they detect a GCC bug, report it.

Dependencies

libtool, gcc-python-plugin, odb, llvm 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.

  • Contingency mechanism: Revert to older gcc, mass rebuild everything again
  • Contingency deadline: Before release
  • Blocks release? Yes
  • Blocks product? No

Documentation

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

Release Notes

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