After running 'nm' in my petsc4py extension module, I can see the
following extenal symbols:

$ nm  PETSc.so -D --defined-only
....
00021590 T __Pyx_ErrFetch
000214e0 T __Pyx_ErrRestore
00021650 T __Pyx_ExceptionReset
000215e0 T __Pyx_ExceptionSave
....

IMHO, those symbols should not be exported (I mean, we should emit
them as 'static' in the generated C code). Python normally imports
extension modules with RTLD_LOCAL, but... if some other reason you
have to hack things using sys.setdlopenflags(), or directly open the
extension module with 'ctypes' (I believe it uses RTLD_GLOBAL by
default), then this could cause symbol resolution clashes.

If there are no objections, I'll fix this.  Hope you do not think I'm
being too much pedantic ;-).

-- 
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to