[Stackless] Stackless and PyQt4 on Linux

Santiago Gala santiago.gala at gmail.com
Sat Mar 31 11:56:19 CEST 2007


El vie, 30-03-2007 a las 17:43 -0400, Miguel Turner escribió:
> After stepping through the code it looks like the error occurs in
> initQtCore:
> 
Looks to me like C++ ABI hell. :)

C++ has no binary compatibility guarantee between versions, so every C++
component should ideally be compiled with the same compiler. I've seen
nasty problems like this related to gcc upgrades with C++ binary
components (IBM-jdk has the AWT written in C++, for instance). It was
blowing the stack in much the same way (C++ exceptions are particularly
sensitive to ABI changes)

I'd make sure that every C++ component (QT is C++, python *might* have
some C++ wrapper, ...)

I don't know the details, as I try to keep myself as far from C++ as
possible, both for this reason and because having a supposedly high
level language being a strict superset of a low level one (C) looks
crazy enough for me. :)

Regards
Santiago


> (gdb)
> initQtCore () at sipQtCorecmodule.cpp:9048
> 9048        if (sip_sipmod == NULL) 
> Current language:  auto; currently c++
> (gdb)
> 
> 9051        sip_capiobj = PyDict_GetItemString(PyModule
> _GetDict(sip_sipmod),"_C_API");
> (gdb)
> 
> 9053        if (sip_capiobj == NULL || !PyCObject_Check(sip_capiobj)) 
> (gdb)
> 9056        sipAPI_QtCore = reinterpret_cast<const sipAPIDef
> *>(PyCObject_AsVoidPtr(sip_capiobj));
> (gdb)
> 9059        if
> (sipAPI_QtCore->api_export_module(&sipModuleAPI_QtCore,SIP_API_MAJOR_NR,SIP_API_MINOR_NR,sipModuleDict) < 0) 
> (gdb)
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7ecdc53 in strlen () from /lib/tls/i686/cmov/libc.so.6
> (gdb)
> _______________________________________________
> Stackless mailing list
> Stackless at stackless.com
> http://www.stackless.com/mailman/listinfo/stackless


_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless


More information about the Stackless mailing list