Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release/19.x: [libc++] Avoid re-exporting a few specific symbols from libc++abi (#109054) #110677

Merged
merged 1 commit into from
Oct 15, 2024

Commits on Oct 15, 2024

  1. [libc++] Avoid re-exporting a few specific symbols from libc++abi (ll…

    …vm#109054)
    
    In 6a884a9, 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 6a884a9
    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
    (cherry picked from commit 677e8cd)
    ldionne authored and tru committed Oct 15, 2024
    Configuration menu
    Copy the full SHA
    c36d7fd View commit details
    Browse the repository at this point in the history