|
Boost : |
Subject: Re: [boost] [1.37.0][serialization] Assertion failed at libs/serialization/src/extended_type_info.cpp:92
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2008-10-23 08:29:32
Troy,
> > My setup: Linux 64Bit, gcc 4.2.4, serialization is used for
> polymorphic
> > objects loaded from different shared libraries, shared libraries are
> loaded
> > with dlopen(RTLD_GLOBAL|RTLD_LAZY).
> >
>
> 1. What does the output of 'gcc --verbose' give you? I'm looking for
> some flags that show how gcc was built, specifically one involving
> __cxa_atexit (i'm just following a hunch)
[hkaiser_at_celeritas ~]$ gcc --verbose
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/usr/local/compilers/gcc-4.2.4
--with-mpfr=/usr/lib/mpfr --enable-languages=c,c++
Thread model: posix
gcc version 4.2.4
> 2. Have you tried dlopening these libs with (RTLD_NOW | RTLD_GLOBAL)?
Yep, same picture.
Regards Hartmut
>
> -t
>
>
> > Assertion (extended_type_info.cpp:92) occurs during program
> termination
> > (after main returned), during dlclose().
> >
> > If anything else isn't possible, would it be appropriate to change
> the
> > related code (before the release!) from:
> >
> > assert(start != end);
> >
> > // remove entry in map which corresponds to this type
> > do{
> > if(this == *start)
> > x.erase(start++);
> > else
> > ++start;
> > }while(start != end);
> >
> > To:
> >
> > assert(start != end);
> >
> > // remove entry in map which corresponds to this type
> > while(start != end) {
> > if(this == *start)
> > x.erase(start++);
> > else
> > ++start;
> > }
> >
> > Which wouldn't remove the problem, but at least avoids hanging the
> program
> > if assertions are off...
> >
> > Regards Hartmut
> >
> > _______________________________________________
> > Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk