From Fedora Project Wiki
(Change Announced on 2015-01-14)
(→‎Detailed Description: Update link to koji scratch build)
 
(4 intermediate revisions by 2 users not shown)
Line 2: Line 2:


== Summary ==
== Summary ==
Switch GCC in Fedora 22 to 5.x.y, rebuild all packages with it.  
Switch GCC in Fedora 22 to 5.x.y, rebuild some packages with it.  


== Owner ==
== Owner ==
Line 18: Line 18:
== Current status ==
== Current status ==
* Targeted release: [[Releases/22 | Fedora 22 ]]  
* Targeted release: [[Releases/22 | Fedora 22 ]]  
* Last updated: 2015-01-14
* Last updated: 2015-01-19
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Bugzilla states meaning as usual:
Bugzilla states meaning as usual:
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=1184903 #1184903]


== Detailed Description ==
== Detailed Description ==
GCC 5 is currently in stage3, but in 3 days will move to stage4, in prerelease state with only regression bugfixes and documentation fixes allowed.  The release will happen probably in the first half of April.
GCC 5 is currently in stage4 - prerelease state with only regression bugfixes and documentation fixes allowed.  The release will happen probably in the first half of April.
We are working on scratch gcc rpms and will perform a test mass rebuild.
Scratch rpms are at http://koji.fedoraproject.org/scratch/jakub/task_8710312/ and test mass rebuild is in progress.
Other distributions have performed test mass rebuilds already.
Other distributions have performed test mass rebuilds already.
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
Line 39: Line 39:


== Scope ==
== Scope ==
All packages should be rebuilt with the new gcc once it hits f22.
GCC 5.x.y will be added to Fedora 22, afterwards packages that will be rebuilt for other reasons will be built using GCC 5.


* Proposal owners:
* Proposal owners:
Build gcc in f22, rebuild packages that have direct dependencies on exact gcc version (libtool, llvm, gcc-python-plugin).
Build gcc in f22, rebuild packages that have direct dependencies on exact gcc version (libtool, llvm, gcc-python-plugin).


* Other developers: First few days/weeks just voluntary rebuilds using the new system gcc, if things fail, look at http://gcc.gnu.org/gcc-5/porting_to.html and fix bugs in packages or, if there is a gcc bug or suspected gcc bug, analyze and report.
* Other developers: Just voluntary rebuilds using the new system gcc, if things fail, look at http://gcc.gnu.org/gcc-5/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
* Release engineering: Nothing, mass rebuild of F22 has been denied by FESCO.


* 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 67: Line 67:
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
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,
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.
worst case we rebuild some or all packages that have been built with the newer gcc if we'd need to revert to older gcc.


* Contingency mechanism: Revert to older gcc, mass rebuild everything again
* Contingency mechanism: Revert to older gcc, rebuild what needs to be rebuilt again
* Contingency deadline: Before release
* Contingency deadline: Before release
* Blocks release? Yes
* Blocks release? Yes
Line 80: Line 80:
Fedora 22 comes with GCC 5.1 as primary compiler, see http://gcc.gnu.org/gcc-5/changes.html for user visible changes in it.
Fedora 22 comes with GCC 5.1 as primary compiler, see http://gcc.gnu.org/gcc-5/changes.html for user visible changes in it.


[[Category:ChangeAnnounced]]
TBD (note for owner & docs team): make sure that Fedora's f22 behaviour is documented!
 
[[Category:ChangeAcceptedF22]]
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]

Latest revision as of 19:16, 9 February 2015

GCC5

Summary

Switch GCC in Fedora 22 to 5.x.y, rebuild some packages with it.

Owner

Current status

Detailed Description

GCC 5 is currently in stage4 - prerelease state with only regression bugfixes and documentation fixes allowed. The release will happen probably in the first half of April. Scratch rpms are at http://koji.fedoraproject.org/scratch/jakub/task_8710312/ and test mass rebuild is in progress. Other distributions have performed test mass rebuilds already.

Benefit to Fedora

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

Scope

GCC 5.x.y will be added to Fedora 22, afterwards packages that will be rebuilt for other reasons will be built using GCC 5.

  • Proposal owners:

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

  • Other developers: Just voluntary rebuilds using the new system gcc, if things fail, look at http://gcc.gnu.org/gcc-5/porting_to.html and fix bugs in packages or, if there is a gcc bug or suspected gcc bug, analyze and report.
  • Release engineering: Nothing, mass rebuild of F22 has been denied by FESCO.
  • 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, such as improved C++11 and added partial C++14 support, OpenMP 4.0 offloading support and OpenACC 2.0 support, improved vectorization support, etc. Developers will notice a newer compiler, and might need to adjust their codebases acording to http://gcc.gnu.org/gcc-5/porting_to.html, or, if they detect a GCC bug, report it.

Dependencies

libtool, dragonegg, gcc-python-plugin, 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, worst case we rebuild some or all packages that have been built with the newer gcc if we'd need to revert to older gcc.

  • Contingency mechanism: Revert to older gcc, rebuild what needs to be rebuilt again
  • Contingency deadline: Before release
  • Blocks release? Yes
  • Blocks product? No

Documentation

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

Release Notes

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

TBD (note for owner & docs team): make sure that Fedora's f22 behaviour is documented!