Pristine Ack-5.5
[Ack-5.5.git] / util / led / led.6
1 .TH LED 6 "$Revision: 1.7 $"
2 .ad
3 .SH NAME
4 led \- link editor
5 .SH SYNOPSIS
6 .B ~em/lib.bin/em_led
7 [ option ] ... file ...
8 .SH DESCRIPTION
9 .I Led
10 is a link editor for object modules,
11 created by one of the ACK assemblers.
12 It combines several
13 object programs into one,
14 resolves external references,
15 and searches archives.
16 In the simplest case several object
17 .I files
18 are given, and
19 .I led
20 combines them, producing
21 an object module which can be either
22 fed into a machine specific conversion program
23 or become the input for a further
24 .I led
25 run.
26 (In the latter case, if there are no unresolved references,
27 the
28 .B \-r
29 option must be given
30 to preserve the relocation information.)\ 
31 The resulting object file of
32 .I led
33 is named
34 .BR a.out .
35 .PP
36 The argument routines are concatenated in the order specified.
37 The entry point of the output is the
38 beginning of the first routine.
39 .PP
40 If an argument is an archive, its table of contents is searched
41 for names which are undefined at the point at which the argument
42 is encountered in the argument list.
43 This procedure is repeated as long as unresolved references are
44 satisfied.
45 .PP
46 .I Led
47 understands several options.
48 The flags
49 .BR \-c ,
50 .BR \-r ,
51 .BR \-s ,
52 and
53 .B \-u
54 should appear before the file names.
55 .TP
56 .BI \-a dd:nnnn
57 The alignment of section
58 .IR dd ,
59 where
60 .I dd
61 is a decimal number,
62 is set to
63 .IR nnnn .
64 If
65 .I nnnn
66 starts with `0x', it is hexadecimal,
67 else if its starts with `0b', it is binary,
68 else if it starts with `0', it is octal,
69 else it is decimal.
70 .TP
71 .BI \-b dd:nnnn
72 The base addres in the machine of section
73 .IR dd ,
74 is set to
75 .IR nnnn .
76 The previous remarks about
77 .I dd
78 and
79 .I nnnn
80 apply.
81 .TP 
82 .B \-o
83 The
84 .I name
85 argument after
86 .B \-o
87 is used as the name of the
88 .I led
89 output file, instead of
90 .BR a.out .
91 .TP 
92 .B  \-r
93 Generate relocation information in the output file
94 so that it can be the subject of another
95 .I led
96 run.
97 This flag suppresses the `Undefined:' diagnostic.
98 .TP
99 .B \-c
100 Indicates that relocation information must be produced, but commons must
101 be resolved.
102 This may be useful for machines that need a last relocation step
103 at load time. This flag disables the \fB\-r\fP flag.
104 .TP
105 .B \-n
106 Usually, after linking, a value in the namelist represents an absolute
107 address. Sometimes, particularly when using the \fB\-c\fR flag, it may be
108 useful to have as value the offset with respect to the beginning of the
109 corresponding section. The \fB\-n\fR flag enables this.
110 .TP
111 .B  \-s
112 `Strip' the output, that is, remove the name table
113 and relocation information to save space (but impair the
114 usefulness of the debuggers).
115 .TP 
116 .B  \-u
117 Take the following argument as a symbol and enter
118 it as undefined in the name table.
119 This is useful for loading wholly from a library,
120 since initially the name table is empty
121 and an unresolved reference is needed
122 to force the loading of the first routine.
123 .TP
124 .B  \-v
125 For each member of a library that is linked, give a message on standard
126 error telling why
127 .I led
128 chose to link it (which unresolved reference it resolves).
129 This option is useful in resolving 'multiply defined' problems.
130 .SH FILES
131 ~em/lib.bin/em_led
132 a.out   output file
133 .SH "SEE ALSO"
134 ack(1)
135 arch(1)
136 ack.out.h(5)
137 uni_ass(6)