|
Boost : |
Subject: Re: [boost] [1.37.0][serialization] Assertionfailed at libs/serialization/src/extended_type_info.cpp:92
From: David Abrahams (dave_at_[hidden])
Date: 2008-10-23 22:39:45
on Thu Oct 23 2008, "Hartmut Kaiser" <hartmut.kaiser-AT-gmail.com> wrote:
>> There should be one key_register and a matching key_unregister
>> for each exported type. Since this is very hard to reproduce,
>> could I ask you to spend a little time investigating why
>> this seems not to be true in this case? I would hope
>> that trapping on these two functions and watching what
>> the arguments are might shed light on the mystery.
>
> Ok, here is what I got. Everything suddenly starts to work as soon as there
> is at least one BOOST_CLASS_EXPORT() inside a shared library which is loaded
> at application startup (not loaded with dlopen()). But please don't ask me
> why, it's just good to know. Perhaps we're dealing with some idiosyncrasies
> of the dlopen() library in combination with gcc symbol visibility rules.
Do dynamic initializations of namespace scope objects occur when a
library is loaded solely through dlopen? If not, that would explain it.
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk