[Bug other/38732] [4.4 Regression] Openoffice.org segfaults with runtime libs built from GCC trunk
------- Comment #12 from stephan dot bergmann at sun dot com 2009-01-06 09:12 -------
I was a bit sloppy in what I wrote before (i.e., in what Matthias turned into
the description of this bug); it is the change of offsets of __cxa_exception
members caused by the addition of referenceCount that causes problems for OOo:
In the OOo-supplied exception destructor function (which receives a pointer P
pointing just past the __cxa_exception header), OOo assumes to access the
__cxa_exception member exceptionType at P - 80 bytes. From my reading of
<http://www.codesourcery.com/public/cxx-abi/abi-eh.html> I think OOo is correct
in making this assumption, if GCC conforms to that ABI. However, the addition
of a referenceCount member to the front of GCC's __cxa_exception unfortunately
causes the "backwards offset" of exceptionType to change from -80 to -76 bytes
(as the four bytes of referenceCount cancel out a previous four padding bytes
just before the unwindHeader member coming later in the struct).
>From the comments to this bug so far, I am not sure whether the GCC maintainers
(a) acknowledge this and will fix it (in which case I do not need to modify
OOo), or
(b) acknowledge this but consider OOo to be using undocumented internals of GCC
that legitimately changed (in which case I will need to modify OOo), or rather
(c) consider alignment issues of unwindHeader instead (which I think are
irrelevant to my problem).
--
stephan dot bergmann at sun dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |stephan dot bergmann at sun
| |dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38732
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
Reply to: