a.out(4)a.out(4)NAMEa.out - Assembler and link editor output
SYNOPSIS
#include <a.out.h>
DESCRIPTIONa.out is the output file format of the assembler as(1) and the link
editor ld(1). Both programs make a.out executable if there were no
errors and no unresolved external references. The debugger uses the
a.out file to provide symbolic information to the user.
The compilers and operating systems use a file format that is similar
to standard System V COFF (common object file format).
The File Header definition is based on the System V header file file‐
hdr.h, with the following changes: The symbol table file pointer,
f_symptr, and the number of symbol table entries, f_nsyms, specify the
file pointer and the size of the Symbolic Header, respectively. All
tables that specify symbolic information have their file pointers and
number of entries in the Symbolic Header.
The Optional Header definition has the same format as the System V
header file aouthdr.h (the ``standard'' (pre-COFF) UNIX system a.out
header), except that the following fields have been added: bss_start,
gprmask, cprmask, gp_value, and bldrev. (The bldrev field contains a
number that reflects the release level of the compiler or assembler
that created the executable.)
The Section Header definition has the same format as the System V
header file scnhdr.h, except the line number fields (s_lnnoptr and
s_nlnno) are generally not used. Line number information is part of the
symbol table.
The relocation information definition is similar to that in Berkeley
4.3BSD UNIX, which has ``local'' relocation types.
The a.out file is organized as follows: File Header Optional Header
Section Headers Section Data—includes text, read-only data, large data,
8- and 4-byte literal pools, small data, small bss (0 size), and large
bss (0 size), as well as the shared library information. Section Relo‐
cation Information—includes information for text, read-only data, large
data, 8- and 4-byte literal pools, and small data. Symbolic Header—
missing if fully stripped. Line Numbers—created only if debugging is
on, and missing if stripped of nonglobals or fully stripped. Procedure
Descriptor Table—missing if fully stripped. Local Symbols—missing if
stripped of nonglobals or fully stripped. Optimization Symbols—created
only if debugging is on, and missing if stripped of nonglobals or fully
stripped. Auxiliary Symbols—created only if debugging is on, and miss‐
ing if stripped of nonglobals or fully stripped. Local Strings—missing
if stripped of nonglobals or fully stripped. External Strings—missing
if fully stripped. Relative File Descriptors—missing if stripped of
nonglobals or fully stripped. File Descriptors—missing if stripped of
nonglobals or fully stripped. External Symbols—missing if fully
stripped.
RELATED INFORMATIONas(1), dbx(1), ld(1), nm(1), strip(1),
Object File/Symbol Table Format Specification
delim off
a.out(4)