llvm-project/libcxxabi/lib/cxxabiv1.exp
Louis Dionne 677e8cd6ff
[libc++] Avoid re-exporting a few specific symbols from libc++abi (#109054)
In 6a884a9aef39, I synchronized the export list of libc++abi to the
export list of libc++. From the linker's perspective, this caused these
symbols to be taken from libc++.dylib instead of libc++abi.dylib.

However, that can be problematic when back-deploying. Indeed, this means
that the linker will encode an undefined reference to be fullfilled by
libc++.dylib, but when backdeploying against an older system, that
symbol might only be available in libc++abi.dylib.

Most of the symbols that started being re-exported after 6a884a9aef39
turn out to be implementation details of libc++abi, so nobody really
depends on them and this back-deployment issue is inconsequential.

However, we ran into issues with a few of these symbols while testing
LLVM 19, which led to this patch. This slipped between the cracks and
that is why the patch is coming so long after the original patch landed.

In the future, a follow-up cleanup would be to stop exporting most of
the _cxxabiv1_foo_type_infoE symbols from both libc++abi and libc++
since they are implementation details that nobody should be relying on.

rdar://131984512
2024-10-01 09:39:44 -04:00

36 lines
1.3 KiB
Plaintext

# Typeinfos for types from libc++abi
__ZTIN10__cxxabiv116__enum_type_infoE
__ZTIN10__cxxabiv116__shim_type_infoE
__ZTIN10__cxxabiv117__array_type_infoE
__ZTIN10__cxxabiv117__pbase_type_infoE
__ZTIN10__cxxabiv119__pointer_type_infoE
__ZTIN10__cxxabiv120__function_type_infoE
__ZTIN10__cxxabiv123__fundamental_type_infoE
__ZTIN10__cxxabiv129__pointer_to_member_type_infoE
# Typeinfo names for types from libc++abi
__ZTSN10__cxxabiv116__enum_type_infoE
__ZTSN10__cxxabiv116__shim_type_infoE
__ZTSN10__cxxabiv117__array_type_infoE
__ZTSN10__cxxabiv117__class_type_infoE
__ZTSN10__cxxabiv117__pbase_type_infoE
__ZTSN10__cxxabiv119__pointer_type_infoE
__ZTSN10__cxxabiv120__function_type_infoE
__ZTSN10__cxxabiv120__si_class_type_infoE
__ZTSN10__cxxabiv121__vmi_class_type_infoE
__ZTSN10__cxxabiv123__fundamental_type_infoE
__ZTSN10__cxxabiv129__pointer_to_member_type_infoE
# Vtables for libc++abi types
__ZTVN10__cxxabiv116__enum_type_infoE
__ZTVN10__cxxabiv116__shim_type_infoE
__ZTVN10__cxxabiv117__array_type_infoE
__ZTVN10__cxxabiv117__class_type_infoE
__ZTVN10__cxxabiv117__pbase_type_infoE
__ZTVN10__cxxabiv119__pointer_type_infoE
__ZTVN10__cxxabiv120__function_type_infoE
__ZTVN10__cxxabiv120__si_class_type_infoE
__ZTVN10__cxxabiv121__vmi_class_type_infoE
__ZTVN10__cxxabiv123__fundamental_type_infoE
__ZTVN10__cxxabiv129__pointer_to_member_type_infoE