Kevin O'Connor wrote:
> Hi Jacek,
>
> Thanks for providing the FAQ.
>
> I found answer 10 to be very informative. I too had noticed the 40K
> of baggage that the c++ compiler appends to programs. However, I
> didn't know that the -fno-exceptions flag could reduce this.
>
> Unfortunately, try as I might, I could not get haret (see
> http://www.handhelds.org/moin/moin.cgi/HaRET) to shrink with
> -fno-exceptions. As a guess, it looks like anything that requires
> libsupc++.a is going to pull in the exception code. Many basic c++
> constructs (eg, vtables, new, delete) pull in that library.
>
> As a result, it looks like the effort of removing the exception code
> is about on par with porting the app to C.
>
I've once did reduce the amount of bloat c++ exception
handling for an embedded (<32k) firmware app.
First, reimplement operator new*, on top of malloc, not
touching anything related to exceptions:
Simple e.g.:
void *
operator new (std::size_t sz)
{
return malloc (sz ? sz : 1);
}
Then, the trick was to provide empty stubs for a few
extern "C" functions the C++ runtime calls on some
situations in the presence of exceptions or when
something goes wrong. Turns out they're always sucked
in even if using -fno-exceptions.
Since I knew they would never be called (I was dead sure
no lib on the system threw exceptions, since I wrote
it all :-) ), it was safe to stub them out.
I can't remember which functions they were OTTOMH, but I
used this to get a clear look at what's pulling what:
http://sources.redhat.com/ml/newlib/2006/msg00309.html
--
Pedro Alves
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Cegcc-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel