On Mon, Aug 07, 2017 at 03:47:15PM +0100, jcowg...@debian.org wrote:
> In GCC 7, the name mangling for C++ conversion operators which return a
> type using the abi_tag attribute (most commonly std::string) has
> changed. When your library is compiled with GCC 7, it will now emit two
> symbols for the conversion operator using the new and old naming.
> Executables compiled with GCC 7 will always use the new symbol, while
> old executables compiled using <= GCC 6 will use the old symbol. For new
> executables to build without undefined references, your library will
> need rebuilding with GCC 7.

On the upside, going through the list of severity pushes [0] I can spot
only aptitude from our reverse build-dependencies – and while it is
indeed using that API, it will stop doing so in the next upload
(#853316) so the practical effect is rather low (assuming we can
convince mafm to upload before we do I guess).

On a more theoretical note isn't there some way to emit a function with
the old mangle calling the new mangle (or duplicating it)?
I can't really believe that all of libstdc++6 doesn't contain a single
abitagged conversion operator, so I would presume they managed to pull
it of somehow (or we would be looking at v7 everywhere now).

Best regards

David Kalnischkies


Attachment: signature.asc
Description: PGP signature

Reply via email to