PATCH [8/n]: Prepare x32: PR other/48007: Unwind library doesn't work with UNITS_PER_WORD > sizeof (void *)
Jason Merrill
jason@redhat.com
Mon Jun 27 15:16:00 GMT 2011
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
More information about the Gcc-patches
mailing list