On Thu, Nov 03, 2011 at 12:15:49AM +0100, Michael Matz wrote:
> And there's also one issue with Ada that I need help with: it doesn't 
> build anymore. ;-)  Well, the tools don't link when C++ bootstrap is 
> active.  This is because our whole libbackend is compiled with g++, and 
> hence uses the gxx_personality_v0 routines.  But the gnattools are linked 
> with a hardcoded ../../xgcc (missing all the C++ libs) leading to the 
> symbol not found.  Up to now this accidentally was no problem because g++ 
> is so nice that if no EH mechanisms are used it doesn't force any 
> personality.  I'm not sure what the best fix here is.  The rest of the 
> compiler uses COMPILER and LINKER make variables that are set correctly 
> depending on bootstrap configuration.  But the gnattools Makefile.in 
> doesn't know about these, so I'm don't see how this ever was supposed to 
> work.

I must say I'm worried a little bit about using EH for something that isn't
EH at all in the source.  Do your artificial EH regions survive into
.gcc_except_table, or is it just that when we are deciding whether to use
any personality routine at all they are still present and thus we decide to
use the personality routine?  If the latter, perhaps we could mark those
artificial regions with some flag and disregard them for the decision
whether we need a personality routine or not.  If we force a use of a
personality routine to every C++ file compiled without -fexceptions, it
would mean .eh_frame would grow unnecessarily.

        Jakub

Reply via email to