|
|
1.1 root 1: .th LD I 8/16/73
2: .sh NAME
3: ld \*- link editor
4: .sh SYNOPSIS
5: .bd ld
6: [
7: .bd \*-sulxrnd
8: ] name ...
9: .sh DESCRIPTION
10: .it Ld
11: combines several
12: object programs into one; resolves external
13: references; and searches libraries.
14: In the simplest case the names of several object
15: programs are given, and
16: .it d
17: combines them, producing
18: an object module which can be either executed or
19: become the input for a further
20: .it ld
21: run.
22: (In the latter case, the
23: .bd \*-r
24: option must be given
25: to preserve the relocation bits.)
26: The output of
27: .it ld
28: is left on
29: .bd a.out.
30: This file is executable
31: only if no errors occurred during the load.
32: .s3
33: The argument routines are concatenated in the order
34: specified. The entry point of the output is the
35: beginning of the first routine.
36: .s3
37: If any argument is a library, it is searched exactly once
38: at the point it is encountered in the argument list.
39: Only those routines defining an unresolved external
40: reference are loaded.
41: If a routine from a library
42: references another routine in the library,
43: the referenced routine must appear after the
44: referencing routine in the library.
45: Thus the order of programs within libraries
46: is important.
47: .s3
48: .it Ld
49: understands several flag arguments which are written
50: preceded by a `\*-'.
51: Except for \fB\*-l\fR,
52: they should appear before the file names.
53: .s3
54: .lp +4 4
55: \fB\*-s\fR `squash' the output, that is, remove the symbol table
56: and relocation bits to save space (but impair the
57: usefulness of the debugger).
58: This information can also be removed by
59: .it strip.
60: .s3
61: .lp +4 4
62: \fB\*-u\fR take the following argument as a symbol and enter
63: it as undefined in the symbol table. This is useful
64: for loading wholly from a library, since initially the symbol
65: table is empty and an unresolved reference is needed
66: to force the loading of the first routine.
67: .s3
68: .lp +4 4
69: \fB\*-l\fR This
70: option is an abbreviation for a library name.
71: \fB\*-l\fR
72: alone stands for `/lib/liba.a', which
73: is the standard system library for assembly language
74: programs.
75: \fB\*-l\fIx\fR
76: stands for `/lib/lib\fIx\fR.a' where \fIx\fR is any character.
77: There are libraries for Fortran (\fIx\fR = \fBf\fR),
78: and C (\fIx\fR = \fBc\fR).
79: A library is searched when its name is encountered,
80: so the placement of a \fB\*-l\fR
81: is significant.
82: .s3
83: .lp +4 4
84: \fB\*-x\fR do not preserve local
85: (non-.globl) symbols in the output symbol table; only enter
86: external symbols.
87: This option saves some space in the output file.
88: .s3
89: .lp +4 4
90: \fB\*-r\fR generate relocation bits in the output file
91: so that it can be the subject of another
92: .it ld
93: run.
94: This flag also prevents final definitions from being
95: given to common symbols.
96: .s3
97: .lp +4 4
98: \fB\*-d\fR force definition of common storage
99: even if the
100: .bd \*-r
101: flag is present (used for reloc (VIII)).
102: .s3
103: .lp +4 4
104: \fB\*-n\fR Arrange that
105: when the output file is executed,
106: the text portion will be read-only and shared
107: among all users executing the file.
108: This involves moving the data areas up the the first
109: possible 4K word boundary following the
110: end of the text.
111: .i0
112: .sh FILES
113: /lib/lib?.a libraries
114: .br
115: a.out output file
116: .sh "SEE ALSO"
117: as(I), ar(I)
118: .sh BUGS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.