From: Jeremy Pack (rostovpack_at_[hidden])
Date: 2007-07-15 20:13:31
Thanks! Sorry I didn't respond sooner - I was out of town. I will attempt to
document the items that you mention - and put it into our own test cases. It
may also help to overcome one minor performance bottleneck.
On 7/12/07, Stephan Diederich <stephan.diederich_at_[hidden]> wrote:
> On 7/11/07, Janek Kozicki <janek_listy_at_[hidden]> wrote:
> > Stephan Diederich said: (by the date of Wed, 11 Jul 2007 21:52:32
> > +0200)
> > > First, the executable needs to be linked with "-rdynamic". With that
> > flag
> > I confirm that. To write my own plugin loading library on linux I had
> > to use -rdynamic flag almost everywhere (for plugins too!).
> > Second, the call to dlopen a library should be passed RTLD_GLOBAL. With
> > that
> > However i don't need to do anything with regard to RTLD_GLOBAL
> I gave it a try with another testcase. It is attached to this mail, but is
> bit clumsy.
> There are 3 directories: src (with the main app), lib1 and lib2. (the
> are handmade)
> The first test is to create a boost::any in lib1 and try to extract it in
> This works, as long as the executable is linked with -rdynamic. (the lib
> doesn't need it). dlopen flags don't matter, too.
> The second testcase is to create a boost::any in lib1, and try to extract
> in lib2.
> This works, as long as the first lib is opened with RTLD_GLOBAL flag.
> If the executable is linked _with_ -rdynamic all 3 modules now have the
> same typeinfos. But this testcase even works _without_ the -rdynamic flag.
> Then lib1 and lib2 share the same typeinfos, but the executable has a
> different one (and cannot do anything with the boost::any from the libs)
> Unsubscribe & other changes: http://lists.boost.org/mailman
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk