- 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