GCC 4.7.x
Summary
Switch GCC in Fedora 17 to 4.7.x, rebuild all packages with it.
Owner
- Name: Jakub Jelinek
- Email: jakub@redhat.com
Current status
- Targeted release: Releases/17
- Last updated: 2012-02-13
- Percentage of completion: 95%
Detailed Description
GCC 4.7.0 is going to be released in mid March to mid April, is currently in bugfix only mode and is going to switch into regression bug fix mode in January. I've performed a test mass rebuild on x86_64 with gcc-4.7.0-0.1.fc17, out of 11270 packages 10056 built successfully, 845 packages failed to build both with gcc-4.7.0-0.1.fc17 and gcc-4.6.2-1.fc16 (thus unlikely gcc related), 108 failed to build due to missing <unistd.h> includes (which is no longer incorrectly included as implementation detail of some STL headers), 60 + 28 packages failed to build due to fixes in C++ lookup, 23 failed because boost needs fixing for gcc 4.7.0. I've encountered 3 different ICEs during the mass rebuild, all of them filed right now in upstream bugzilla.
Benefit to Fedora
See http://gcc.gnu.org/gcc-4.7/changes.html for the list of changes.
Scope
All packages should be rebuilt with the new gcc once it hits dist-f17.
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 C11 support, improved vectorization support, etc.
Dependencies
All packages 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 11000+ 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.
Documentation
http://gcc.gnu.org/gcc-4.7/changes.html
Release Notes
Fedora 17 comes with GCC 4.7.0 as primary compiler, see http://gcc.gnu.org/gcc-4.7/changes.html for user visible changes in it.