f91bc2804d
This commit slightly improves the formatting of the manuals. My OpenBSD machine uses mandoc(1) to format manuals. I check the manuals with `mandoc -T lint` and fix most of the warnings. I also make other changes where mandoc didn't warn me. roff(7) says, "Each sentence should terminate at the end of an input line," but we often forgot this rule. I insert some newlines after sentences that had ended mid-line. roff(7) also says that blank lines "are only permitted within literal contexts." I delete blank lines. This removes some extra blank lines from mandoc's output. If I do want a blank line in the output, I call ".sp 1" to make it in man(7). If I want a blank line in the source, but not the output, I put a plain dot "." so roff ignores it. Hyphens used for command-line options, like \-a, should be escaped by a backslash. I insert a few missing backslashes. mandoc warns if the date in .TH doesn't look like a date. Our manuals had a missing date or the RCS keyword "$Revision$". Git doesn't expand RCS keywords. I put in today's date, 2017-01-18. Some manuals used tab characters in filled mode. That doesn't work. I use .nf to turn off filled mode, or I use .IP in man(7) to make the indentation without a tab character. ack(1) defined a macro .SB but never used it, so I delete the definition. I also remove a call to the missing macro .RF. mandoc warns about empty paragraphs. I deleted them. mandoc also warned about these macro pairs in anm(1): .SM .B text The .SM did nothing because the .B text is on a different line. I changed each pair to .SB for small bold text. I make a few other small changes.
142 lines
3.1 KiB
Groff
142 lines
3.1 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,
|
|
created by one of the ACK assemblers.
|
|
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 addres 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.
|
|
.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)
|