ack/util/led/led.6
George Koehler f91bc2804d Tune the installed manual pages.
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.
2017-01-18 23:02:30 -05:00

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)