|Linux & Unix Commands - Search Man Pages
Mach-O - Mach-O assembler and link editor output
The object files produced by the assembler and link editor are in Mach-O (Mach object)
file format. The file name a.out is the default output file name of the assembler as(1)
and the link editor ld(1) The format of the object file however is not 4.3BSD a.out format
as the name suggests, but rather Mach-O format. The link editor will make a.out exe-
cutable if the resulting format is an executable type and there were no errors and no
unresolved external references.
The complete description of a Mach-O file is given in a number of include files. The file
<mach-o/loader.h> describes the headers, <mach-o/nlist.h> describes the symbol table
entries with <mach-o/stab.h> supplementing it, and <mach-o/reloc.h> describes the reloca-
The actual instructions and data used by the program represented by a Mach-O file are the
contents of its sections. Sections are grouped together in segments. Each section car-
ries with it, in its header, the information as to which segment it belongs in. When a
file type that is executable is created the sections are placed in their proper segment
and all the segment headers are created and the segments themselves are padded out to the
segment alignment (typically the target pagesize). For the object file type produced by
an assembler (or by the link editor for further linking) all the sections are placed in
one segment for compactness.
When the kernel executes a Mach-O file it maps in the object file's segments, the dynamic
link editor (if used) and creates the thread(s) for execution. Any part of the object
file that is not part of a segment is not mapped in for execution. For executable using
the dynamic link editor the headers and other link edit information is needed to execute
the file. These parts include the relocation entries, the symbol table and the string ta-
ble. These parts are mapped in with the use of the link editor's -seglinkedit option
which creates a segment that contains these parts. These parts can be stripped down with
the -S option to ld(1) or various options to strip(1).
as(1), ld(1), nm(1), gdb(1), stab(5), strip(1)
Apple Computer, Inc. October 22, 2001 MACH-O(5)
All times are GMT -4. The time now is 09:09 AM.