[libcxx] r285382 - Add __libcpp_version file and __libcpp_library_version function.

Joerg Sonnenberger via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 31 11:21:31 PDT 2016

On Mon, Oct 31, 2016 at 10:45:05AM -0700, Richard Smith via cfe-commits wrote:
> On Sun, Oct 30, 2016 at 12:32 PM, Joerg Sonnenberger <joerg at bec.de> wrote:
> > On Sun, Oct 30, 2016 at 12:54:28PM -0600, Eric Fiselier wrote:
> > > Richard requested this change. Take a look at
> > > https://reviews.llvm.org/D26044 for more rational.
> >
> > I don't see much rational and in fact, I disagree with some of the
> > mentioned items. E.g. presence of libc++ won't tell you if you can use
> > sized deallocation as that's a ABI library issue.
> The real situation is a lot more subtle than that. Every one of libc++abi,
> libcxxrt, libc++, libsupc++, and libstdc++ provides definitions of global
> operator new and operator delete. It's obviously not part of the Itanium
> C++ ABI, so it's not the responsibility of a pure "ABI library" to provide
> it, but the boundary between the ABI library and the standard library has
> never been formally defined.

That doesn't actually invalidate anything I said. But the make the
argument even more explicit: any detection based on magic files in the
include directories are breaking important properties. A preprocessed
file is now no longer independent of the build system.


More information about the cfe-commits mailing list