[zeromq-dev] gcc 4.8.1

Michi Henning michi at triodia.com
Wed Sep 18 07:35:53 CEST 2013


Just a heads-up on this, in case anyone else gets bitten…

I just had a very unpleasant 24 hours of debugging my (heavily threaded) code. I initially suspected a race condition and ended up barking up the wrong tree for a long time.

In the end, the problem turned out to be related to the zmqpp library. I had previously compiled that one with gcc 4.7.3, and that version was still installed. To cut a long story short, recompiling with gcc 4.8.1 zmqpp fixes it. Dumping the ELF version numbers of the two zmqpp libraries, I get:

This is libzmqpp.so.3.1.0 compiled with gcc 4.7.3:

GLIBCXX_3.4.18, version 7
GLIBCXX_3.4.14, version 5

Here is the same library compiled with gcc 4.8.1:

GLIBCXX_3.4.14, version 6
GLIBCXX_3.4.10, version 5

When I run my code compiled with 4.8.1 against the library build with 4.7.3, I get the crash.

*Both* ELF binaries report:

CXXABI_1.3, version 4

I can make the crash go away by compiling my code with 4.7.3 against the 4.7.3 libzmpp, and I can make the crash go away by compiling my code with 4.8.1 against the 4.8.1 libzmpp.

So, it definitely looks like there as an ABI incompatibility between the two libcxx versions, even though they claim to be compatible.

Michi.


More information about the zeromq-dev mailing list