I recently noticed problems with building with clang in msvc mode when using my distro clang. It seems specific to its configuration, I think that it doesn't affect default clang.
One problem is that --rtlib=libgcc is specified in /etc/clang, which causes clang to produce:
```
clang-15: error: unsupported runtime library 'libgcc' for platform 'MSVC'
```
I think it's a clang bug here:
https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/…
It should probably check for -nodefaultlibs in addition to -nostdlib. It's easy to handle on Wine side by using -nostdlib.
The other problem is that clang for some reason doesn't define `_MSV_VER` by default. I found that it's defined only if I pass `-fuse-ld=lld` to the command line. That's weird because it shouldn't affect compilation step, it should matter only for linking and that's when we pass it. I didn't track it down in clang code itself, but if we can't depend on clang providing it by default, we need to make sure to pass `-fms-compatibility-version` ourselves. The exact version doesn't really matter, we mostly need to make sure that it's defined at all so that our #ifdefs work correctly.
--
v2: configure: Use -fuse-ld=lld also for compilation targets.
winegcc: Use -nostdlib instead of -nostartfiles on Clang MSVC targets.
configure: Use -nostdlib instead of -nostartfiles in WINE_TRY_PE_CFLAGS.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1549
--
v5: mfmediaengine: Add a fallback when the set engine format cannot be used to init samplegrabber.
mfmediaengine: Only accept engine formats which are render target compatible.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1046
Overcooked! All You Can Eat only adds new controllers if existing controller has the same serial as it. SDL GUIDs mark the model of controller, but don't differentiate between multiple controllers of the same model. This is especially bad with Steam virtual controllers, which all have the same GUID.
Switch to using SDL_JoystickGetSerial if available, and otherwise combining the GUID with the controller index
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1551
For the `performance.navigation` props, I store them in the timing that's already linked from the window, to prevent adding more code around that just for 2 props, so it keeps it simple.
--
v3: include/mshtml: Add IHTMLXDomainRequest and factory interfaces and classes.
mshtml: Don't check for doc_node from the doc obj when it can't be NULL.
mshtml: Return proper error for invalid selectors in IE8 mode.
mshtml: Treat edit mode as a reload.
mshtml: Implement performance.navigation.type.
mshtml: Implement performance.navigation.redirectCount.
mshtml: Set `reload` load type to Gecko for document reloads.
mshtml: Implement `onload` prop for input elements.
mshtml: Implement location.reload().
mshtml: Implement print events.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1526