Efficient linking and loading for late binding and platform retargeting
First Claim
1. In a computer with an operating system, a method of producing an executable image from an object file without shared library support from said operating system, wherein the executable image requires a shared library file in order to resolve at least one of the symbols called for in said object file, said method comprising:
- permitting said operating system to link said object file, whereby at least one symbol remains unresolved after linking of the object file;
performing a post-link time link process comprising;
(a) constructing an import table;
(b) copying from a record in a definition file information pointing to the definition of said at least one symbol in said shared library file and writing at least some of said information as an entry in said import table;
(c) altering a relocation entry in said object file naming said at least one symbol so that said relocation entry both;
(i) names said at least one symbol and (ii) points to said entry in said import table; and
(d) putting said import table into said executable image, whereby said at least one symbol is resolved through said relocation entry to a definition of said symbol exported by said shared library file.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of producing an executable image from an object file without shared library support from the operating system, wherein the executable image requires a shared library file in order to resolve at least one of the symbols called for in the object file. A method of optimizing the loading of a previously linked file into working memory in a computer for executing in a single address space of the working memory, the file containing an instruction to make an indirect jump to a location in a shared library through an import section of the file. A method for optimizing the loading of a previously linked file into working memory in a computer for executing in a single address space of the working memory, the file containing plural sections with number-filled padding between the end of each section and a succeeding page boundary. A method of optimizing the loading of a previously linked file into working memory in a computer for executing in a memory sharable with other executables. This method includes selecting a portion of code in the previously linked file, removing the portion of code from the previously linked file, and constructing a dynamically linked library file containing the portion of the code, the dynamically linked library file being available to plural files including the previously linked-file. A method of converting an image which has been previously linked for executing in an unshared memory into an image optimized for use with virtual memory.
-
Citations
48 Claims
-
1. In a computer with an operating system, a method of producing an executable image from an object file without shared library support from said operating system, wherein the executable image requires a shared library file in order to resolve at least one of the symbols called for in said object file, said method comprising:
-
permitting said operating system to link said object file, whereby at least one symbol remains unresolved after linking of the object file;
performing a post-link time link process comprising;
(a) constructing an import table;
(b) copying from a record in a definition file information pointing to the definition of said at least one symbol in said shared library file and writing at least some of said information as an entry in said import table;
(c) altering a relocation entry in said object file naming said at least one symbol so that said relocation entry both;
(i) names said at least one symbol and (ii) points to said entry in said import table; and
(d) putting said import table into said executable image, whereby said at least one symbol is resolved through said relocation entry to a definition of said symbol exported by said shared library file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9-12. -12. (canceled)
-
13. A computer, comprising:
-
an object file requiring a shared library in order to resolve at least one of the symbols called for in said object file, said object file having been compiled and linked in an operating system without provision for a shared library whereby at least one symbol is unresolved in a symbol entry of said object file, said object file having a relocation entry pointing to said symbol;
a shared library file containing said definition of said at least one symbol;
a definition file containing a record having information pointing to the definition of said at least one symbol in said shared library;
a post-link time linker containing computer executable instructions, said computer carrying out said instructions by performing the steps of;
(a) constructing an import table;
(b) copying from said record in said definition file said information and writing at least some of said information as an entry in said import table;
(c) altering said relocation entry so that said relocation entry both;
(i) names said at least one symbol and (ii) points to said entry in said import table; and
(d) putting said import table into an image file, whereby said at least one symbol is resolved through said relocation entry to a definition of said at least one symbol exported by said shared library file. - View Dependent Claims (14, 21, 22, 23, 24, 25, 26, 27)
-
-
15-20. -20. (canceled)
-
28-45. -45. (canceled)
-
46. A method of converting an image which has been previously linked for executing in an unshared memory into an image optimized for use with virtual memory, comprising:
-
selecting a portion of code in said previously linked file;
removing said portion of code from said previously linked file; and
constructing a dynamically linked library file containing said portion of said code, said dynamically linked library file being available to plural files including said previously linked file. - View Dependent Claims (47, 48)
-
Specification