blob: 5f642735440e940c49982a8eb6de743cfeb24622 [file] [log] [blame]
'\" t
.\" Title: yasm_objfmts
.\" Author: Peter Johnson <peter@tortall.net>
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\" Date: February 2007
.\" Manual: Yasm Supported Object Formats
.\" Source: Yasm
.\" Language: English
.\"
.TH "YASM_OBJFMTS" "7" "February 2007" "Yasm" "Yasm Supported Object Formats"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
yasm_objfmts \- Yasm Supported Object Formats
.SH "SYNOPSIS"
.HP \w'\fByasm\fR\ 'u
\fByasm\fR \fB\-f\ \fR\fB\fIobjfmt\fR\fR \fB\fI\&.\&.\&.\fR\fR
.SH "DESCRIPTION"
.PP
The standard Yasm distribution includes a number of modules for different object formats (Yasm\'s primary output)\&.
.PP
The object format is selected on the
\fByasm\fR(1)
command line by use of the
\fB\-f \fR\fB\fIobjfmt\fR\fR
command line option\&.
.SH "BIN"
.PP
The
\(lqbin\(rq
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\&.
.SH "COFF"
.PP
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\&.
.SH "DBG"
.PP
The
\(lqdbg\(rq
object format is not a
\(lqreal\(rq
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\&.
.SH "ELF"
.PP
The ELF object format really comes in two flavors:
\(lqelf32\(rq
(for 32\-bit targets) and
\(lqelf64\(rq
(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\&.
.SH "MACHO"
.PP
The Mach\-O object format really comes in two flavors:
\(lqmacho32\(rq
(for 32\-bit targets) and
\(lqmacho64\(rq
(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\&.
.SH "RDF"
.PP
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\&.
.SH "WIN32"
.PP
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\&.
.SH "WIN64"
.PP
The Win64 object format produces object files compatible with Microsoft compilers that target the 64\-bit
\(lqx64\(rq
Windows platform\&. This format is very similar to the win32 object format, but produces 64\-bit objects\&.
.SH "XDF"
.PP
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\&.
.SH "SEE ALSO"
.PP
\fByasm\fR(1),
\fByasm_arch\fR(7)
.SH "AUTHOR"
.PP
\fBPeter Johnson\fR <\&peter@tortall\&.net\&>
.RS 4
Author.
.RE
.SH "COPYRIGHT"
.br
Copyright \(co 2006 Peter Johnson
.br