Subject: Re: [boost] [1.37.0][serialization] Assertionfailed atlibs/serialization/src/extended_type_info.cpp:92
From: Robert Ramey (ramey_at_[hidden])
Date: 2008-10-23 13:58:15
Hartmut Kaiser wrote:
> 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()).
LOL - this is the kind of thing that in a million years would not have
occurred to me.
> 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.
I would guess a more likely (and perhaps fixable) cause.
The serialization::singleton guarentees that and instance
of an object is initialized before first usage. Perhaps something
isn't being used "soon enough" when all exports are in DLLS.
It has been found that in gcc compilers, static destructors
are not called in reverse order of invokation of static constructors.
This is the function is "is_destroyed". My guess is that
there is something which should be forced to be initialiezed
at application startup. looks like we'll have to wait and see
what it is.
> Problem solved, thanks again!
> Regards Hartmut
> Unsubscribe & other changes:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk