gjc:/usr/lib/python2.4/lib-dynload$ ldd itertools.so
libpthread.so.0 => /lib/libpthread.so.0 (0x00002aaaaabcc000)
libc.so.6 => /lib/libc.so.6 (0x00002aaaaace2000)
/lib/ld-linux-x86-64.so.2 (0x0000555555554000)
gjc:/usr/lib/python2.4/lib-dynload$
It seems that Python C extension modules are not linking explicitly to
libpython. Yet, they explicitly reference symbols defined in libpython.
When libpython is loaded in a global scope all is fine. However, when
libpython is dlopen()ed with the RTLD_LOCAL flag, python C extensions
always get undefined symbols.
This problem happened recently with the nautilus-python package, which
installs an extension for the Nautilus file manager that allows
extensions in Python. For performance reasons, it now opens extensions
with RTLD_LOCAL flag, thus breaking python extensions.
Any thoughts? Should I go ahead and open a bug report (maybe with
patch), or is this controversial?
--
Gustavo J. A. M. Carneiro
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
The universe is always one step beyond logic.
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com