There has been a recent update to GCC, so naturally I updated my copy and set about recompiling the libraries I commonly use.
I then started getting some very odd out-of-memory errors coming out from ld. For those not in the know, ld is the ‘linker’ tool that takes all the compiled object files and links them into a final binary (EXE or DLL on Windows). It turns out that a change of functionality has come about in the latest version of GCC that has massively affected the size of the object files it produces. In basic terms, any inline dllexported function is now written to every object file that includes the header containing the function. While usually not much of a problem, compiling something like wxWidgets into a monolithic DLL now creates well over 2GB of object files.
The result of all of this is that either GCC needs to be patched with a switch to turn off this new functionality, or wxWidgets needs to be patched with some compiler-version specific workarounds. Not fun either way really.
EDIT: It’s been submitted to GCC’s bug tracker