-
Notifications
You must be signed in to change notification settings - Fork 270
/
yasm_objfmts.xml
168 lines (136 loc) · 4.9 KB
/
yasm_objfmts.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?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>