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