<div dir="ltr">By default, libc++ builds produce a shared library and a static library. When LIBCXX_ABI_UNSTABLE is enabled, though, that seems like a mistake: there is no stable interface, so dynamically linking against an unstable-ABI libc++ shared library will be problematic.<div><br></div><div>In addition, if LIBCXX_ABI_VERSION is not specified during configuration, the default behavior of the build system with LIBCXX_ABI_UNSTABLE enabled is to produce a libc++.so.1.0 with the unstable ABI, which causes problems if it's found on the library search path for a binary built against the normal-ABI libc++.so.1.0. (And in a stock monorepo build, this means that enabling LIBCXX_ABI_UNSTABLE and then building, say, llvm and libc++, with a host compiler that uses libc++ as the standard library, results in broken LLVM binaries in the build area: they were compiled against the stable libc++ ABI but will pick up an unstable-ABI version of libc++ at runtime.)</div><div><br></div><div>Perhaps we should refuse to build a shared library version of libc++ with the unstable ABI enabled?</div></div>