diff --git a/libcxx/include/__config b/libcxx/include/__config --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -533,7 +533,9 @@ # define _LIBCPP_CRT_FUNC #endif -#if defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +// Default to no DLL visibility attributes on MinGW, unless +// requested by defining _LIBCPP_DLLIMPORT. +#if defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) || (defined(__MINGW32__) && !defined(_LIBCPP_BUILDING_LIBRARY) && !defined(_LIBCPP_DLLIMPORT)) # define _LIBCPP_DLL_VIS # define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS # define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS