<div dir="ltr">Hi All,<div><br></div><div>Libc++ currently has an ABI incompatibility when built as a static library with no RTTI. Specifically some std::shared_ptr internals have different vtable layouts in this configuration.</div><div><br></div><div>I would like to fix this by making the vtable definition consistent across all configurations, but that requires breaking the ABI of a very rare configuration of libc++. I suspect all users of this configuration can take the ABI break immediately, but I would like to confirm this before proceeding.</div><div><br></div><div>The configuration in question is a static libc++ library built with -DLIBCXX_ENABLE_RTTI=OFF and -D_LIBCPP_BUILD_STATIC,</div><div><br></div><div>Is anybody using this configuration and can't take an ABI break?</div><div><br></div><div>Note that `_LIBCPP_BUILD_STATIC` must be manually defined by the user at both when building and using libc++, and it is not supported by the CMake build system. This should mean that almost nobody is defining it.</div><div><br></div><div>The proposed changes can be found here: <a href="https://reviews.llvm.org/D32838">https://reviews.llvm.org/D32838</a></div><div><br></div><div>/Eric</div><div><br></div><div><br></div><div><br></div></div>