#
a4a8d36b |
| 10-Jul-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Don't look for linker directive symbols in reexports (#98171)
`$ld$previous` symbols need to be exported for them to be seen by
clients. TAPI cannot omit them in tbd files, so account
[InstallAPI] Don't look for linker directive symbols in reexports (#98171)
`$ld$previous` symbols need to be exported for them to be seen by
clients. TAPI cannot omit them in tbd files, so account for this in
installapi verification when handling reexport verification.
Reviewed internally by Zixu Wang
resolves: rdar://131317591
show more ...
|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5 |
|
#
4c18681a |
| 18-Apr-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Add support for aliased exports (#88750)
Apple's ld supports alias_lists, described as
```
-alias_list filename
The specified filename contains a list of aliases. T
[InstallAPI] Add support for aliased exports (#88750)
Apple's ld supports alias_lists, described as
```
-alias_list filename
The specified filename contains a list of aliases. The symbol name and its alias are on one
line, separated by whitespace. Lines starting with # are ignored.
```
To handle this for installapi-produced TBD files, pass along the same
input and account for it in verification.
show more ...
|
Revision tags: llvmorg-18.1.4 |
|
#
c24efffa |
| 12-Apr-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[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
inte
[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.
show more ...
|
#
f04452de |
| 09-Apr-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Tie lifetime of FE objects to DylibVerifier (#88189)
A few verification checks need to happen until all AST's have been
traversed, specifically for zippered framework checking. To keep
[InstallAPI] Tie lifetime of FE objects to DylibVerifier (#88189)
A few verification checks need to happen until all AST's have been
traversed, specifically for zippered framework checking. To keep source
location until that time valid, hold onto to references of
FrontendRecords + SourceManager.
show more ...
|
#
27b2d7d4 |
| 05-Apr-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Capture & compare load commands that may differ per arch slice (#87674)
* Capture reexported libraries, allowable clients, rpaths, shared cache
eligibility.
* Add support for select X
[InstallAPI] Capture & compare load commands that may differ per arch slice (#87674)
* Capture reexported libraries, allowable clients, rpaths, shared cache
eligibility.
* Add support for select Xarch options.
* Add diagnostics related to capturing these options.
* Add support for verifying these attributes against what is encoded in
the dylib.
show more ...
|
Revision tags: llvmorg-18.1.3 |
|
#
a4de589d |
| 29-Mar-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Add support for parsing dSYMs (#86852)
InstallAPI does not directly look at object files in the dylib for
verification. To help diagnose violations where a declaration is
undiscovered
[InstallAPI] Add support for parsing dSYMs (#86852)
InstallAPI does not directly look at object files in the dylib for
verification. To help diagnose violations where a declaration is
undiscovered in headers, parse the dSYM and look up the source location
for symbols. Emitting out the source location with a diagnostic is
enough for some IDE's (e.g. Xcode) to have them map back to editable
source files.
show more ...
|
#
6d579cd1 |
| 26-Mar-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Add missing license header to file, NFC
|
#
e470ca89 |
| 21-Mar-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Report exports discovered in binary but not in interface (#86025)
This patch completes the classes of errors installapi can detect.
|
#
9f168591 |
| 20-Mar-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Simplify & improve symbol printing for diagnostics (#85894)
* Defer mangling of symbols until an error is ready to report
* Pass around fewer parameters when reporting
|
#
936519f2 |
| 20-Mar-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Verify that declarations in headers map to exports found in dylib (#85348)
* This completes support for verifying every declaration found in a
header is discovered in the dylib. Diagno
[InstallAPI] Verify that declarations in headers map to exports found in dylib (#85348)
* This completes support for verifying every declaration found in a
header is discovered in the dylib. Diagnostics are reported for each
class for differences that are representable in TBD files.
* This patch also now captures unavailable attributes that depend on
target triples. This is needed for proper tbd file generation.
show more ...
|
Revision tags: llvmorg-18.1.2 |
|
#
f2794cce |
| 16-Mar-2024 |
Cyndy Ishida <cyndy_ishida@apple.com> |
[InstallAPI] Introduce Basic Verifier (#85106)
This adds basic support for calling the verifier on global declarations
that are expected to represent symbol exports. The driver now
exclusively use
[InstallAPI] Introduce Basic Verifier (#85106)
This adds basic support for calling the verifier on global declarations
that are expected to represent symbol exports. The driver now
exclusively uses this for knowing what symbols make up a TBD file.
Future patches will check against the dylib's symbol table.
show more ...
|