[libcxx-commits] [PATCH] D119173: [libc++] Remove _LIBCPP_ABI_UNSTABLE

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Feb 7 11:58:28 PST 2022


ldionne created this revision.
Herald added subscribers: krytarowski, arichardson, mgorny.
ldionne requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

Previously, _LIBCPP_ABI_UNSTABLE would be used interchangeably with
_LIBCPP_ABI_VERSION >= 2. This was confusing and creating unnecessary
complexity.

This patch removes _LIBCPP_ABI_UNSTABLE -- instead, the LIBCXX_ABI_UNSTABLE
CMake option will result in the LIBCXX_ABI_VERSION being set to '2', the
current unstable ABI. As a result, in the code, we only have _LIBCPP_ABI_VERSION
to check in order to query the current ABI version.

As a fly-by, this also defines the ABI namespace during CMake configuration
to reduce complexity in __config. I believe it was previously done this
way because we used to try to use __config_site as seldom as possible.
Now that we always ship a __config_site, it doesn't really matter and
I think being explicit about how the library is configured in the __config_site
is actually a feature.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D119173

Files:
  libcxx/CMakeLists.txt
  libcxx/docs/BuildingLibcxx.rst
  libcxx/include/__config
  libcxx/include/__config_site.in
  libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp
  libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move_ABI.pass.cpp
  libcxx/utils/gdb/libcxx/printers.py
  libcxx/utils/libcxx/test/features.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D119173.406552.patch
Type: text/x-patch
Size: 8471 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220207/4ac2538e/attachment-0001.bin>


More information about the libcxx-commits mailing list