http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53602
Bug #: 53602 Summary: Libre Office causes an internal compiler error Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: a...@benton.eu.com Libre Office 3.5.3 compiles fine for me with Gcc 4.7 on x86_64 but on i686 the build dies with this error: Making: all_uno-skeletonmaker.dpobj Compiling: unodevtools/source/skeletonmaker/skeletonmaker.cxx Compiling: unodevtools/source/skeletonmaker/skeletoncommon.cxx /home/andy/save/sources/extras/libreoffice-core-3.5.3.2/unodevtools/source/skeletonmaker/skeletoncommon.cxx: In function 'void skeletonmaker::checkDefaultInterfaces(boost::unordered::unordered_set<rtl::OString, rtl::OStringHash>&, const boost::unordered::unordered_set<rtl::OString, rtl::OStringHash>&, const rtl::OString&)': /home/andy/save/sources/extras/libreoffice-core-3.5.3.2/unodevtools/source/skeletonmaker/skeletoncommon.cxx:317:1: internal compiler error: in force_move_args_size_note, at combine-stack-adj.c:419 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. The "internal compiler error" and the request for a bug report to be sent to gcc makes it look like a bug in Gcc 4.7. The actual code that causes the problem looks like this: void checkDefaultInterfaces( boost::unordered_set< OString, OStringHash >& interfaces, const boost::unordered_set< OString, OStringHash >& services, const OString & propertyhelper) { if ( services.empty() ) { if (interfaces.find("com.sun.star.lang.XServiceInfo") != interfaces.end()) interfaces.erase("com.sun.star.lang.XServiceInfo"); } else { if (interfaces.find("com.sun.star.lang.XServiceInfo") == interfaces.end()) interfaces.insert("com.sun.star.lang.XServiceInfo"); } if ( propertyhelper.equals("_") ) { if (interfaces.find("com.sun.star.beans.XPropertySet") != interfaces.end()) interfaces.erase("com.sun.star.beans.XPropertySet"); if (interfaces.find("com.sun.star.beans.XFastPropertySet") != interfaces.end()) interfaces.erase("com.sun.star.beans.XFastPropertySet"); if (interfaces.find("com.sun.star.beans.XPropertyAccess") != interfaces.end()) interfaces.erase("com.sun.star.beans.XPropertyAccess"); } } Googling on the error found this bug report at Ubunut: https://bugs.launchpad.net/ubuntu/+source/gcc-4.7/+bug/1007616 But sadly they have no solution. I have previously built Libre Office 3.5.3 on i686 with Gcc 4.7, what was different this time was that I used an svn pull of the Gcc 4.7 branch (r188021). Ie, Gcc had changes that had been checked into the Gcc 4.7 branch since gcc-4.7.0 was released. Looking at http://gcc.gnu.org/bugs/#detailed it seems that I'm supposed to provide the output of something like: gcc -v -save-temps all-your-options source-file Sadly I have no clue how gcc was called by the Libre Office dmake system (I am completely unfamiliar with dmake). If someone could guide me on how to find out how gcc was called I would appreciate it. Another problem with debugging this is that I can only reproduce this on a 32 bit system and all my 32 bit computers are old and slow. Compiling Libre office takes about 20 hours but fortunately the error occurs only about 4 hours into the build