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.
		
	
			
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .TH AELFLOD 1 2017-01-18
 | |
| .SH NAME
 | |
| aelflod \- ACK ELF loader
 | |
| .SH SYNOPSIS
 | |
| .B aelflod
 | |
| [\-a\fInumber\fP] [\-b] [\-h] [\-l] [\-m\fInumber\fP] [\-v]
 | |
| inputfile outputfile
 | |
| .SH DESCRIPTION
 | |
| .I aelflod
 | |
| converts an absolute ack.out file into a simple binary memory
 | |
| dump wrapped up in an ELF executable.
 | |
| It is suitable for producing executables for operating systems
 | |
| such as Linux.
 | |
| .PP
 | |
| .I aelflod
 | |
| accepts the following flags:
 | |
| .TP
 | |
| .BI \-a number
 | |
| Set the ABI in the ELF header to \fInumber\fP.
 | |
| The default value is \fI3\fP for Linux.
 | |
| .TP
 | |
| .B \-b
 | |
| Write a big-endian ELF file.
 | |
| .TP
 | |
| .B \-h
 | |
| Print a help message and exit.
 | |
| .TP
 | |
| .B \-l
 | |
| Write a little-endian ELF file.
 | |
| This is the default.
 | |
| .TP
 | |
| .BI \-m number
 | |
| Set the machine type in the ELF header to \fInumber\fP.
 | |
| The default value is \fI3\fP for Intel 386 (i386).
 | |
| Other values are \fI4\fP for Motorola 68000 (m68k)
 | |
| and \fI20\fP for PowerPC.
 | |
| .TP
 | |
| .B \-v
 | |
| Be verbose.
 | |
| .PP
 | |
| The input file must contain exactly four segments: TEXT, ROM,
 | |
| DATA and BSS, in that order, all occupying contiguous memory.
 | |
| The file must have all references resolved and be linked to a
 | |
| fixed address.
 | |
| The fixed address must be at least 0x54 bytes greater than a
 | |
| page boundary, in order to make room for the ELF header itself.
 | |
| .PP
 | |
| .I aelflod
 | |
| will write out an ELF header followed by each segment, in order,
 | |
| ensuring that enough padding is inserted between each segment
 | |
| to keep the offsets correct.
 | |
| The created executable will contain just one ELF segment mapped rwx.
 | |
| .PP
 | |
| If the input file has symbols, then
 | |
| .I aelflod
 | |
| will convert the symbol table to ELF.
 | |
| The output file has ELF section headers if and only if it has symbols.
 | |
| .SH "SEE ALSO"
 | |
| ack.out(5)
 |