[libcxx-commits] [libcxx] [libc++] Introduce implicit and explicit ABI annotations (PR #193045)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Sun May 31 07:40:38 PDT 2026
philnik777 wrote:
> Thank you for landing #200338 ! It should definitely help with both source-location and compile-time issues. Here's what we'll try to do on our end now:
>
> 1. Check that with this change _and abi-tags disabled_ the loaded-source-locations and compile-time are not increased drastically.
>
> 2. After that, check how much problems re-enabling abi-tags would cause.
>
Thanks!
> It also sounds like, having both `_LIBCPP_HIDE_FROM_ABI` and `_LIBCPP_{BEGIN/END}_EXPLICIT_ABI_ANNOTATIONS` means twice the set of macros, which would affect compile-time negatively, so we should consider bulk-removal of `_LIBCPP_HIDE_FROM_ABI` proactively, rather than see them gradually (if ever) evaporate? (plus, I remember @petrhosek 's comment that dedicated commit is convenient to add to ignore-list for local git-blame setups).
Yeah, that was one of the reasons I wanted to go for a more aggressive approach here. I'd really like to make sure this patch is correct though before going through with the removal to avoid massive amounts of churn in case this needs to be reverted. It looks pretty good so far, but I'd like to wait a bit longer until at least google and chromium have the patch tested internally.
> Finally, what about the lost semantics of `_LIBCPP_HIDE_FROM_ABI_VIRTUAL` which was _not_ adding abi-tags previously for reasons different from size increase, but is adding them now?
I don't think there should be any places where it is added. I think all `_LIBCPP_HIDE_ABI_FROM_VIRTUAL`s are in an explicit ABI area, since the classes they appear in are marked `_LIBCPP_EXPORTED_FROM_ABI`.
https://github.com/llvm/llvm-project/pull/193045
More information about the libcxx-commits
mailing list