Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages

OpenDarwin 7.2.1 - man page for mach-o (opendarwin section 5)

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

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

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

       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-
       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  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 05:19 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password