[libcxx] What degree of Windows and/or MSVC support is already present?

compnerd (CC’d) did the initial work to port libc++ to Windows (including adding support for native Windows threading). EricWF (also CC’d) continued that work, particularly around tests and vcruntime support. I’ve done some fix-ups here and there.

Last I checked, libc++ on Windows x86 compiled successfully with clang-cl, and only failed around 200 tests (out of over 5000). There’s documentation for building and running tests on Windows at http://libcxx.llvm.org/docs/BuildingLibcxx.html#experimental-support-for-windows. I was maintaining a Google Doc tracking the test failures at https://docs.google.com/spreadsheets/d/1Yonp8WidaIBb9mmzy6aV92wbjBYEargyrlIYc75r3Gk/edit#gid=0, though it’s probably fairly out of date now. EricWF also set up an appveyor bot at https://ci.appveyor.com/project/EricWF/libcxx.

One known issue is a lack of locale support (https://bugs.llvm.org/show_bug.cgi?id=31516). I’ll be working more on addressing that (and the remaining test failures) over the next couple of months.

cl support hasn’t been an explicit goal for any of us yet. It would definitely be nice to have though, and I’m aware of the work you’ve been doing on that front.

Thanks for the info. I somehow missed the mention of experimental windows support on the BuildingLibcxx page.

Are there any efforts to support things like Cygwin? Or is clang-cl targeting Win32 and x64 desktops the extent of things now?

Also, many thanks to EricWF for getting a Windows buildbot up!

Thanks for the info. I somehow missed the mention of experimental windows support on the BuildingLibcxx page.

Are there any efforts to support things like Cygwin? Or is clang-cl targeting Win32 and x64 desktops the extent of things now?

Also, many thanks to EricWF for getting a Windows buildbot up!

I recently fixed the libc++ build with mingw, but I would say that Cygwin is pretty unsupported. There are other mingw users: Matteuz, Martel Mallone, Yaron Keron, and others. I don’t know to what extend they use libc++ currently, or what the current support state is like.

Broadly speaking, users seem to me moving away from thick posix emulation layers like cygwin and over to less emulation (mingw) or no emulation (just use MSVCRT).