[libcxx-commits] [libcxx] [libc++] Document our ABI guarantees and what ABI flags exist to modify these guarantees (PR #132615)

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Sun Mar 30 02:28:00 PDT 2025


================
@@ -0,0 +1,199 @@
+=======================
+libc++'s ABI Guarantees
+=======================
+
+libc++ provides multiple types ABI guarantees. These include stability of the layout of structs, the linking of TUs
+built against different versions and configurations of the library, and more. This document describes what guarantees
+libc++ provides in these different fields as well as what options exist for users and vendors to affect these
+guarantees.
+
+Note that all of the guarantees listed below come with an asterisk that there may be circumstances where we deem it
+worth it to break that guarantee. These breaks are communicated to vendors by CCing #libcxx-vendors on GitHub. If you
+are a vendor, please ask to be added to that group to be notified about changes that potentially affect you.
+
+
----------------
philnik777 wrote:

Since we're not actually enforcing anything you've written there I'd rather not put that in the documentation for now. Once we actually provide these guarantees (i.e. making sure your configuration is fine) we can update the documentation. I've updated the documentation to say that people should contact us, which IMO is a good idea anyways. We probably know better which flags are a good idea than we can document easily. Assuming people actually do it, that also gives us a better indication of what is actually used in the wild.

https://github.com/llvm/llvm-project/pull/132615


More information about the libcxx-commits mailing list