| '\" t |
| .\" Title: yasm_objfmts |
| .\" Author: Peter Johnson <[email protected]> |
| .\" Generator: DocBook XSL Stylesheets v1.76.1 <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" |
| .\" ----------------------------------------------------------------- |
| .\" * Define some portability stuff |
| .\" ----------------------------------------------------------------- |
| .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| .\" http://bugs.debian.org/507673 |
| .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html |
| .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| .ie \n(.g .ds Aq \(aq |
| .el .ds Aq ' |
| .\" ----------------------------------------------------------------- |
| .\" * 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\*(Aqs 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\*(Aqs particular binary representation)\&. This object format is not intended for real use, but rather for debugging Yasm\*(Aqs internals\&. |
| .SH "ELF" |
| .PP |
| The ELF object format really comes in three flavors: |
| \(lqelf32\(rq |
| (for 32\-bit targets), |
| \(lqelf64\(rq |
| (for 64\-bit targets and |
| \(lqelfx32\(rq |
| (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\&. |
| .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\*(Aqs 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 |