Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Feb 2014 18:54:46 +0000
From:      David Chisnall <theraven@FreeBSD.org>
To:        Alexander Kabaev <kabaev@gmail.com>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, Stefan Farfeleder <stefanf@FreeBSD.org>, Dimitry Andric <dim@FreeBSD.org>, src-committers@FreeBSD.org
Subject:   Re: svn commit: r261283 - in head: contrib/libc++ contrib/libc++/include contrib/libc++/include/experimental contrib/libc++/include/ext contrib/libc++/src etc/mtree lib/libc++ sys/sys tools/build/mk
Message-ID:  <73ED697C-09CC-49D6-8EBD-0F0E20232729@FreeBSD.org>
In-Reply-To: <20140203133254.243db1cd@kan.dyndns.org>
References:  <201401300744.s0U7iNLt016044@svn.freebsd.org> <20140203123235.GA1540@mole.fafoe.narf.at> <20140203133254.243db1cd@kan.dyndns.org>

index | next in thread | previous in thread | raw e-mail

On 3 Feb 2014, at 18:32, Alexander Kabaev <kabaev@gmail.com> wrote:

> More than likely. It does appear libc++ does not go through same pains
> to maintain ABI stable as libstdc++ does. The lack of all and any
> symbol versions in shared library binary strongly suggests that not
> only they do not bother with ABI stability, they simply can't enforce
> it at the moment even if they wanted to.

libc++ aims to provide a stable ABI, however it does so in a manner that is intended to integrate with the source language, rather than by applying linker hacks post facto (which is very hard to do write with C++).  Every std:: class in libc++ is implemented inside a version namespace inside std, and then imported into std:: in the header.  ABI-breaking classes should be inside a new version namespace.

If you have examples where the ABI was not accidentally changed, then please report them as bugs and we will try to fix them.  If you just have unfounded supposition, then it is not helpful to the discussion.

David



help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?73ED697C-09CC-49D6-8EBD-0F0E20232729>