Reducing the size of C++ executables - eliminating malloc

Michael Eager eager@eagercon.com
Mon Nov 13 01:11:00 GMT 2006


Mark Mitchell wrote:
> But, the way the ABI works requires a reference from each unit which may
> cause unwinding.  Even if you lose the personality routine, you will
> still have the exception tables, which themselves are a significant
> cost.  If you don't want to pay for exceptions, you really have to
> compile with -fno-exceptions.  In that case, certainly, we should be
> able to avoid pulling in the personality routine.

I think that we are actually in agreement, for the most part.
The routines which need unwinding should have a reference to
the personality module.  Routines which don't need unwinding
shouldn't have a superfluous reference to it.

There is a check in doing_eh() in except.c which checks that
-fexceptions is set if any exception-specific functions are
used.  It seems that this would be the place to generate the
reference to __gxx_personality_v0.

-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077



More information about the Newlib mailing list