Preventing framework conflicts for multi-OS applications

US11726799B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11726799-B2
Application numberUS-201916664712-A
CountryUS
Kind codeB2
Filing dateOct 25, 2019
Priority dateJun 3, 2018
Publication dateAug 15, 2023
Grant dateAug 15, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11726799B2 cover?
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…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/44521. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 15 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).