public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
From: Uwe Kindler <uwe_kindler@web.de>
To: ecos-devel@sourceware.org
Subject: Strange __cxa_pure_virtual problem
Date: Wed, 05 Aug 2009 18:55:00 -0000	[thread overview]
Message-ID: <4A79D58B.8070300@web.de> (raw)

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

             reply	other threads:[~2009-08-05 18:55 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-05 18:55 Uwe Kindler [this message]
2009-08-07  9:35 ` John Dallaway
2009-08-07 11:35 cetoni GmbH - Uwe Kindler
2009-08-07 12:04 ` John Dallaway
2009-08-07 13:40   ` Bart Veer
2009-08-07 15:08     ` John Dallaway
2009-08-07 15:42       ` Bart Veer
2009-08-11  9:05       ` Daniel Néri
2009-08-07 16:31     ` Sergei Gavrikov
2009-08-12  1:34     ` Jonathan Larmour
2009-08-08  6:04 Uwe Kindler
2009-08-12  9:10 cetoni GmbH - Uwe Kindler
     [not found] <4A827EDC.3030004@cetoni.de>
2009-08-12 14:15 ` Jonathan Larmour
2009-08-12 17:49 Uwe Kindler
2009-08-12 19:07 ` Bart Veer
2009-08-13  8:00   ` Uwe Kindler
2009-08-19 10:37     ` Bart Veer
2009-08-19 14:35 cetoni GmbH - Uwe Kindler
2009-08-19 16:05 ` John Dallaway
2009-08-21 14:55 ` Bart Veer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A79D58B.8070300@web.de \
    --to=uwe_kindler@web.de \
    --cc=ecos-devel@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).