Contents
Update to GCC 6
GCC 6 is now released and is available in Debian testing. There are again the usual quirks with new standards versions and older software.
Test rebuilds of Debian testing/unstable on amd64 were done in January 2016, and bug reports filed for the packages. These issues are tracked in http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-gcc-6;users=debian-gcc@lists.debian.org When submitting new reports, please tag these:
- Usertags: ftbfs-gcc-6
Test rebuilds were done in Ubuntu in January 2016, covering other architectures than amd64. See the links at the bottom of the page.
Bug squashing at DebCamp/DebConf
We will have a bug squashing party at DebCamp from June 29 to July 1, core hours from 12:00 UTC until 16:00 UTC. Please join #debian-toolchain on OFTC for remote participation.
Bug squashing during DebConf will happen too, announcing the details here.
TODO list
Fixing GCC build failures.
- Use GCC 6 by default.
- GFortran transition (new module version).
gfortran-6 uses module version 14, the same as gfortran-5. No changes required (confirmed by Alastair McKinstry, 2016-01-23.) Work is planned to use dh-fortran-mod to capture the fortran version, but this is not required for the GCC-6 transition
- Go transition (easy, no packages relying on gccgo-5).
- GCJ transition (easy, a handful of dependencies).
- gnat transition: In progress, contact the debian-ada ML.
Porting help
General porting help https://gcc.gnu.org/gcc-6/porting_to.html
Add pointers to porting efforts of other distributions (e.g. Fedora, OpenSUSE underway).
Add porting recipes here.
link errors are usually caused by the new C11 inline semantics. They can be avoid by adding an attribute "__attribute__ ((gnu_inline))" before the inline keyword (preferred method), or by building with -fgnu89-inline (doesn't make sense if headers are installed in -dev packages).
Prepare for GCC 6
g++ defaults to a newer C++ standard (c++11 or c++14). Either prepare packages to build using the newer C++ standard, or explicitly pass -std=c++98 or -std=gnu++98 to the compiler for those package builds.
Timeline
TBD ...
- 2016-01-17: GCC 6 in experimental and bug reports filed.
- 2016-04-23: GCC 6.1 in unstable.
- 2016-07-xx: Make GCC 6 the default.
Further information
Announcements
https://lists.debian.org/debian-devel-announce/2015/07/msg00000.html
https://lists.debian.org/debian-devel-announce/2016/06/msg00007.html
Ubuntu test rebuild results (amd64, i386, arm64, armhf, powerpc, ppc64el, s390x):