On 08/25/2018 12:13 AM, Steven Penny wrote: > On Fri, 24 Aug 2018 10:11:42, JonY wrote: >> Can you try breaking it down by phases? >> 1. Preprocessor phase with -E -o file.ii > >    $ time x86_64-w64-mingw32-g++ -E -o file.ii stoi.cpp; wc -c file.ii >    real    0m0.172s >    719550 file.ii > >> 2. Compile phase (compile output from phase 1) with -c > >    $ time x86_64-w64-mingw32-g++ -c file.ii; wc -c file.o >    real    0m0.312s >    7368 file.o > >> 3. Link phase, point gcc to the output from phase 2. > >    $ time x86_64-w64-mingw32-g++ -static file.o; wc -c a.exe >    real    0m1.950s >    11906797 a.exe > > Also it might be worth noting the starting point - for some reason > Cygwin is 4 > times larger than Msys2? > >    $ wc -c /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a >    22446354 /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a > >    $ wc -c mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a >    5597192 mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a > Can you roll back to the previous x86_64-w64-binutils and find out if it makes a difference? Other than that, I'm quite out of ideas.