Clarification around ABI version

Petr Hosek phosek at chromium.org
Mon Oct 1 20:00:09 PDT 2018


This was raised in D52660. Today, libc++ recognizes at least 3 different
ABI versions: v1, v2 (and above) and unstable, see
https://github.com/llvm-mirror/libcxx/blob/master/include/__config#L66.

There are several questions that were raised in that review that I'd like
to get clarity on:

1. Is there a plan to eventually stabilize v2 and introduce v3 (and above)
as the unstable version or is v2 going to be unstable forever?

2. What are the guarantees for v2? I understand that this ABI can still
change, but I'm interested in testing and stability, shall we expect that
v2 receives the same amount of coverage and that bugs specific to v2 will
get resolved with the same priority as bugs specific to v1?

Since the ABI version is part of the generated __config header, it's a
vendor rather than per-target option which means it affects all targets
that use libc++ headers from the toolchain. This is fine for us since we
always link libc++ statically on host and we don't have any plans to
guarantee a stable C++ ABI on the target. The improvements seem to be worth
using v2 over v1, but I'd like to better understand what the plans and
guarantees are before committing to it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libcxx-dev/attachments/20181001/d64792be/attachment.html>


More information about the libcxx-dev mailing list