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 <iostream> > #include <string> > 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.
signature.asc
Description: OpenPGP digital signature