2) Debug Information. GCC does not emit PDBs, it emits DWARF. This means you cannot use Visual Studio to debug, you cannot use vTune or WPA to profile, you cannot use symbol / source servers.
3) There are licensing implications, GPL != BSD and it's easier to use BSD.
These are the main reasons. There are other reasons though, such as if the entire goal is to get down to 1 toolchain and that toolchain is X, then why would you waste your time converting Y to Z?
You can on 64 bit.
https://stackoverflow.com/questions/19269350/how-to-generate...
Lack of VC++ ABI support would be another reason.
In fact, there are way too many c++ compilers if you ask me. I would gladly accept a world where clang is the one and only.
And luckily you don’t have any saying in such matters.
Not me, IMO clang is where it is due to competition.
At one point, after updating the toolchain from gcc 4.x to 7.x and from mingw32 to mingw-w64, it started to produce broken binaries.
The manifestation of that brokenness was that binaries refused to start properly on systems where the toolchain was not installed. It just silently exited during startup - no crash, or error message, or anything.
This applied both to binaries that were cross-built on linux, and binaries built using MSYS2 on Windows.
I decided to just switch to clang-cl + MSVC headers instead, which worked properly. The only gotcha there was the need to store the headers on a case insensitive file system (I chose vfat) when compiling on linux, because the case of the includes aren't consistent (e.g. Windows.h vs. windows.h), even in the MSVC headers themselves.
As far as I could tell, the only DLLs the binaries referenced were msvcrt.dll and standard windows DLLs (KERNEL32, USER32, etc).
The application was also plain C.
Even if missing compiler runtime libraries were the issue, I would have expected the program crash or fail with an error message.
2. Not performant (Relative to other solutions)
3. Would be the odd man out. Literally all other development was on clang/llvm at this point.
Supporting mingw would have meant duplicating all performance/etc work for GCC.
4. Chrome also wanted other benefits that clang/LLVM would bring them (easy ability to build various forms of refactoring and analysis tooling, etc)
Edit Mingw-w64 its quite nice and includes gcc without all stuff cgwin does.