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