I've managed to fix all but one of the problems stopping setup compiling with gcc3.
The remaining problem is: ../setup/LogSingleton.cc: In constructor `LogSingleton::LogSingleton()': ../setup/LogSingleton.cc:35: no matching function for call to ` std::basic_ostream<char, std::char_traits<char> >::basic_ostream()' /usr/include/c++/3.2/iosfwd:61: candidates are: std::basic_ostream<char, std::char_traits<char> >::basic_ostream(const std::basic_ostream<char, std::char_traits<char> >&) /usr/include/c++/3.2/ostream:72: std::basic_ostream<_CharT, _Traits>::basic_ostream(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>] make[2]: *** [LogSingleton.o] Error 1 I don't know how to solve this. It looks like the LogSingleton constructor will need rewriting, but I don't have the STL skills for that. A remaining minor issue: ../setup/res.rc:217:6: invalid preprocessing directive #CONTROL This is supposed to be a # comment. Are they valid in .rc files? Maybe it should be a // comment. Patches attached: setup-gcc3-kludge-mkdir.patch: I've been building a Cygwin, not MinGW setup, because the gcc-mingw package annoyed me by not removing itself properly, and I don't want to reinstall it after cleaning my Cygwin setup. Cygwin compilation of mkdir.cc. This just avoids the issue. setup-gcc-partial-fixes.patch: A load of fixes, outlined below: - Add a throw() specification to Exception::what(), because one has been added to its base class. - Add std:: qualifiers to _lots_ of things. - Add using std::xxxx; statements to the top of .cc files which have lots of std:: things, instead of std::-prefixing each occurrence. - Reorder includes (libstdc++-v3 is rather sensitive to windows.h being included before it). NB: It is necessary to add -Wno-deprecated to CFLAGS, to avoid a warning (which is treated as an error) about the use of strstreams. Max.
setup-gcc3-kludge-mkdir.patch
Description: Binary data
setup-gcc3-partial-fixes.patch
Description: Binary data