a.out - Assembler and link editor output
#include <a.out.h>
a.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 filehdr.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'' (preCOFF)
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
Relocation 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 missing 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.
as(1), dbx(1), ld(1), nm(1), strip(1),
Object File/Symbol Table Format Specification
delim off
a.out(4)
[ Back ] |