[Pythonmac-SIG] C++ ABI 1002/102 incompatibility with wxPython

Matthias Baas matthias.baas at gmail.com
Tue Jan 25 21:19:58 CET 2011


On 25.01.11 17:06, Christopher Barker wrote:
> On 1/25/11 1:20 AM, Brendan Simon (eTRIX) wrote:
>>     Fatal Error: Mismatch between the program and library build versions
>>     detected.
>>     The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx
>>     containers,compatible with 2.6),
>>     and your program used 2.8 (no debug,Unicode,compiler with C++ ABI
>>     102,wx containers,compatible with 2.6).
>>     Abort trap
>>     logout
> 
> That looks odd to me -- as far as I can see (did I miss something?) the
> only difference is ABI 102 vs ABI 1002 -- that almost looks like a typo.

It's not a typo, the numbers indicate the C++ ABI (Application Binary
Interface) version the code uses. This defines stuff like how to call
functions, the stack layout, how to handle exceptions, etc. All pieces
of code in a program must use the same ABI version, otherwise those
pieces can't be used together.
The ABI version used by gcc has changed in the past which always means
that *every* code a program uses has to be recompiled with the new
compiler version.
As far as I know, version 1002 is still the current one and it was
introduced by gcc 3.4. Before that, the version was 102 (don't ask me
how these numbers are formed. I have to admit, it's a bit of an odd
numbering scheme...).
You can find out the ABI version a particular version of gcc uses by
running the following command:

g++ -E -dM - </dev/null|grep ABI

Here on my machine (gcc 4.0.1), this produces the line:

#define __GXX_ABI_VERSION 1002

So the above error message means that the wx libraries on the user's
system were compiled with a compiler that uses ABI 1002 (i.e. gcc >=3.4)
whereas the "program" contains parts that were built with a compiler
that uses ABI 102 (such as gcc <3.4).
But as mentioned above, it will only work when all components use the
same ABI.

Cheers,

- Matthias -


More information about the Pythonmac-SIG mailing list