IP Library Granted Patent US 6,931,626
Granted Patent B2
US 6,931,626 · App. 09/764,526 · Granted Aug 16, 2005

Method and apparatus for versioning statically bound files

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,931,626
App. No.
09/764,526
Granted
Aug 16, 2005
Kind
B2
Abstract

A method of storing version and product information of libraries used in the building of an executable file. For each library, a source file containing the version and product information is constructed, compiled and the resulting version object file is stored in the library. When the build of an executable occurs, the version object file for each of the libraries needed for the build is obtained and stored in a temporary area. A list is made of the names of the stored version object files and, when the executable is compiled, the list is submitted to the compiler command so that the version object files of each library are compiled into the executable file. In one alternative, a compound library formed from a selected set of libraries can be compiled into the executable. A utility program can be used to retrieve the stored version and product information in the executable.

Claims (64)

1. A computerized method of saving version and product information of a library in an executable program, comprising:

creating a version source file, the version source file containing a version function whose name comprises at least one of version information and product information of the library;

compiling the version source file to create a version object file;

rebuilding the library to include the version object file; and

building the executable program such that the version function whose name comprises at least one of version information and product information of the library is combined into the executable program.

2. A method of saving as recited in claim 1 , wherein the step of creating the version of the source file further comprises:

constructing a version string, the version string containing version and product identification information pertaining to the library;

combining function symbols with the version string to form a version function;

creating a version source file whose name includes a keyword and the name of the at least one library; and

storing the version function in the version source file.

3. A method of saving as recited in claim 1 , wherein creating the version source file further comprises:

constructing a version string containing version and product identification information pertaining to the library;

combining a build identifier and function symbols with the version string to form a name of the version function;

creating a version source file whose name includes a keyword and the name of the library; and

storing the version function in the version source file.

4. A method of saving as recited in claim 3 , wherein the build identifier is a date on which the build occurs.

5. A method of saving as recited in claim 3 , wherein the build identifier is a number that uniquely identifies the build.

6. A method of saving as recited in claim 3 , wherein the build identifier of a user that performs the build.

7. A method of saving as recited in claim 1 , wherein rebuilding the library further comprises:

removing any version object file from the library; and

remaking the library to include the version object file.

8. A method of saving as recited in claim 1 , wherein building the executable includes:

creating a temporary storage area;

obtaining the version object file from the library, the version object file having a name that includes a keyword and the name of the library in which the version object file resides;

storing the version object file in the temporary storage area; and

compiling into the executable the stored version object file so that the executable contains the version and product information pertaining to the library.

9. A method of saving as recited in claim 1 ,

wherein there is a plurality of libraries; and

wherein creating, compiling and rebuilding are performed for each library of the plurality of libraries.

10. A method of saving as recited in claim 9 ,

further comprising, prior to the building step, selecting from the plurality of libraries a group of libraries needed for the building of the executable, each library in the group having a version object file; and

wherein building the executable includes:

creating a temporary storage area;

obtaining the version object file from each of the selected libraries, each version object file having a name that includes a keyword and the name of the library in which the version object file resides;

storing each of the version object files in the temporary storage area;

creating a list of the names of the stored version object files; and

compiling into the executable each of the stored version object files in the list so that the executable contains any functions needed by the executable from each library in the group and the version and product information of each library of the group.

11. A method of saving as recited in claim 9 ,

further comprising, prior to the building of the executable,

selecting a group of libraries from the plurality of libraries, each library in the group having a version object file; and

building a compound library from the selected group of libraries, the compound library including a version object file for the compound library and the version object files of each library in the group; and

wherein building the executable includes building an executable to include the compound library, such that the version and product information of the compound library and each library in the selected group are combined into the executable program.

12. A method of saving as recited in claim 11 , wherein building a compound library further comprises:

creating a temporary storage area for holding the object files of each library of the selected group and the version object file for the compound library;

extracting all object files, including the version object files, from each library of the selected group;

storing the extracted object files for all libraries of the selected group in the temporary storage area;

creating a version source file for the compound library, the version source file for the compound library containing version and product information pertaining to the compound library;

compiling the version source file to create a version object file for the compound library;

storing the version object file in the temporary storage area;

building the compound library from the object files stored in the temporary storage area;

saving the compound library in a library storage area; and

deleting the temporary storage area.

13. A method of saving as recited in claim 9 ,

further comprising, prior to the building of the executable,

selecting a group of libraries from the plurality of libraries, the group including at least one compound library, and each library in the group having at least one version object file; and

building a multiple compound library from the selected group of libraries, the multiple compound library including a version object file for the multiple compound library and the version object files of each library in the group; and

wherein building the executable includes building an executable to include the multiple compound library, such that the version and product information of the multiple compound library and each library in the selected group are combined into the executable program.

14. A computer implemented method comprising:

creating source code file containing a function whose name comprises version information of a library;

compiling the source code file to create an object file placed within the library; and

building an executable program using at least the function from the library such that the version information is contained in the executable program through the presence of the function.

15. The computer implemented method as defined in claim 14 further comprising creating the source code file containing a void function with an empty body.

16. The computer implemented method as defined in claim 14 further comprising creating the source code file containing a non-void function with text in the body.

17. The computer implemented method as defined in claim 14 further comprising creating the source code file containing the function whose name also comprises product information, and wherein the product information is contained in the executable program through the presence of the function.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →