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

Brendan Simon (eTRIX) brendan.simon at etrix.com.au
Tue Mar 1 22:42:15 CET 2011



On 2/03/11 8:34 AM, Brendan Simon (eTRIX) wrote:
> On 8/02/11 10:55 PM, Brendan Simon (eTRIX) wrote:
>> On 1/25/11 1:20 AM, Brendan Simon (eTRIX) wrote:
>>>>> I have a wxPython app that is built with py2app. A user recently
>>>>> reported the following error when trying to run the app.
>>>>>
>>>>>     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
>>> As others have informed me, the C++ ABI changed from gcc-3.3 to gcc-3.4
>>> (and beyond).
>>>
>
> It turns out that previous builds of my application DO work on PowerPC
> OS X 10.4, it's only recent builds
> that fail with the ABI compatibility error.
>
> The app bundle is built with python.org 2.5.4 using pythonw
> (/Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw).  It
> contains a libwx_macud-2.8.0.dylib file which I think is the culprit. 
> I interrogated this file (strings and grep) and noted an ABI difference.
>
> An app that works on PowerPC and Intel 10.4.11.
>
> $ cat ./MyApp.app/Contents/Frameworks/libwx_macud-2.8.0.dylib |
> strings | grep ABI
> 2.8 (debug,Unicode,compiler with C++ ABI 102,wx containers,compatible
> with 2.6)
> 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible
> with 2.6)
>
> An app that does NOT work on PowerPC 10.4.11 but does work on Intel
> 10.4.11.
>
> $ cat ./MyApp.app/Contents/Frameworks/libwx_macud-2.8.0.dylib |
> strings | grep ABI
> 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible
> with 2.6)
> 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible
> with 2.6)
>
> The latter has TWO identical lines with ABI 1002.  i.e. it does NOT
> have the ABI 102 for some reason.
>
> A search of my filesystem reveals that none of the wx libraries appear
> to have ABI 102 in the wx libraries.
>
> $ find /usr -name "libwx_macud-2.8.0.dylib" -ls
> 141212        8 lrwxr-xr-x    1 root     wheel          27 15 Aug 
> 2009 /usr/lib/libwx_macud-2.8.0.dylib -> libwx_macud-2.8.0.5.0.dylib
> 227169828        8 lrwxr-xr-x    1 root     wheel          27  5 Aug 
> 2010
> /usr/local/lib/wxPython-unicode-2.8.11.0/lib/libwx_macud-2.8.0.dylib
> -> libwx_macud-2.8.0.7.0.dylib
> 2411353        8 lrwxr-xr-x    1 root     wheel          27 18 Jun 
> 2008
> /usr/local/lib/wxPython-unicode-2.8.4.0/lib/libwx_macud-2.8.0.dylib ->
> libwx_macud-2.8.0.1.1.dylib
> 2412261        8 lrwxr-xr-x    1 root     wheel          27 18 Jun 
> 2008
> /usr/local/lib/wxPython-unicode-2.8.4.2/lib/libwx_macud-2.8.0.dylib ->
> libwx_macud-2.8.0.1.1.dylib
>
> $ find /usr -name "libwx_macud-2.8.0.dylib" | xargs strings | grep ABI
> 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible
> with 2.6)
> 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible
> with 2.6)
> 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible
> with 2.6)
> 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible
> with 2.6)
>
> I'm not sure what has changed to cause this.
>
>     * OS X updates
>     * Code changes that use various interpreters, specified as:
>       python, pythonw,
>       /Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw, etc.
>     * Installs of new pythons (e.g. python 2.7, python 3.x)
>     * Installs of newer wxPython ??  ANSI versus Unicode versions ??
>
>
> Any ideas as to why my wx library no longer has the ABI 102
> compatibility ??
> I'm thinking it is most likely a wxPython build or install problem.
The other possibility is that the builds that do work may have been
built on another Mac running 10.5, not my current Mac running 10.6. 
Will have dig up the old Mac and see if that makes a difference.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythonmac-sig/attachments/20110302/63b82011/attachment-0001.html>


More information about the Pythonmac-SIG mailing list