[C++-sig] dynamic linking in Linux

Jim Bosch talljimbo at gmail.com
Fri Jul 23 22:56:59 CEST 2010


On 07/23/2010 12:08 AM, Jim Bosch wrote:
> I've just run into the "wontfix" problem detailed here:
>
> https://svn.boost.org/trac/boost/ticket/3210
>
> Essentially, shared information held in one module (such as RTTI stuff
> needed for dynamic cast) isn't available to another module, leading to
> segfaults.

<snip>

An update: apparently, I'm not experiencing the garden-variety version 
of this problem.  Using setdlopenflags *doesn't* actually fix it (and 
neither does the similar ctypes method); it was just intermittent, and 
happened to work twice after I added the ctypes trick.  And it appears 
to only happens when pickling a Python builtin (dict, in my case) that 
contains a wrapped C++ object.  It doesn't matter whether I use pickle 
or cPickle.

Given that many people (including myself) have pickled Boost.Python 
objects inside dicts many times before without issue, it might be tricky 
to make a contained example that reproduces it this problem.  And I'm 
less motivated now because I can just skip pickling the object in this 
case and move on with my life...

But if anyone has any new ideas on where to look, it does seem like 
mysterious behavior that would be nice to track down.

Jim


More information about the Cplusplus-sig mailing list