Browse Prior Art Database

Method of Extended Linking Using Identification Files

IP.com Disclosure Number: IPCOM000120093D
Original Publication Date: 1991-Mar-01
Included in the Prior Art Database: 2005-Apr-02
Document File: 6 page(s) / 164K

Publishing Venue

IBM

Related People

Komatsu, H: AUTHOR [+2]

Abstract

Disclosed is a method for linking compiled object files. This method makes it possible to optimize object code. For that purpose, it uses identification files as well as object files. This method divides a linking process into two. The first part modifies object files using identification information stored in identification files. The second part uses existing linker to link modified object files.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 51% of the total text.

Method of Extended Linking Using Identification Files

      Disclosed is a method for linking compiled object files.
This method makes it possible to optimize object code. For that
purpose, it uses identification files as well as object files. This
method divides a linking process into two. The first part modifies
object files using identification information stored in
identification files. The second part uses existing linker to link
modified object files.

      Conventional linkers assume that it is possible to identify
code or data blocks only with their names. But some programming
languages use other information to identify code or data blocks. For
example, C++ distinguishes functions that have same names and
different argument types. Therefore it is quite unnatural to use
conventional linkers for that kind of languages. Furthermore it is
impossible to optimize some kinds of code and data using conventional
linkers. On the other hand, this method allows optimized link.

      This method uses a special file, which is named identification
file, as an input for the linker of this method. As explained
earlier, conventional methods use only names for identification of
code and data blocks. Standard object formats also follow this rule.
Therefore it is impossible to store other information into object
files. One way to solve this problem is to redefine an object format
so that it can store enough information to identify code or data
blocks. But this method takes another way. It uses two files for
input, a standard object file and an identification file. An
identification file has a table that shows names in object files and
additional information to identify code and data blocks. Fig. 1 shows
its logical format. With this identification files, the linker used
in this method can identify code and data blocks. Names in object
files don't have any relation to those in source files. They should
be generated by compilers. They should consist of a fixed characters
(e.g., $) and numbers (e.g., 0033). Their lengths are fixed.

      This method divides linking process into two (Fig. 2). The
second stage is done by an existing linker. So, the first stage is a
pre-processing for it. At first all identification files are read.
Then the linker resolves referring blocks and referred blocks using
the identification information. According to the result, it
re-assigns names of the blocks. Since it knows names in object files,
it can make name translation tables for object files.  For example,
$00001 in an object file should be $00003, etc. After that, it
modifies all object files according to the tables. A standard object
format consists of a name dictionary part and a body part. The
linkers only have to rewrite a name dictionary part. Names generated
by compilers and names generated by linkers are both of fixed length.
Therefore, modification of a name dictionary part is simple. This
completes the pre-processing. Lastly, a...