On 2015.04.06 at 08:41 -0400, Jason Merrill wrote: > On 04/04/2015 07:38 AM, Markus Trippelsdorf wrote: > > This breaks compatibility with other compilers. Consider the case when > > a user compiles a library, that contains e.g. some member function with > > a std::string return type, with clang using gcc-5's libstdc++. It will > > be mangled without abi-tags, because clang doesn't support them. > > Now when the user switches back to gcc-5 and uses the libraries headers > > in a new project he will get undefined symbol errors when linking with > > the library, because gcc-5 adds an abi-tag to the member function > > declaration. > > I don't know what clang will do with GCC 5's libstdc++, but if it > doesn't support ABI tags then in the best case it will use the old ABI, > and so undefined symbol errors are exactly what we want, rather than > runtime corruption.
The issue is that clang uses the new libstdc++ ABI just fine. And before this commit one could switch compilers without any problems... -- Markus