| <?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"> |
| |
| <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>[email protected]</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 three flavors: |
| <quote>elf32</quote> (for 32-bit targets), <quote>elf64</quote> |
| (for 64-bit targets and <quote>elfx32</quote> (for x32 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> |