[forwarded from http://bugs.debian.org/504323]
Stephan Bergmann writes: Reproducing with libstdc++.so.6 and libgcc_s.so.1 from gcc-4.4-20090102 in unxlngi6.pro DEV300m38 OOo, the problem is that OOo at <http://svn.services.openoffice.org/ooo/tags/DEV300_m38/bridges/source/cpp_uno/gcc3_linux_intel/share.hxx> l. 52 assumes a layout of struct __cxa_exception as given in section 2.2.1 of <http://www.codesourcery.com/public/cxx-abi/abi-eh.html>, while GCC 4.4 added a new member _Atomic_word referenceCount; to the start of the struct at gcc-4.4-20090102/libstc++-v3/libsupc++/unwind-cxx.h l. 57. OOo tries to get at information stored in the __cxa_exception header in the destructor function passed to __cxa_throw (function deleteException at <http://svn.services.openoffice.org/ooo/tags/DEV300_m38/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx> l. 213), which now fails. Please somebody clarify if GCC 4.4 adding a new member to struct __cxa_exception (and thus deviating from <http://www.codesourcery.com/public/cxx-abi/abi-eh.html>) is intended or is a mistake. If it is intended, the OOo code needs to be changed (the information deleteException is now trying to retrieve from the __cxa_exception header must instead be encoded in the deleteException function itself, by dynamically creating instances of deleteException as is already done in the OOo bridges for Solaris). If it is a mistake, the OOo code can stay as is and the GCC 4.4 code needs to be changed instead. -- Summary: Openoffice.org segfaults with runtime libs built from GCC trunk Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: doko at ubuntu dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38732