Method and apparatus for internal versioning of objects using a mapfile
First Claim
1. A method for providing versioning information in a software program, comprising the steps performed by a data processing system, of:
- providing first object code for a first software program;
providing a mapfile, separate from the object code, specifying a version name associated with a version of the first software program, the mapfile further specifying global symbols that form an interface of the version of the first software program; and
linking the first object code, so that an addition is made to the first object code, in accordance with the mapfile, of information identifying the version name of the first software program, to yield a versioned object, the linking step further including the step of adding information to the first object code, in accordance with the mapfile information, the information identifying the global symbols forming the interface of the version.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for providing versioning information for a plurality of software objects. When an object is compiled and linked, at build time, the link-editor creates a version definition section and a version symbol section in the object that specify the global symbols defined in various versions of the object. The object can be a shared object, a relocatable object, or a dynamic executable object. When an application software program is linked with the versioned object, at build time, the linker-editor creates a version dependency section in the resulting dynamic executable object that specifies which version of the object is required for execution of the software application program. At runtime, the runtime-linker determines whether all required versions of the object are present before the program is executed. The invention allows the definition of "weak" versions that do not contain new global symbols. The invention also allows the explicit specification of the version of an object to which the software application program should be linked.
-
Citations
19 Claims
-
1. A method for providing versioning information in a software program, comprising the steps performed by a data processing system, of:
-
providing first object code for a first software program; providing a mapfile, separate from the object code, specifying a version name associated with a version of the first software program, the mapfile further specifying global symbols that form an interface of the version of the first software program; and linking the first object code, so that an addition is made to the first object code, in accordance with the mapfile, of information identifying the version name of the first software program, to yield a versioned object, the linking step further including the step of adding information to the first object code, in accordance with the mapfile information, the information identifying the global symbols forming the interface of the version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for providing versioning information in a software program, comprising:
-
a storage medium holding object code for a first software program; a storage medium holding a mapfile, separate from the object code, specifying a version name associated with a version of the first software program, the mapfile further specifying global symbols that form an interface of the version of the first software program; and a linker configured to provide additional information in the first object code, in accordance with the mapfile, the additional information defining the version name of the version of the first software program, to yield a versioned object, the linker further configured to add information to the first object code, in accordance with the mapfile information, the information identifying the global symbols forming the interface of the version. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer program product, comprising:
-
a computer usable medium having computer readable code embodied therein for causing a determination that a version of an object required by a dynamic executable program is present during execution of the dynamic executable program, the computer program product comprising; computer readable program code devices configured to cause a computer to effect provision of first object code for a first software program; computer readable program code devices configured to cause a computer to effect provision of a mapfile, separate from the object code, specifying a version name associated with a version of the first software program, the mapfile further specifying global symbols that form an interface of the version of the first software program; and computer readable program code devices configured to cause a computer to effect linking the first object code so that an addition is made to the first object code, in accordance with the mapfile, of information identifying the version name of the version of the first software program, to yield a versioned object, and further configured to add information to the first object code, in accordance with the mapfile information, the information identifying the global symbols forming the interface of the version. - View Dependent Claims (18, 19)
-
Specification