Comment # 18 on bug 935533 from
(In reply to Richard Biener from comment #16)
> (In reply to Ismail Donmez from comment #15)
> > (In reply to Richard Biener from comment #14)
> > > (In reply to Ismail Donmez from comment #13)
> > > > Though btw, one workaround would be utilizing libc++ via -stdlib=libc++ (You
> > > > might have to add -lc++abi to LDFLAGS manually).
> > > 
> > > Not sure if that helps when boost was built with GCC - you'll end up linking
> > > with two C++ libraries and likely break inter-operability that way.
> > 
> > True, for this to work boost should be compiled with libc++ too. Btw,
> > shouldn't everything work fine when everything is built with gcc5.
> 
> Yes, if everything is built with gcc5 you are fine (as verified by pth).
> 
> > Like our
> > llvm package is built with clang ( which is compiled with gcc5 in stage1 )
> > and it seems to work fine.
> 
> Sure, but in no stage it mixes objects built by gcc5 and clang ;)  (does
> it use libc++?)
> 
> > I thought only problem would happen when mixing gcc4 and gcc5 together.
> 
> No, the issues start when mixing both ABIs.  But the issue here is that
> with using LLVM and libstdc++ from GCC 5 you end up using the new ABI
> with an incompatible mangling (thus techincally a third ABI not provided
> by GCC at all).

If CLang can be identified you could #error in libstdc++
where _GLIBCXX_USE_CXX11_ABI is set to the configured default
in c++config.h:

#ifndef _GLIBCXX_USE_CXX11_ABI
# define _GLIBCXX_USE_CXX11_ABI 1
#endif

thus add

#if __clang
#error CLANG does not support the GCC CXX11 ABI
#endif

which would make builds fail instead of producing this kind of odd errors.
Similarly CLang could be fixed to error on __attribute__((__abi_tag)) which
it doesn't support.


You are receiving this mail because: