Differences between revisions 1 and 34 (spanning 33 versions)
Revision 1 as of 2015-07-20 13:55:46
Size: 3396
Editor: doko
Revision 34 as of 2017-09-11 06:50:02
Size: 508
Editor: ginggs
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
GCC 5 for 14.10 (wily) on July 31 <<TableOfContents>>
Line 3: Line 3:
We are currently preparing the switch to GCC 5 as the default compiler for 14.10 (wily). Unlike earlier updates to newer compiler versions, which only required updating packages to newer language standards, this time we have a partial ABI transition in the standard C++ library (libstdc++6). Basically we'll have to rebuild around 3500 source packages, and will have some hundred follow-up library transitions. == arm gcc 7 abi transition ==
Line 5: Line 5:
The libstdc++6 transition is prepared in the PPA As of June 2017 with GCC 6, some packages fail autopkgtests on armhf only, due to warnings output to stderr, similar to the following:
{{{note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<const double*, std::vector<double> >’ will change in GCC 7.1}}}
Line 7: Line 8:
  https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/landing-016 See:
Line 9: Line 11:
To check out things you are required to use this PPA as a dependency for your PPA / your local chroot. It is not enough to use the GCC 5 packages in wily. We are preparing the transition in a PPA, because direct uploads would break things a bit too much. Of course we can't prepare some thousand packages in the PPA and keep track of them with the wily archive, so at some point (July 31), we'll copy this PPA to the distribution and will continue the transition from there. The PPA probably is not yet ready to be installed into your host system, not everything is yet rebuilt using the new compilers. Help from the Ubuntu desktop team would be appreciated. Same for the server and cloud images. Affected packages:
Line 11: Line 13:
The technical details what you can expect from GCC 5 are described in the Debian Wiki (not different for Ubuntu) at https://wiki.debian.org/GCC5.
Porting hints available at https://gcc.gnu.org/gcc-5/porting_to.html.

The g++-5/libstdc++6 will trigger some followup transitions; these are currently only tracked for Debian unstable, and will sync/merge into Ubuntu. We are trying to avoid explicit transitions because of the extra work, and because Ubuntu doesn't guarantee partial updates. Making sure that an image works, before migrating to the release pocket should be good enough.

If you are a core developer you can upload directly to the landing-016 PPA. Please keep in mind that you are responsible to keep packages in this PPA up to date. Packages should have a higher version number than in wily-proposed. No-change uploads should have a version number of the form
  <upstream-ver>-<next ubuntu version>~gcc5.N
When in doubt, please ask on IRC (FreeNode, #ubuntu-devel).

Non core developers should prepare packages in their own PPA, depending on the landing-16 PPA. The Kubuntu developers already did this with KDE, having eliminated all issues exposed by GCC 5 (see [1]). It would be good to prepare something similar for Lubuntu and Xubuntu.

What still needs fixing? Build failures with GCC 5 can be seen with the last test rebuild using GCC 5 [2], comparing that with a regular test rebuild [3]. Build failures in the landing-16 PPA should be fixed. Packages with fixes in Debian should be merged / synced either now (unstable), or after GCC 5 becomes the default (those which are being prepared in Debian experimental). Build failures and component mismatches should be cleared during the following two weeks.

Thanks for joining the ride, and have fun with this roller coaster transition!


[1] https://lists.ubuntu.com/archives/kubuntu-devel/2015-July/009765.html
[2] http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20150402-gcc5-vivid.html
[3] http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20150402-vivid.html
 * glbinding
 * ciftilib
 * fast5
 * shark
 * viennacl
 * mathicgb
 * givaro

arm gcc 7 abi transition

As of June 2017 with GCC 6, some packages fail autopkgtests on armhf only, due to warnings output to stderr, similar to the following: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<const double*, std::vector<double> >’ will change in GCC 7.1

See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728

Affected packages:

  • glbinding
  • ciftilib
  • fast5
  • shark
  • viennacl
  • mathicgb
  • givaro

GCC7 (last edited 2018-07-15 07:31:20 by ginggs)