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.

Thanks, Brendan.

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to