unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Darwin-7.0.1-ppc)
Page:
Section:
Apropos / Subsearch:
optional field

MACH-O(5)                     File Formats Manual                    MACH-O(5)



NAME
       Mach-O - Mach-O assembler and link editor output

SYNOPSIS
       #include <&lt;mach-o/loader.h>&gt;
       #include <&lt;mach-o/nlist.h>&gt;
       #include <&lt;mach-o/stab.h>&gt;
       #include <&lt;mach-o/reloc.h>&gt;

DESCRIPTION
       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  sug-
       gests,  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-
       tion entries.

       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 carries 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 seg-
       ment and all the segment headers are created  and  the  segments  them-
       selves  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  seg-
       ment  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 sym-
       bol table and the string table.  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).

SEE ALSO
       as(1), ld(1), nm(1), gdb(1), stab(5), strip(1)



Apple Computer, Inc.           October 22, 2001                      MACH-O(5)