YASM\_OBJFMTS(7) Yasm Supported Object Formats YASM\_OBJFMTS(7)

# [NAME](#NAME)

yasm\_objfmts - Yasm Supported Object Formats

# [SYNOPSIS](#SYNOPSIS)

**yasm** **-f objfmt** **...**

# [DESCRIPTION](#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)](/man/os/yasm/yasm.1) command line by use of the **-f objfmt** command line option.

# [BIN](#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](#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](#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](#ELF)

The ELF object format really comes in three flavors: “elf32” (for 32-bit targets), “elf64” (for 64-bit targets and “elfx32” (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.

# [MACHO](#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](#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](#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](#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](#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](#SEE_ALSO)

[**yasm**(1)](/man/os/yasm/yasm.1), [**yasm\_arch**(7)](/man/os/yasm/yasm_arch.7)

# [AUTHOR](#AUTHOR)

**Peter Johnson** &lt;peter@tortall.net&gt;

Author.

# [COPYRIGHT](#COPYRIGHT)

Copyright © 2006 Peter Johnson

February 2007 Yasm

---

Document: yasm_objfmts(7) from yasm 1.3.0-r12 (Chainguard OS)
Source: https://github.com/yasm/yasm
