dexonsmith added inline comments.
================ Comment at: libcxx/include/__config:798-804 #ifndef _LIBCPP_HIDE_FROM_ABI -# define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_INTERNAL_LINKAGE +# ifdef _LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE +# define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_INTERNAL_LINKAGE +# else +# define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_ALWAYS_INLINE +# endif #endif ---------------- This doesn't leave a user-friendly way of opting out of internal linkage if a vendor decides to turn it on by default. I suggest adding a layer of indirection: ``` // Elsewhere. #cmakedefine _LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE_BY_DEFAULT // Here. #ifndef _LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE # ifdef _LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE_BY_DEFAULT # define _LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE 1 # else # define _LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE 0 # endif #endif #ifndef _LIBCPP_HIDE_FROM_ABI # if _LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE # define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_INTERNAL_LINKAGE # else # define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_ALWAYS_INLINE # endif #endif ``` Then users can set the behaviour with `-D_LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE=1` or `-D_LIBCPP_ABI_HIDDEN_USE_INTERNAL_LINKAGE=0`, overriding the vendor default. Repository: rCXX libc++ https://reviews.llvm.org/D50652 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits