mirror of https://github.com/yasm/yasm.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
4.9 KiB
168 lines
4.9 KiB
<?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>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 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>
|
|
|