ninja cxx now succeeds for me locally.
This fixes link errors when producing a DLL for libc++ with clang-cl.
When building a DLL, most of <filesystem> is annotated as dllexport.
When a class is marked dllexport, all of its inline functions are
emitted into the object file. Those inline functions reference
out-of-line functions that are not available because the filesystem cpp
files are not built on Windows because they haven't been ported yet.
I'm not entirely fond of hardcoding the condition like this - would it be better to emit something to __config (via __config_site) about whether filesystem is disabled?
I guess hardcoding msvc could be argued for, because the dllexport behaviour is kinda msvc specific (this problem doesn't manifest in mingw builds, that build successfully in dll mode).
Another reason for not hardcoding it for msvc, is that while filesystem is disabled for now, it hopefully won't be for long, and it'd be nice not to have an extra condition to keep track of to update in sync.