[all-commits] [llvm/llvm-project] 677e8c: [libc++] Avoid re-exporting a few specific symbols...
Louis Dionne via All-commits
all-commits at lists.llvm.org
Tue Oct 1 06:40:07 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 677e8cd6ff51e178bcb4669104763f71a2de106c
https://github.com/llvm/llvm-project/commit/677e8cd6ff51e178bcb4669104763f71a2de106c
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-10-01 (Tue, 01 Oct 2024)
Changed paths:
M libcxx/lib/abi/CHANGELOG.TXT
M libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxxabi/lib/cxxabiv1.exp
M libcxxabi/lib/itanium-base.exp
A libcxxabi/lib/symbols-not-reexported.exp
M libcxxabi/src/CMakeLists.txt
Log Message:
-----------
[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
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list