what's the proper way to configure/enable/disable C exception handling?

James E Wilson wilson@specifixinc.com
Thu Mar 10 22:09:00 GMT 2005


Paul Schlie wrote:
> - might forcing sjlj exceptions help? With what consequences?

Perhaps, try it and see.  Less efficient C++ EH support.  We also have C 
extensions for EH support, but they are not widely used.

> - or might it be best for me to attempt to refine the baseline exception
>   data structure definitions to be more target type size support aware?

The data structures are defined by the Itanium Unwind ABI, which has 
subsequently been included in the C++ ABI standard.  The Itanium Unwind 
ABI requires 64-bit values, and hence the C++ ABI by extension also 
requires 64-bit values here.  Since changing the sizes violates the C++ 
ABI, it isn't something we can do by default.

It could perhaps be done for specific targets which don't have 64-bit 
integral types, but there would have to be a good justification for it, 
and the patches would have to be minimally invasive.  It isn't clear if 
it is worth the trouble.  We have had type problems with this code 
before, and people are going to be unwilling to mess with it.

You haven't stated precisely what the problem is here, i.e. what exact 
error you get, so it isn't clear what else to recommend.  Maybe you can 
solve the problem by dropping support for C++ and not building parts of 
the C++ EH infrastructure.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc mailing list