Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

yasm_objfmts(7) [debian man page]

YASM_OBJFMTS(7) 					   Yasm Supported Object Formats					   YASM_OBJFMTS(7)

NAME
yasm_objfmts - Yasm Supported Object Formats SYNOPSIS
yasm -f objfmt ... DESCRIPTION
The standard Yasm distribution includes a number of modules for different object formats (Yasm's primary output). The object format is selected on the yasm(1) command line by use of the -f objfmt command line option. BIN
The "bin" object format produces a flat-format, non-relocatable binary file. It is appropriate for producing DOS .COM executables or things like boot blocks. It supports only 3 sections and those sections are written in a predefined order to the output file. COFF
The COFF object format is an older relocatable object format used on older Unix and compatible systems, and also (more recently) on the DJGPP development system for DOS. DBG
The "dbg" object format is not a "real" object format; the output file it creates simply describes the sequence of calls made to it by Yasm and the final object and symbol table information in a human-readable text format (that in a normal object format would get processed into that object format's particular binary representation). This object format is not intended for real use, but rather for debugging Yasm's internals. ELF
The ELF object format really comes in two flavors: "elf32" (for 32-bit targets) and "elf64" (for 64-bit targets). ELF is a standard object format in common use on modern Unix and compatible systems (e.g. Linux, FreeBSD). ELF has complex support for relocatable and shared objects. MACHO
The Mach-O object format really comes in two flavors: "macho32" (for 32-bit targets) and "macho64" (for 64-bit targets). Mach-O is used as the object format on MacOS X. As Yasm currently only supports x86 and AMD64 instruction sets, it can only generate Mach-O objects for Intel-based Macs. RDF
The RDOFF2 object format is a simple multi-section format originally designed for NASM. It supports segment references but not WRT references. It was designed primarily for simplicity and has minimalistic headers for ease of loading and linking. A complete toolchain (linker, librarian, and loader) is distributed with NASM. WIN32 The Win32 object format produces object files compatible with Microsoft compilers (such as Visual C++) that target the 32-bit x86 Windows platform. The object format itself is an extended version of COFF. WIN64 The Win64 object format produces object files compatible with Microsoft compilers that target the 64-bit "x64" Windows platform. This format is very similar to the win32 object format, but produces 64-bit objects. XDF
The XDF object format is essentially a simplified version of COFF. It's a multi-section relocatable format that supports 64-bit physical and virtual addresses. SEE ALSO
yasm(1), yasm_arch(7) AUTHOR
Peter Johnson <peter@tortall.net> Author. COPYRIGHT
Copyright (C) 2006 Peter Johnson Yasm February 2007 YASM_OBJFMTS(7)

Check Out this Related Man Page

MACH-O(5)							File Formats Manual							 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)
Man Page