[libcxx-commits] [PATCH] D142842: [libc++] Remove _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION

David Tenty via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Feb 21 09:18:14 PST 2023


daltenty requested changes to this revision.
daltenty added a comment.
This revision now requires changes to proceed.

Unfortunately, some of this doesn't really work on AIX linkage model. Specifically, the linker doesn't follow the resolution semantic of trying to resolve weak references locally first that you see on other platforms (we have an option `-bweaklocal` to enable that), so we prefer the strong def we see in the library. This means this assumption doesn't hold on AIX:

> - User code will always contain a weak definition of the bad_function_call vtable since we did not provide a key-function-declaration in the headers. Hence, no user code should contain hard references to bad_function_call's vtable, destructor or else.

So removing the symbol from the dylib will break the ABI for us.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142842/new/

https://reviews.llvm.org/D142842



More information about the libcxx-commits mailing list