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

Reply via email to