This is the mail archive of the ecos-devel@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Strange __cxa_pure_virtual problem


>>>>> "Uwe" == Uwe Kindler <uwe_kindler@web.de> writes:

    <snip>

    Uwe> Summary:

    Uwe> As soon as I declare a static object of a class with pure
    Uwe> virtual functions, a lot of __cxa_... stuff is pulled in from
    Uwe> libsupc++. This does not depend on uSTL package.

    Uwe> If the static object is a string from uSTL package, the
    Uwe> __cxa_pure_virtual() function from libsupc++ is used. If the
    Uwe> class declaration is part of the application then the
    Uwe> __cxa_pure_virtual() from infra/pure.cxx is used.

    Uwe> Do you have any suggestions how to continue with uSTL package
    Uwe> integration?

The underlying problem seems to be that the compiler is generating
calls to __cxa_guard_release() for reasons that are still not clear.
According to jifl's posting of 12 August that should only happen when
compiling with -fexceptions (possibly accidentally, by removing
-fno-exceptions for the application makefile). Everything else
including pulling in __cxa_pure_virtual() from libsupc++ is a side
effect of that.

So you need to figure out what __cxa_guard_release() is for and under
what circumstances the compiler will issue calls to that function.
Then we can figure out how to proceed.

Bart

-- 
Bart Veer                                   eCos Configuration Architect
eCosCentric Limited    The eCos experts      http://www.ecoscentric.com/
Barnwell House, Barnwell Drive, Cambridge, UK.      Tel: +44 1223 245571
Registered in England and Wales: Reg No 4422071.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]