blob: 50706e24c149722a0c9c099a90bb9258e5356332 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!-- $Id: yasm_objfmts.xml,v 1.1.1.1 2012/03/29 17:21:02 uid42307 Exp $ -->
<refentry id="yasm_objfmts">
<refentryinfo>
<title>Yasm Supported Object Formats</title>
<date>February 2007</date>
<productname>Yasm</productname>
<author>
<firstname>Peter</firstname>
<surname>Johnson</surname>
<affiliation>
<address><email>peter@tortall.net</email></address>
</affiliation>
</author>
<copyright>
<year>2006</year>
<holder>Peter Johnson</holder>
</copyright>
</refentryinfo>
<refmeta>
<refentrytitle>yasm_objfmts</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refnamediv>
<refname>yasm_objfmts</refname>
<refpurpose>Yasm Supported Object Formats</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>yasm</command>
<arg choice="plain">
<option>-f <replaceable>objfmt</replaceable></option>
</arg>
<arg choice="plain">
<option><replaceable>...</replaceable></option>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>The standard Yasm distribution includes a number of modules
for different object formats (Yasm's primary output).</para>
<para>The object format is selected on the
<citerefentry>
<refentrytitle>yasm</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>
command line by use of the <option>-f
<replaceable>objfmt</replaceable></option> command line
option.</para>
</refsect1>
<refsect1>
<title>bin</title>
<para>The <quote>bin</quote> 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.</para>
</refsect1>
<refsect1>
<title>coff</title>
<para>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.</para>
</refsect1>
<refsect1>
<title>dbg</title>
<para>The <quote>dbg</quote> object format is not a
<quote>real</quote> 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.</para>
</refsect1>
<refsect1>
<title>elf</title>
<para>The ELF object format really comes in two flavors:
<quote>elf32</quote> (for 32-bit targets) and <quote>elf64</quote>
(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.</para>
</refsect1>
<refsect1>
<title>macho</title>
<para>The Mach-O object format really comes in two flavors:
<quote>macho32</quote> (for 32-bit targets) and
<quote>macho64</quote> (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.</para>
</refsect1>
<refsect1>
<title>rdf</title>
<para>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.</para>
</refsect1>
<refsect1>
<title>win32</title>
<para>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.</para>
</refsect1>
<refsect1>
<title>win64</title>
<para>The Win64 object format produces object files compatible with
Microsoft compilers that target the 64-bit <quote>x64</quote>
Windows platform. This format is very similar to the win32 object
format, but produces 64-bit objects.</para>
</refsect1>
<refsect1>
<title>xdf</title>
<para>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.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para><citerefentry>
<refentrytitle>yasm</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>yasm_arch</refentrytitle>
<manvolnum>7</manvolnum>
</citerefentry></para>
</refsect1>
</refentry>