On 08/21/2018 03:18 AM, Steven Penny wrote: > On Wed, 18 Jul 2018 10:38:22, JonY wrote: >> The mingw-w64 cross compilers have been updated: >> >> * mingw64-i686-gcc-7.3.0-1 >> * mingw64-x86_64-gcc-7.3.0-1 >> >> It is available under the test version. > > http://cygwin.com/ml/cygwin/2018-07/msg00168.html > > Using this file: > >    $ cat stoi.cpp >    #include >    #include >    main() { >      std::string q = "23456"; >      std::cout << std::stoi(q) << std::endl; >    } > > I have noticed an issue with the Cygwin "x86_64-w64-mingw32-g++" > compiler. If I > strip the executable, all is well: > >    $ time x86_64-w64-mingw32-g++ -s -static-libstdc++ stoi.cpp; wc -c a.exe >    real    0m0.889s >    845824 a.exe > > Same with Msys2: > >    # time x86_64-w64-mingw32-g++ -s -static-libstdc++ stoi.cpp; wc -c a.exe >    real    0m0.718s >    835584 a.exe > > However if I do not strip the executable, the compile time nearly > triples and > the size increases 10 fold: > >    $ time x86_64-w64-mingw32-g++ -static-libstdc++ stoi.cpp; wc -c a.exe >    real    0m2.340s >    11695660 a.exe > > Compare with Msys2, where the time only increases 17%, and the size only > increases 3 fold: > >    # time x86_64-w64-mingw32-g++ -static-libstdc++ stoi.cpp; wc -c a.exe >    real    0m0.842s >    3001138 a.exe Can you try breaking it down by phases? 1. Preprocessor phase with -E -o file.ii 2. Compile phase (compile output from phase 1) with -c 3. Link phase, point gcc to the output from phase 2.