This manual page is part of Xcode Tools version 3.2.2

To obtain these tools:

If you are running a version of Xcode Tools other than 3.2.2, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



MACH-O(5)                                                                                          MACH-O(5)



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

SYNOPSIS
       #include <mach-o/loader.h>
       #include <mach-o/nlist.h>
       #include <mach-o/stab.h>
       #include <mach-o/reloc.h>

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 suggests, but rather
       Mach-O format.  The link editor will make a.out executable 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 relocation 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 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 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)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.

Did this document help you? Yes It's good, but... Not helpful...