GCC vs clang -- cxx11 ABI issue?


I was mixing libraries built with clang and GCC before, but recently I was be an issue:

undefined reference to ‘llvm::sys::getProcessTripleabi:cxx11

when building with GCC and linking in the LLVM libraries built with clang.

GCC / libstdc++: 5.3.1
clang: 3.8.0

Because the getProcessTriple() returns std::string I suspect that GCC expects the new string ABI to be used here, but looks like clang produced the function with the old version.

Is this a bug?

  • Paweł

Probably solved in


Ok, thanks.

Will this fix be included in 3.8.1?

Good to hear that it fixed your problems. Please let me know if you observe any compatibility issues due to ABI tags with Clang trunk.

Yes, it is a bug in GCC that they broke the Itanium ABI by introducing a
custom mangling. Of course, they will tell you that it is a feature...