Tuesday, 7 July 2015

GCC 5 / libstdc++ transition

Hi,

GCC 5 will be the default compiler for the wily release, and it's time to
prepare the change of the default in wily, so that we don't have to do it during
the next relase cycle before the next LTS release. This time things are a bit
more complicated, we basically need to rebuild all C++ packages using g++ 5, and
we are not able to fall back to a newer compiler. For some C++11 language
requirements, changes on some core C++ classes are needed, resulting in an ABI
change. As the benefit, stable and complete C++11 standard support is provided
by GCC 5.

Details of the transition plan are documented in the Debian wiki, and I'm trying
to get this transition going in Debian at the same time, however if it's delayed
there, we'll need to go ahead to be able to finish the transition before the
wily release.

For a short introduction: Read https://wiki.debian.org/GCC5

Bugs (only filed for Debian, which need fixing):

https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-gcc-5;[email protected]

https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=libstdc%2B%2B-cxx11;[email protected]

To cite from the email to debian-devel-annonuce [1]:

"""
How can you help?

- Don't wait until GCC 5 is the default, start fixing and helping now.

- Please fix the above mentioned GCC 5 issues. Consider uploading
the fix in a NMU.

- Investigate if followup transitions for libraries are needed.

- Upload packages which have a patch, but no feedback from the
package maintainers.

- Please don't ask if the GCC maintainers can rebuild your package
when you didn't check that for yourself when uploading a new
upstream version.

- Join #debian-toolchain on OFTC to coordinate uploads, and ask
questions. At least Martin Michlmayr (tbm) and myself (doko)
will be there.

The libstdc++6 transition will be a large one, having a large fun/pain factor
depending on your point of view. In either case, please help it by addressing
the outstanding issues.
"""

Of course you can ask question on irc in #ubuntu-devel (Freenode) as well. The
top priority will be to fix most issues before GCC 5 becomes the default. So
please send patches for the outstanding Debian issues. A list of build failures
with GCC 5 for packages only in Ubuntu can be found at

http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20150402-gcc5-vivid.html

I am asked to prepare this transition using the CI train, using the PPA in

https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/landing-016

This PPA will contain the GCC packages defaulting to GCC 5 and defaulting to the
new libstdc++ ABI (for now you can find these in the ubuntu-toolchain-r PPA).

Using the CI train has the advantage:

- build a package or a set of packages that can be tested
first, before being uploaded to -proposed.

It has the disadvantage:

- to keep the packages in this ppa in sync with the uploads
into -proposed. According to
http://people.canonical.com/~ubuntu-archive/transitions/html/libstdc++6.html
we'll have to keep track of 3500 source packages.

- limiting upload rights to this PPA to core developers

- porting tools like the transition tracker and britney to work with PPA's

I'm not yet sure that this strategy is the one with the least amount of work,
however what I can say that it increases the amount of work for me and maybe
others. So I'm asking these people spending less work to help with keeping the
PPA up to date (which will be difficult too, because most people in these teams
are not core developers. phone/phablet guys, it's you).

So please start fixing open issues *now*, and prepare for some time for bug
fixing instead of the beach in July and August ;-P

Matthias

[1] https://lists.debian.org/debian-devel-announce/2015/07/msg00000.html

--
ubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel