[all-commits] [llvm/llvm-project] c24eff: [InstallAPI] Handle zippered frameworks (#88205)
Cyndy Ishida via All-commits
all-commits at lists.llvm.org
Thu Apr 11 20:43:29 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c24efffabbf96c7a138439bb8e219850c4d78887
https://github.com/llvm/llvm-project/commit/c24efffabbf96c7a138439bb8e219850c4d78887
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-04-11 (Thu, 11 Apr 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
M clang/include/clang/InstallAPI/DylibVerifier.h
M clang/lib/InstallAPI/DylibVerifier.cpp
A clang/test/InstallAPI/Inputs/MacOSX13.0.sdk/SDKSettings.json
A clang/test/InstallAPI/diagnostics-zippered.test
M clang/test/InstallAPI/driver-invalid-options.test
M clang/tools/clang-installapi/Options.cpp
M clang/tools/clang-installapi/Options.h
Log Message:
-----------
[InstallAPI] Handle zippered frameworks (#88205)
A zippered framework is a single framework that can be loaded in both
macOS and macatalyst processes. Broadly to InstallAPI, it means the same
interface can represent two separate platforms.
A dylib's symbol table does not distinguish between macOS/macCatalyst.
`InstallAPI` provides the ability for the tbd file to distinct
symbols between them.
The verifier handles this special logic by tracking all unavailable and
obsoleted APIs in this context and checking against those when
determining dylib symbols with no matching declaration.
* If there exists an available decl for either platform, do not warn.
* If there is no available decl, emit a diagnostic and print the source
location for both decls.
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