| mingw-w64 llvm maintainer/developer here. Over the past 2-3 years, with great help from a few other LLVM devs I have slowly pushed for native clang support for mingw-w64. With the current in tree HEAD you can now build and bootstrap mingw-w64 with a llvm-only toolchain (no binutils or gcc, thus no disregard of the PECOFF SPEC) The stack is as follows. LLVM+CLANG+LLD+COMPILER-RT+LIBCXX+LIBCXXABI+LIBUNWIND+MINGW-W64. The libraries and executables built this way can be dropped into visual studio quite easily, the two environments are now basically interchangeable. This also means we can borrow the PDB debugging work by Zachary Turner and/or any msvc features added to llvm for free that was done by the various googlers working on chrome. See a talk from Reid on the most recent LLVM developer meetup for more info on PDB and how it works.
There has been no formal release of this environment yet but you should see something in the coming weeks/months.
I keep build scripts here for those interested. https://github.com/martell/mingw-w64-clang I'm due another cleanup of the repo now that wine 3.0 is out so I can actually run x64 tests within a linux docker container.
I'm going to be doing some blogging to make this more visible with various partners that want to support this. The most interesting part of this for me was implementing a llvm-dlltool alternative to binutils dlltool that actually works within the PECOFF spec so msvc lib.exe and link.exe likes what it produces. https://reviews.llvm.org/rL308379 |
I did all of the PDB stuff in LLVM, happy to help if you need it (ping me on the mailing list or IRC)