Recently, many of the Linux distributions (e.g. Fedora, Debian, Ubuntu) have moved on to use the new GCC ABI to work around C++11 incompatibilities in libstdc++. This caused incompatibility problems with other compilers (e.g. Clang), which needed to be fixed, but due to the experimental nature of GCC’s own implementation, it took a long time for it to land in LLVM (D18035 and D17567), not in time for the 3.8 release.

Those patches are now present in the 3.9.0 release and should be working in the majority of cases, as they have been tested thoroughly. However, some bugs were filed in GCC and have not yet been fixed, so there may be corner cases not covered by either GCC or Clang. Bug fixes to those problems should be reported in Bugzilla (either LLVM or GCC), and patches to LLVM’s trunk are very likely to be back-ported to future 3.9.x releases (depends on how destructive it is).

Unfortunately, these patches won’t be back-ported to 3.8.x or earlier, so we strongly recommend people to use 3.9.x when GCC ABI cases are at stake.

For a more in-depth view of the issue, check our Bugzilla entry.