<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/InstallAPI/DylibVerifier.cpp, branch users/joker-eph-python-bindings-maintainers</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[clang] Remove redundant control flow statements (NFC) (#140359)</title>
<updated>2025-05-17T19:59:47+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-17T19:59:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f9f69dac2a63afd9b317033bfe055a174bdd180f'/>
<id>f9f69dac2a63afd9b317033bfe055a174bdd180f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang-installapi] Store dylib attributes in the order they are passed on the command line. (#139087)</title>
<updated>2025-05-09T04:15:10+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2025-05-09T04:15:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=823b1a582258f1417c648b3117ba08edc4855c68'/>
<id>823b1a582258f1417c648b3117ba08edc4855c68</id>
<content type='text'>
With the introduction of tbd-v5 holding rpaths, the order in which those
attributes are passed to `clang-installapi` must be represented in tbd
files. Previously, all dylib attributes were stored in a
non-deterministic `StringMap`. Instead, hold them in a custom collection
with an underlying vector to continue supporting searching by attribute.
This makes the order of all diagnostics related to load command
comparisons stable.

This approach resolves errors when building with reverse-iteration.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With the introduction of tbd-v5 holding rpaths, the order in which those
attributes are passed to `clang-installapi` must be represented in tbd
files. Previously, all dylib attributes were stored in a
non-deterministic `StringMap`. Instead, hold them in a custom collection
with an underlying vector to continue supporting searching by attribute.
This makes the order of all diagnostics related to load command
comparisons stable.

This approach resolves errors when building with reverse-iteration.</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Don't look for linker directive symbols in reexports (#98171)</title>
<updated>2024-07-10T14:50:07+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-07-10T14:50:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a4a8d36b8591801696aad30fa116669c7bb2348c'/>
<id>a4a8d36b8591801696aad30fa116669c7bb2348c</id>
<content type='text'>
`$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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`$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</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Add support for aliased exports (#88750)</title>
<updated>2024-04-18T14:39:21+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-04-18T14:39:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4c18681a2d5a5738233fce9d7746b968d4b4ab76'/>
<id>4c18681a2d5a5738233fce9d7746b968d4b4ab76</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Handle zippered frameworks (#88205)</title>
<updated>2024-04-12T03:01:55+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-04-12T03:01:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c24efffabbf96c7a138439bb8e219850c4d78887'/>
<id>c24efffabbf96c7a138439bb8e219850c4d78887</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Tie lifetime of FE objects to DylibVerifier (#88189)</title>
<updated>2024-04-09T22:13:55+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-04-09T22:13:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f04452de1986e4e01296a80231efb212d6c84c42'/>
<id>f04452de1986e4e01296a80231efb212d6c84c42</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Capture &amp; compare load commands that may differ per arch slice (#87674)</title>
<updated>2024-04-05T20:58:24+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-04-05T20:58:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=27b2d7d4bb790ec1e7430bf18b1bc2f6e0800d0d'/>
<id>27b2d7d4bb790ec1e7430bf18b1bc2f6e0800d0d</id>
<content type='text'>
* 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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Add support for parsing dSYMs (#86852)</title>
<updated>2024-03-29T15:29:22+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-03-29T15:29:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a4de589d117a4fd52554da3c61ae6eb26c90a0c8'/>
<id>a4de589d117a4fd52554da3c61ae6eb26c90a0c8</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Add missing license header to file, NFC</title>
<updated>2024-03-26T15:56:16+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-03-26T15:55:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6d579cd1d91cdde5adfa455bda7903e737e9d5cf'/>
<id>6d579cd1d91cdde5adfa455bda7903e737e9d5cf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[InstallAPI] Report exports discovered in binary but not in interface (#86025)</title>
<updated>2024-03-21T22:03:34+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-03-21T22:03:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e470ca89ba77b2f200ff3a8ad65c74028f42c5f7'/>
<id>e470ca89ba77b2f200ff3a8ad65c74028f42c5f7</id>
<content type='text'>
This patch completes the classes of errors installapi can detect.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch completes the classes of errors installapi can detect.</pre>
</div>
</content>
</entry>
</feed>
