On 06/26/2011 05:58 PM, H.J. Lu wrote:
The current unwind library scheme provides only one unwind
context and is backward compatible with multiple different unwind
contexts from multiple unwind libraries:

http://gcc.gnu.org/ml/gcc-patches/2006-12/msg01769.html

My patch fixes UNITS_PER_WORD > sizeof (void *) and
enforces single unwind context when backward compatibility
isn't needed.

OK, there seem to be two things going on in this patch:

1) Handle registers larger than pointers.
2) Require that all code share a single copy of the unwinder.

For #2, how are you avoiding the issues Jakub describes in that message? Isn't his scenario 2 still possible? Are you deciding that it's better to abort at run-time in that case?

It seems to me that for targets newer than Jakub's patch we can hard-wire _Unwind_IsExtendedContext to true, but making further assumptions would be a mistake.

Then, if we're still trying to handle versioning, I think your earlier patch for #1 (r170716) that just changes the type of the reg array is a better way to go. But that change should be dependent on a target macro to avoid ABI changes for existing targets.

Jason

Reply via email to