Jakub Jelinek <ja...@redhat.com> writes: > On Tue, Mar 22, 2011 at 04:19:46PM +0100, Ulrich Weigand wrote: >> Ian Lance Taylor wrote: >> > "H.J. Lu" <hjl.to...@gmail.com> writes: >> > >> > > Here is the updated patch. It has >> > >> > This patch is OK if it bootstraps and passes tests. >> >> I thought the _Unwind_Context structure was part of the libgcc ABI >> and should only be changed by appending to the end and/or updating >> the version field? > > It is, so a change like this should be guarded by some preprocessor > conditionals if it makes any difference on any target (not sure if > we have any targets where a union containing void * and uintptr_t > would be layed out differently in a structure from void *, but > certainly on targets where _Unwind_Word is larger than void * > and they aren't new targets we risk ABI issues). > The problem is when some binaries link against older libgcc.a > and are used together with dynamically linked libgcc_s.so.
Any target on which _Unwind_Word is larger than void * is broken today, so I don't think we need to care about that case. But, yes, if there is a target in which the union would be laid out differently than the simple field, then there is a problem. I think this is an unlikely case. Does anybody know of a target where that might occur? Ian