So then I decided to build a trunk-version of g++ (well, gcc, g++ and libstdc++). Said, done. I also build it with LTO support.
The trunk of gcc is 1.3GB, the build-directory 1.9GB according to du.
Timing of the build (just the call to make, not including the call to configure and make install):
real 98m55.125suser 101m28.610ssys 5m39.180s
g++ -v output:
z33ky@mobileblahbuntu:~$ g++ -vUsing built-in specs.COLLECT_GCC=g++COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapperTarget: x86_64-unknown-linux-gnuConfigured with: ../configure --enable-gold=both --enable-languages=c,c++ --with-gold --enable-build-with-cxx --enable-lto --disable-multilibThread model: posixgcc version 4.6.0 20101120 (experimental) (GCC)
Attempting to build my current project failed after that, but the errors were quickly fixed.
Now I am re-writing a small part of the code making use of unrestricted unions, where I had a union of pointers before.