> What do you think ? https://bugs.launchpad.net/kicad/+bug/1299217/comments/12
I think you are my hero. I've committed your fix in 4939, and marked the bug report as fixed. Dick On 06/12/2014 08:18 AM, Jean-Samuel Reynaud wrote: > Hello, > > I come back on this issue to give some pieces of analysis. > > This issue is kicad bug #1299217 > (https://bugs.launchpad.net/kicad/+bug/1299217) > > Actual facts: > When compile with option : > KICAD_SCRIPTING_WXPYTHON=ON > > > Pcbnew crash at startup with an error: > > Traceback (most recent call last): > File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.py", > line 45, in > <module> > from wx._core import * > File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", > line 4, in <module> > import _core_ > ImportError: > /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core_.so: undefined > symbol: PyExc_ValueError > > > So I had try to investigate this point and I found that: > > - libpython is correctly loaded at runtime (LD_DEBUG=all pcbnew) > => It is loaded because DSO _pcbnew.kiface depend to libpython > > - pcbnew is not linked with libpython (of course, it doesn't use it > directly...) > - /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core_.so is loaded > by an > embedded python scripts at python_scripting.cpp > > - this _core_.so is NOT linked with libpython > => I have check on my distribution: on 307 binary python module I have only > 20 linked to > libpython (including _pcbnew.so...) > => perhaps it is supposed to run inside a already load python system (like > /usr/bin/python...) and it is not need to relink to python > > - This old bug http://bugs.python.org/issue4434 look to be exactly the same > case > - libpython is not visible from other libs since at common/kiway.cpp the > kiface dso is > loaded *without* wxDL_GLOBAL > > > > So a fix could be to add wxDL_GLOBAL to the dso.Load (line 160 of > common/kiway.cpp) > > Additionnaly _pcbnew.so should not be linked to libpython since when loading > it on python, > python's symbols are already loaded. All other python binary libs don't link > to libpython > at all. > > > What do you think ? > > Le 04/04/2014 19:15, Dick Hollenbeck a écrit : >> >>>> I have try to find a solution by trace the library loading: >>>> LD_DEBUG=all pcbnew >>>> But the issue look to be due to a compilation option on some ubuntu >>>> libs. Anyway I'm NOT sure of that... >> >> This is the right path to an understanding. It's just that full source >> level debugging is >> needed to see into libpython.so. I don't think same for wxPython is needed, >> since the >> crash is in libpython.so. >> >> It is a bit time consuming getting wxPython to be happy with a substitute >> libpython.so >> (debug) and then capture the crash under a debugger, but this will begin to >> shed light. >> >> It may be related to thread local storage or something. The differences in >> the crash >> scenario and no crash are: >> >> 1) libpython is loaded as a load time dependency on the DSO in one case, vs. >> a load time >> dependency on the EXE in the other >> >> 2) The DSO which depends on libpython, namely _pcbnew.kiface, is not loaded >> precisely at >> at process startup time, but upon a dlopen() call later in time. >> >> >> >> >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~kicad-developers >> Post to : kicad-developers@lists.launchpad.net >> Unsubscribe : https://launchpad.net/~kicad-developers >> More help : https://help.launchpad.net/ListHelp > > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : kicad-developers@lists.launchpad.net > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp