mstorsjo wrote: > > No. We can drop `_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS` and > > `_LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS` by replacing it with > > `_LIBCPP_EXPORTED_FROM_ABI`. > > But how will that work when building with MinGW or MSVC? Or is that not > supported?
I presume you mean "building with GCC"? (We do build for MinGW targets with Clang all the time.) Building libc++ with MSVC isn't supported - it lacks support for many constructs that libc++ requires. Building libc++ with GCC is tested and supported on Linux. In MinGW environments it should probably work but it's not continuously tested. But iirc @kikairoya did test it quite recently? So if we do require this behaviour from the compiler, we might close the door for using libc++ with GCC on Windows. It may also be possible to just ignore the extra warnings with GCC with some extra flags about ignored attributes though. > I'm a bit conflicted about this. On the one hand, it will make things simpler > for developers only building with Clang. On the other hand, it adds new > entries to the matrix of how dllexport works across different compilers, > which developers may need to understand, and which we need to maintain. Yeah this is probably my main concern as well. https://github.com/llvm/llvm-project/pull/133699 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits