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

Reply via email to