The record order is chosen so that bind / link passes through an
object module are minimized . This differs from the previous less
specific ordering in that all symbolic information ( in particular
, all export and public symbols ) must occur at the start of
the object module . This order is recommended but not mandatory
.
Identifier record ( s ) :
Must be the first record .
THEADR
Records processed by Link Pass one :
May occur in any order but must precede the Link pass separator
if it is present .
COMENT class AF providing name of Identifier
Manipulator Dynamic Link Library ( should be near the beginning
of the file )
COMENT identifying object format and extensions
COMENT any , other than link pass separator
comment
LNAMES providing ordered name list
SEGDEF providing ordered list of program
segments
GRPDEF providing ordered list of logical
segments
PUBDEF locating and naming public symbols
COMDEF and EXTDEF records
o
This group of records is indexed together
, so External Index fields in FIXUPP records may refer to any
of the record types listed .
10
.
11
.
COMENT class A2 indicating that pass 1 of
the linker is complete . When this record is encountered , LINK
immediately starts Pass 2 ; no records after this comment are
read in Pass 1 . All the above listed records must come before
this comment record .
For greater linking speed , all LIDATA , LEDATA , FIXUPP and LINNUM
records should come after the A2 comment record , but this is
not required . In LINK , Pass 2 begins again at the start of
the object module , so LIDATA records , etc . , are processed in
Pass 2 no matter where they are placed in the object module
.
Records ignored by link pass one and processed by link pass
two :
12 .
LIDATA or
LEDATA records followed by applicable FIXUPP records .
13
.
FIXUPPs containing THREADs only .
14
.
LINNUM providing line number to program code
or data association .
Terminator
15 .
MODEND
indicating end of module with optional start address .
[Back: Numeric 2 and 4 byte fields]
[Next: Object Record Descriptions]