Bug#794935: llvm-toolchain-3.6: library transition is needed when GCC 5 is the default
Matthias Klose
doko at debian.org
Sat Aug 8 09:48:40 UTC 2015
Package: src:llvm-toolchain-3.5
Version: 1:3.5.2-1
Severity: serious
Tags: sid stretch patch confirmed
User: debian-gcc at lists.debian.org
Usertags: libstdc++-cxx11
confirmed, patch at
http://launchpadlibrarian.net/213914737/llvm-toolchain-3.5_1%3A3.5.2-0ubuntu1_1%3A3.5.2-0ubuntu2.diff.gz
(sorry, the clean target doesn't clean very well).
Background [1]: libstdc++6 introduces a new ABI to conform to the
C++11 standard, but keeps the old ABI to not break existing binaries.
Packages which are built with g++-5 from experimental (not the one
from testing/unstable) are using the new ABI. Libraries built from
this source package export some of the new __cxx11 or B5cxx11 symbols,
and dropping other symbols. If these symbols are part of the API of
the library, then this rebuild with g++-5 will trigger a transition
for the library.
What is needed:
- Rebuild the library using g++/g++-5 from experimental. Note that
most likely all C++ libraries within the build dependencies need
a rebuild too. You can find the log for a rebuild in
https://people.debian.org/~doko/logs/gcc5-20150701/
Search for "BEGIN GCC CXX11" in the log.
- Decide if the symbols matching __cxx11 or B5cxx11 are part of the
library API, and are used by the reverse dependencies of the
library.
- If there are no symbols matching __cxx11 or B5cxx11 in the symbols
forming the library API, you should close this issue with a short
explanation.
- If there are no reverse dependencies, it should be the package
maintainers decision if a transition is needed. However this might
break software which is not in the Debian archive, and built
against these packages.
- If a library transition is needed, please prepare for the change.
Rename the library package, append "v5" to the name of the package
(e.g. libfoo2 -> libfoo2v5). Such a change can be avoided, if you
have a soversion bump and you upload this version instead of the
renamed package. Prepare a patch and attach it to this issue (mark
this issue with patch), so that it is possible to NMU such a
package. We'll probably have more than hundred transitions
triggered. Then reassign the issue to release.debian.org and
properly tag it as a transition issue, by sending an email to
control at bugs.debian.org:
user release.debian.org at packages.debian.org
usertag <this issue> + transition
block <this issue> by 790756
reassign <this issue> release.debian.org
- If unsure if a transition is needed, please tag the issue with help
to ask for feedback from other Debian developers.
The libstdc++6 transition will be a large one, and it will come with a
lot of pain. Please help it by preparing the follow-up transitions.
[1] https://wiki.debian.org/GCC5#libstdc.2B-.2B-_ABI_transition
More information about the Pkg-llvm-team
mailing list