Techniques for performing dynamic linking
US-2018349156-A1 · Dec 6, 2018 · US
US11726799B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11726799-B2 |
| Application number | US-201916664712-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 25, 2019 |
| Priority date | Jun 3, 2018 |
| Publication date | Aug 15, 2023 |
| Grant date | Aug 15, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Embodiments described herein provide for system and methods to enable an operating environment that supports multi-OS applications. One embodiment provides for a non-transitory machine-readable medium storing instructions that cause a data processing system to perform operations to detect conflicts during a build process for a dynamic library. The operations include loading program code for the dynamic library to build for a first platform, parsing the set of interfaces and data structures exported by the dynamic library to verify consistency of a build contract for the dynamic library, and generating a build error during a build process for the dynamic library upon detecting an inconsistent build contract specifying at least an application binary interface (ABI) and an API for the dynamic library.
Opening claim text (preview).
What is claimed is: 1. A non-transitory machine-readable medium storing instructions which, when executed, cause one or more processors of a data processing system to perform operations to detect conflicts during a build process for a dynamic library, the operations comprising: loading program code for the dynamic library to build for a first platform; parsing a set of interfaces and data structures exported by the dynamic library to verify consistency of a build contract for the dynamic library; and generating a build error during a build process for the dynamic library upon detecting an inconsistent build contract, the build contract specifying an application binary interface (ABI) for building the dynamic library and an application programming interface (API) for building the dynamic library, wherein detecting an inconsistent build contract includes detecting a mismatch between the ABI or API for the dynamic library when built for the first platform and the ABI or API for the dynamic library when built for a second platform. 2. The non-transitory machine-readable medium as in claim 1 , wherein the dynamic library is one of multiple dynamic libraries of an application framework. 3. The non-transitory machine-readable medium as in claim 1 , wherein the first platform is a mobile platform associated with a smartphone device or tablet computer and the second platform is associated with a desktop or laptop computing system. 4. The non-transitory machine-readable medium as in claim 3 , wherein the second platform is configured to host execution of applications associated with the first platform. 5. The non-transitory machine-readable medium as in claim 1 , wherein determining a set of interfaces and data structures exported by the dynamic library for the first platform includes scanning the dynamic library to generate a first set of signatures for the first platform. 6. The non-transitory machine-readable medium as in claim 5 , wherein determining a set of interfaces and data structures exported by the dynamic library for the second platform includes scanning the dynamic library to generate a second set of signatures for second first platform. 7. The non-transitory machine-readable medium as in claim 6 , wherein detecting an inconsistent build contract includes determining that a signature for a symbol exported by the dynamic library for the first platform is a mismatch for the signature for the symbol exported by the dynamic library for the second platform, wherein the signature is generated based in part on a data type associated with the symbol. 8. A data processing system comprising: a memory to store instructions for execution; one or more processors to execute instructions stored in memory, the instructions to cause the one or more processors to: load program code for a dynamic library to build for a first platform; parse a set of interfaces and data structures exported by the dynamic library to verify consistency of a build contract for the dynamic library; and generate a build error during a build process for the dynamic library upon detection of an inconsistent build contract, the build contract to specify at least an application binary interface (ABI) for building the dynamic library and an application programming interface (API) for building the dynamic library, wherein detection of the inconsistent build contract includes detection of a mismatch between the ABI or API for the dynamic library when built for the first platform and the ABI or API for the dynamic library when built for a second platform. 9. The data processing system as in claim 8 , wherein the first platform is a target build platform for the dynamic library during a build process for the dynamic library and the dynamic library is one of multiple dynamic libraries of an application framework. 10. The data processing system as in claim 8 , wherein the first platform is a mobile platform associated with a smartphone device or tablet computer and the second platform is associated with a desktop or laptop computing system. 11. The data processing system as in claim 10 , wherein the second platform is configured to host execution of applications associated with the first platform. 12. The data processing system as in claim 8 , wherein to determine the set of interfaces and data structures exported by the dynamic library for the first platform includes to scan the dynamic library to generate a first set of signatures for the first platform and to determine the set of interfaces and data structures exported by the dynamic library for the second platform includes to scan the dynamic library to generate a second set of signatures for the first platform. 13. The data processing system as in claim 12 , wherein detecting an inconsistent build contract includes to determine that a signature for a symbol exported by the dynamic library for the first platform is a mismatch for the signature for the symbol exported by the dynamic library for the second platform. 14. The data processing system as in claim 13 , the signature for the symbol exported by the dynamic library to be generated based in part on a data type associated with the symbol. 15. A method of detecting conflicts during a build process for a dynamic library, the method comprising: loading program code for the dynamic library to build for a first platform; parsing a set of interfaces and data structures exported by the dynamic library to verify consistency of a build contract for the dynamic library; and generating a build error during a build process for the dynamic library upon detecting an inconsistent build contract, the build contract specifying at least an application binary interface (ABI) for building the dynamic library and an application programming interface (API) for building the dynamic library, wherein detecting an inconsistent build contract includes detecting a mismatch between the ABI or API for the dynamic library when built for the first platform compared to when the dynamic library is built for a second platform. 16. The method as in claim 15 , wherein the first platform is a target build platform for the dynamic library during a build process for the dynamic library and the dynamic library is one of multiple dynamic libraries of an application framework. 17. The method as in claim 15 , wherein determining a set of interfaces and data structures exported by the dynamic library for the first platform includes scanning the dynamic library to generate a first set of signatures for the first platform and determining a set of interfaces and data structures exported by the dynamic library for the second platform includes scanning the dynamic library to generate a second set of signatures for second first platform. 18. The method as in claim 17 , wherein detecting an inconsistent build contract includes determining that a signature for a symbol exported by the dynamic library for the first platform is a mismatch for the signature for the symbol exported by the dynamic library for the second platform, wherein the signature is generated based in part on a data type associated with the symbol. 19. The method as in claim 15 , wherein the first platform is a mobile platform associated with a smartphone device or tablet computer and the second platform is associated with a desktop or laptop computing system. 20. The method as in claim 19 , wherein the second platform is configured to host execution of applications associated with the first platform. 21. The method of claim 1
Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title
Software design · CPC title
Compilation · CPC title
Program documentation · CPC title
Adapting program code to run in a different environment; Porting · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.