[Python-Dev] Problems with Python's default dlopen flags
David Abrahams" <email@example.com
Sun, 5 May 2002 17:29:36 -0500
From: "Martin v. Loewis" <firstname.lastname@example.org>
> "Ralf W. Grosse-Kunstleve" <email@example.com> writes:
> > python -> dlopen ext1.so with statically linked
> > python -> dlopen ext2.so with statically linked
> That explains a lot of things indeed. It doesn't explain why the
> exception handling on Linux fails (that should still work fine even
> with two separate copy of each typeinfo object, IMO),
Not the way I read http://gcc.gnu.org/faq.html#dso.
Am I missing something? If an exception is thrown from ext1 -> ext2 and
they're not sharing symbols, there will be distinct copies of all
typeinfo objects used in the two modules, and the address comparisons
used to determine whether a catch clause matches ought to fail, no?
> but it gives a
> clue as to what things may have broken: you get two copies of each
> global object, and gives you access to both copies. Depending on the
> exact interaction sequence, it is well possible that all kinds of
> corruption occur.
I don't think Ralf is explicitly using any non-const global objects or
explicitly relying on on object identity across extension modules, so
it's hard to imagine that this is at play.