This is the mail archive of the
ecos-devel@sourceware.org
mailing list for the eCos project.
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.