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]

Strange __cxa_pure_virtual problem


Hi,

I'm currently in the process of testing uSTL library port. I tried to build the library without filestream support and without package file I/O.

The library build process succeeds. Bu if I start building the test cases then the compiler fails on building diag_sprintf1 test with the error message:

make[1]: Leaving directory `/home/Nutzer/ustl_test_08_nofio_build/infra/current'
/opt/ecos/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi/4.3.2/../../../../arm-eabi/lib/nointerwork/libsupc++.a(pure.o): In function `__cxa_pure_virtual':
make: Leaving directory `/home/Nutzer/ustl_test_08_nofio_build'
(.text.__cxa_pure_virtual+0x14): undefined reference to `write'
collect2: ld returned 1 exit status


So the compiler/linker does not link the __cxa_pure_virtual function in infra/current/src/pure.cxx and instead takes the implementation from libsupc++.

In the libsupc++ source file pure.cc the function __cxa_pure_virtual writes an error string to stderr via 'write' function. Because no file I/O package is present, there is no write function and the reference to 'write' is undefinded.

This error only occures for debug builds (-g2 -O0). If I build with -g -O2 this error does not occur. This problem does not occur, if I link my main.cpp application against the library but it occures when I build test cases. As soon as I add the file I/O package, the tests build process succeeds because a 'write' function is present.

The question is, how can/should I solve this problem? Is there a way to force the compiler/linker to use the infra/current/src/pure.cxx implementation or should I provide a dummy 'write' function in uSTL package if file I/O package is not present?

Regards, Uwe


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