Pablo Galindo Salgado <pablog...@gmail.com> added the comment:

In the What's New section of 3.8 
(https://docs.python.org/3.8/whatsnew/3.8.html#changes-in-the-c-api) it 
indicates that:

> On Unix, C extensions are no longer linked to libpython except on Android and 
> Cygwin. When Python is embedded, libpython must not be loaded with 
> RTLD_LOCAL, but RTLD_GLOBAL instead. Previously, using RTLD_LOCAL, it was 
> already not possible to load C extensions which were not linked to libpython, 
> like C extensions of the standard library built by the *shared* section of 
> Modules/Setup. (Contributed by Victor Stinner in bpo-21536.)

So if you are embedding python by dlopen'ing libpython.so you should use 
RTLD_GLOBAL to make sure everyone is using the same symbols. You have more 
information on the rationale and decisions in bpo-21536.

Is your use-case not cover by the arguments in bpo-21536? What is the problem 
of embedding by dlopening libpython using RTLD_GLOBAL?

----------
nosy: +pablogsal
versions: +Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue36753>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to