4cb4bdc85f
the -U command line option, and one via file scanning. Turns out only the second would increment the number of global names, so adding names with -U would cause names found via scanning to fall off the end of the list! This wouldn't cause linker errors because fixups don't use the list, but would cause the generated symbol table in the output to be incorrect.
145 lines
3.2 KiB
Groff
145 lines
3.2 KiB
Groff
.TH LED 6 2017-01-18
|
|
.ad
|
|
.SH NAME
|
|
led \- link editor
|
|
.SH SYNOPSIS
|
|
.B ~em/lib.bin/em_led
|
|
[ option ] ... file ...
|
|
.SH DESCRIPTION
|
|
.I Led
|
|
is a link editor for object modules,
|
|
It combines several
|
|
object programs into one,
|
|
resolves external references,
|
|
and searches archives.
|
|
In the simplest case several object
|
|
.I files
|
|
are given, and
|
|
.I led
|
|
combines them, producing
|
|
an object module which can be either
|
|
fed into a machine specific conversion program
|
|
or become the input for a further
|
|
.I led
|
|
run.
|
|
(In the latter case, if there are no unresolved references,
|
|
the
|
|
.B \-r
|
|
option must be given
|
|
to preserve the relocation information.)\
|
|
The resulting object file of
|
|
.I led
|
|
is named
|
|
.BR a.out .
|
|
.PP
|
|
The argument routines are concatenated in the order specified.
|
|
The entry point of the output is the
|
|
beginning of the first routine.
|
|
.PP
|
|
If an argument is an archive, its table of contents is searched
|
|
for names which are undefined at the point at which the argument
|
|
is encountered in the argument list.
|
|
This procedure is repeated as long as unresolved references are
|
|
satisfied.
|
|
.PP
|
|
.I Led
|
|
understands several options.
|
|
The flags
|
|
.BR \-c ,
|
|
.BR \-r ,
|
|
.BR \-s ,
|
|
and
|
|
.B \-u
|
|
should appear before the file names.
|
|
.TP
|
|
.BI \-a dd:nnnn
|
|
The alignment of section
|
|
.IR dd ,
|
|
where
|
|
.I dd
|
|
is a decimal number,
|
|
is set to
|
|
.IR nnnn .
|
|
If
|
|
.I nnnn
|
|
starts with `0x', it is hexadecimal,
|
|
else if its starts with `0b', it is binary,
|
|
else if it starts with `0', it is octal,
|
|
else it is decimal.
|
|
.TP
|
|
.BI \-b dd:nnnn
|
|
The base address in the machine of section
|
|
.IR dd ,
|
|
is set to
|
|
.IR nnnn .
|
|
The previous remarks about
|
|
.I dd
|
|
and
|
|
.I nnnn
|
|
apply.
|
|
.TP
|
|
.B \-o
|
|
The
|
|
.I name
|
|
argument after
|
|
.B \-o
|
|
is used as the name of the
|
|
.I led
|
|
output file, instead of
|
|
.BR a.out .
|
|
.TP
|
|
.B \-r
|
|
Generate relocation information in the output file
|
|
so that it can be the subject of another
|
|
.I led
|
|
run.
|
|
This flag suppresses the `Undefined:' diagnostic.
|
|
.TP
|
|
.B \-c
|
|
Indicates that relocation information must be produced, but commons must
|
|
be resolved.
|
|
This may be useful for machines that need a last relocation step
|
|
at load time. This flag disables the \fB\-r\fP flag.
|
|
.TP
|
|
.B \-n
|
|
Usually, after linking, a value in the namelist represents an absolute
|
|
address.
|
|
Sometimes, particularly when using the \fB\-c\fR flag, it may be
|
|
useful to have as value the offset with respect to the beginning of the
|
|
corresponding section. The \fB\-n\fR flag enables this.
|
|
.TP
|
|
.B \-s
|
|
`Strip' the output, that is, remove the name table
|
|
and relocation information to save space (but impair the
|
|
usefulness of the debuggers).
|
|
.TP
|
|
.B \-u
|
|
Take the following argument as a symbol and enter
|
|
it as undefined in the name table.
|
|
This is useful for loading wholly from a library,
|
|
since initially the name table is empty
|
|
and an unresolved reference is needed
|
|
to force the loading of the first routine.
|
|
.TP
|
|
.B \-v
|
|
For each member of a library that is linked, give a message on standard
|
|
error telling why
|
|
.I led
|
|
chose to link it (which unresolved reference it resolves).
|
|
This option is useful in resolving 'multiply defined' problems.
|
|
.TP
|
|
.B \-d
|
|
If led was built with debugging diagnostics, then output copious amounts
|
|
of tracing explaining what it is doing.
|
|
.SH FILES
|
|
~em/lib.bin/em_led
|
|
.PD 0
|
|
.IP a.out 24n
|
|
output file
|
|
.PD
|
|
.SH "SEE ALSO"
|
|
ack(1),
|
|
arch(1),
|
|
ack.out.h(5),
|
|
uni_ass(6)
|