David N. Welton wrote:
The problem is that despite using -nostdlib whilst compiling, I still get __cxa_atexit and __dso_handle defined in my .o files (yes, eCos utilizes C++ in places).
I think the problem is not that you are getting definitions, but that you are getting references to these symbols.
I found a switch to turn off __cxa_atexit, but found nothing for the other one. Is it possible to get gcc 3.[recent] to generate executables suitable for standalone execution? If not, I think it ought to be!
You mean, whether g++ supports free-standing (as opposed to hosted) development? It certainly does: __dso_handle is part of the minimum run-time that you need in a free-standing environmnent. Just supply a minimum definition for it, and be done with it: it needs to be some address. In general, it needs to be unique per shared library, but if you don't have shared libraries, a single definition will do.
Regards, Martin