[Python-Dev] Problems with Python's default dlopen flags

David Abrahams David Abrahams" <david.abrahams@rcn.com
Sun, 5 May 2002 16:08:48 -0500


From: "Jack Jansen" <Jack.Jansen@oratrix.com>

> On zondag, mei 5, 2002, at 09:26 , Martin v. Loewis wrote:
> >> And in fact, I expect to ask users to do something special, like
> >> explicitly linking between extension modules
> >
> > Indeed, that should also work fine - if users explicitly link
> > extension modules against each other, they should be able to share
> > symbols.
>
>  From experience I can say this is not a good idea. MacOS
> extension modules used to do this until Python 1.5.2, and it can
> have undesired side effects (similar to the C++ initializer
> problems you noted). If you need to communicate symbols between
> module A and B it's better to make a normal shared library
> ABglue.so which contains the glue code, and link both A and B
> against it. The only question is where to put the ABglue.so
> file,

That's hardly the only question:

If A needs to throw an exception which is caught in B, what is "the glue
code" that you put in ABglue.so?

If a class with inlined virtual functions is used by A with subclasses
defined in B, what is the "glue code"?

What about templates? ;-)  (vague, but relevant)

-Dave