Message ID | 20201116204659.40340-1-msc@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | [2.32] struct _Unwind_Exception alignment should not depend on compiler flags | expand |
* Matheus Castanho: > Could we backport this patch to the 2.32 branch? It would be helpful > to fix the issue downstream. Sure, looks reasonable. Do you need it backported further? Sorry for not being up-to-date with commit capabilities—would you be able to commit this yourself? Thanks, Florian
On 11/16/20 5:50 PM, Florian Weimer wrote: > * Matheus Castanho: > >> Could we backport this patch to the 2.32 branch? It would be helpful >> to fix the issue downstream. > > Sure, looks reasonable. Do you need it backported further? No. Only 2.32 is enough. > > Sorry for not being up-to-date with commit capabilities—would you be > able to commit this yourself? No, I don't have write permission. So I'd appreciate if either you or Tulio could push it if that's OK. Thanks, Matheus Castanho
* Matheus Castanho: >> Sorry for not being up-to-date with commit capabilities—would you be >> able to commit this yourself? > > No, I don't have write permission. So I'd appreciate if either you or Tulio > could push it if that's OK. You should really apply for sourceware access. Tulio, would you be able to handle that? I'm going to push the backport if my test build (on x86-64) completes. Thanks, Florian
Florian Weimer via Libc-alpha <libc-alpha@sourceware.org> writes: > * Matheus Castanho: > >>> Sorry for not being up-to-date with commit capabilities—would you be >>> able to commit this yourself? >> >> No, I don't have write permission. So I'd appreciate if either you or Tulio >> could push it if that's OK. > > You should really apply for sourceware access. Tulio, would you be able > to handle that? Done. > I'm going to push the backport if my test build (on x86-64) completes. Thanks!
diff --git a/sysdeps/generic/unwind.h b/sysdeps/generic/unwind.h index b667a5b652..c229603af3 100644 --- a/sysdeps/generic/unwind.h +++ b/sysdeps/generic/unwind.h @@ -75,15 +75,21 @@ typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code, struct _Unwind_Exception { - _Unwind_Exception_Class exception_class; - _Unwind_Exception_Cleanup_Fn exception_cleanup; - _Unwind_Word private_1; - _Unwind_Word private_2; - - /* @@@ The IA-64 ABI says that this structure must be double-word aligned. - Taking that literally does not make much sense generically. Instead we - provide the maximum alignment required by any type for the machine. */ -} __attribute__((__aligned__)); + union + { + struct + { + _Unwind_Exception_Class exception_class; + _Unwind_Exception_Cleanup_Fn exception_cleanup; + _Unwind_Word private_1; + _Unwind_Word private_2; + }; + + /* The IA-64 ABI says that this structure must be double-word aligned. */ + _Unwind_Word unwind_exception_align[2] + __attribute__ ((__aligned__ (2 * sizeof (_Unwind_Word)))); + }; +}; /* The ACTIONS argument to the personality routine is a bitwise OR of one