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

Reply via email to