I tried to compile log4cplus-1.0.2 with the latest stable GCC distributed with MinGW (gcc-*-3.4.5-20060117-2). This failed. So I compiled GCC 3.4.6 myself:
export PATH=/mingw/bin:$PATH export GCC_EXEC_PREFIX=/mingw/lib/gcc/ cd .. mkdir mingw32 cd mingw32 mkdir /usr/include ../gcc-3.4.6/configure --with-gcc --with-gnu-ld --with-gnu-as \ --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads \ --disable-nls --enable-languages=c,c++,f77,ada,objc,java \ --disable-win32-registry --disable-shared --enable-sjlj-exceptions \ --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm \ --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization \ --enable-libstdcxx-debug --enable-languages=c,c++ make BOOT_CFLAGS="-O2 -fomit-frame-pointer -D__USE_MINGW_ACCESS" \ BOOT_CXXFLAGS="-mthreads -fno-omit-frame-pointer -O2" \ BOOT_LDFLAGS=-s \ bootstrap make install Now I have $ g++ --version g++.exe (GCC) 3.4.6 [...] $ uname -a MINGW32_NT-5.1 [hostname] 1.0.10(0.46/3/2) 2004-03-15 07:17 i686 unknown Updating the compiler didn't solve the problem. It still says: appender.cxx:245: warning: function 'virtual log4cplus::tstring log4cplus::Appender::getName()' is defined after prior declaration as dllimport: attribute ignored appender.cxx:253: warning: function 'virtual void log4cplus::Appender::setName(const log4cplus::tstring&)' is defined after prior declaration as dllimport: attribute ignored appender.cxx:268: warning: function 'virtual void log4cplus::Appender::setErrorHandler(std::auto_ptr<log4cplus::ErrorHandler>)' is defined after prior declaration as dllimport: attribute ignored appender.cxx:260: warning: function 'virtual log4cplus::ErrorHandler* log4cplus::Appender::getErrorHandler()' is defined after prior declaration as dllimport: attribute ignored appender.cxx:284: warning: function 'virtual void log4cplus::Appender::setLayout(std::auto_ptr<log4cplus::Layout>)' is defined after prior declaration as dllimport: attribute ignored appender.cxx:294: warning: function 'virtual log4cplus::Layout* log4cplus::Appender::getLayout()' is defined after prior declaration as dllimport: attribute ignored appender.cxx:95: warning: function 'virtual void log4cplus::OnlyOnceErrorHandler::error(const log4cplus::tstring&)' is defined after prior declaration as dllimport: attribute ignored appender.cxx:84: warning: function 'virtual log4cplus::ErrorHandler::~ErrorHandler()' is defined after prior declaration as dllimport: attribute ignored appender.cxx:84: warning: function 'virtual log4cplus::ErrorHandler::~ErrorHandler()' is defined after prior declaration as dllimport: attribute ignored appender.cxx: In destructor `log4cplus::ErrorHandler::~ErrorHandler()': appender.cxx:85: internal compiler error: in rest_of_handle_final, at toplev.c:2067 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. The command line used was: g++ -DHAVE_CONFIG_H -I. -I. -I../include/log4cplus -I../include -Wall -D_REENTRANT -g -O2 -c appender.ii -DDLL_EXPORT -DPIC -o .libs/appender.o This is similar to what a simple "./configure" yielded. Please find the lengthy preprocessed source attached. -- Summary: Similar to #23589: Internal compiler error: in rest_of_handle_final, at toplev.c:2067 Product: gcc Version: 3.4.6 Status: UNCONFIRMED Severity: critical Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bachlipp at web dot de GCC build triplet: *-*-* GCC host triplet: i386-pc-mingw32 GCC target triplet: i386-pc-mingw32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35883