Merge branch 'vendor/TNFTP'
[dragonfly.git] / contrib / binutils-2.22 / binutils / doc / objcopy.1
1 .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
65 .    \" fudge factors for nroff and troff
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 .    \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 .    \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 .    \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "OBJCOPY 1"
127 .TH OBJCOPY 1 "2011-11-21" "binutils-2.21.90" "GNU Development Tools"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 objcopy \- copy and translate object files
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
137         [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
138         [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
139         [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR]
140         [\fB\-S\fR|\fB\-\-strip\-all\fR]
141         [\fB\-g\fR|\fB\-\-strip\-debug\fR]
142         [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
143         [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
144         [\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR]
145         [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR]
146         [\fB\-\-localize\-hidden\fR]
147         [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR]
148         [\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR]
149         [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR]
150         [\fB\-w\fR|\fB\-\-wildcard\fR]
151         [\fB\-x\fR|\fB\-\-discard\-all\fR]
152         [\fB\-X\fR|\fB\-\-discard\-locals\fR]
153         [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR]
154         [\fB\-i\fR [\fIbreadth\fR]|\fB\-\-interleave\fR[=\fIbreadth\fR]]
155         [\fB\-\-interleave\-width=\fR\fIwidth\fR]
156         [\fB\-j\fR \fIsectionname\fR|\fB\-\-only\-section=\fR\fIsectionname\fR]
157         [\fB\-R\fR \fIsectionname\fR|\fB\-\-remove\-section=\fR\fIsectionname\fR]
158         [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
159         [\fB\-\-debugging\fR]
160         [\fB\-\-gap\-fill=\fR\fIval\fR]
161         [\fB\-\-pad\-to=\fR\fIaddress\fR]
162         [\fB\-\-set\-start=\fR\fIval\fR]
163         [\fB\-\-adjust\-start=\fR\fIincr\fR]
164         [\fB\-\-change\-addresses=\fR\fIincr\fR]
165         [\fB\-\-change\-section\-address\fR \fIsection\fR{=,+,\-}\fIval\fR]
166         [\fB\-\-change\-section\-lma\fR \fIsection\fR{=,+,\-}\fIval\fR]
167         [\fB\-\-change\-section\-vma\fR \fIsection\fR{=,+,\-}\fIval\fR]
168         [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR]
169         [\fB\-\-set\-section\-flags\fR \fIsection\fR=\fIflags\fR]
170         [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
171         [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]]
172         [\fB\-\-long\-section\-names\fR {enable,disable,keep}]
173         [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR]
174         [\fB\-\-reverse\-bytes=\fR\fInum\fR]
175         [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR]
176         [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR]
177         [\fB\-\-redefine\-syms=\fR\fIfilename\fR]
178         [\fB\-\-weaken\fR]
179         [\fB\-\-keep\-symbols=\fR\fIfilename\fR]
180         [\fB\-\-strip\-symbols=\fR\fIfilename\fR]
181         [\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR]
182         [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR]
183         [\fB\-\-localize\-symbols=\fR\fIfilename\fR]
184         [\fB\-\-globalize\-symbols=\fR\fIfilename\fR]
185         [\fB\-\-weaken\-symbols=\fR\fIfilename\fR]
186         [\fB\-\-alt\-machine\-code=\fR\fIindex\fR]
187         [\fB\-\-prefix\-symbols=\fR\fIstring\fR]
188         [\fB\-\-prefix\-sections=\fR\fIstring\fR]
189         [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR]
190         [\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR]
191         [\fB\-\-keep\-file\-symbols\fR]
192         [\fB\-\-only\-keep\-debug\fR]
193         [\fB\-\-extract\-symbol\fR]
194         [\fB\-\-writable\-text\fR]
195         [\fB\-\-readonly\-text\fR]
196         [\fB\-\-pure\fR]
197         [\fB\-\-impure\fR]
198         [\fB\-\-file\-alignment=\fR\fInum\fR]
199         [\fB\-\-heap=\fR\fIsize\fR]
200         [\fB\-\-image\-base=\fR\fIaddress\fR]
201         [\fB\-\-section\-alignment=\fR\fInum\fR]
202         [\fB\-\-stack=\fR\fIsize\fR]
203         [\fB\-\-subsystem=\fR\fIwhich\fR:\fImajor\fR.\fIminor\fR]
204         [\fB\-\-compress\-debug\-sections\fR]
205         [\fB\-\-decompress\-debug\-sections\fR]
206         [\fB\-\-dwarf\-depth=\fR\fIn\fR]
207         [\fB\-\-dwarf\-start=\fR\fIn\fR]
208         [\fB\-v\fR|\fB\-\-verbose\fR]
209         [\fB\-V\fR|\fB\-\-version\fR]
210         [\fB\-\-help\fR] [\fB\-\-info\fR]
211         \fIinfile\fR [\fIoutfile\fR]
212 .SH "DESCRIPTION"
213 .IX Header "DESCRIPTION"
214 The \s-1GNU\s0 \fBobjcopy\fR utility copies the contents of an object
215 file to another.  \fBobjcopy\fR uses the \s-1GNU\s0 \s-1BFD\s0 Library to
216 read and write the object files.  It can write the destination object
217 file in a format different from that of the source object file.  The
218 exact behavior of \fBobjcopy\fR is controlled by command-line options.
219 Note that \fBobjcopy\fR should be able to copy a fully linked file
220 between any two formats. However, copying a relocatable object file
221 between any two formats may not work as expected.
222 .PP
223 \&\fBobjcopy\fR creates temporary files to do its translations and
224 deletes them afterward.  \fBobjcopy\fR uses \s-1BFD\s0 to do all its
225 translation work; it has access to all the formats described in \s-1BFD\s0
226 and thus is able to recognize most formats without being told
227 explicitly.
228 .PP
229 \&\fBobjcopy\fR can be used to generate S\-records by using an output
230 target of \fBsrec\fR (e.g., use \fB\-O srec\fR).
231 .PP
232 \&\fBobjcopy\fR can be used to generate a raw binary file by using an
233 output target of \fBbinary\fR (e.g., use \fB\-O binary\fR).  When
234 \&\fBobjcopy\fR generates a raw binary file, it will essentially produce
235 a memory dump of the contents of the input object file.  All symbols and
236 relocation information will be discarded.  The memory dump will start at
237 the load address of the lowest section copied into the output file.
238 .PP
239 When generating an S\-record or a raw binary file, it may be helpful to
240 use \fB\-S\fR to remove sections containing debugging information.  In
241 some cases \fB\-R\fR will be useful to remove sections which contain
242 information that is not needed by the binary file.
243 .PP
244 Note\-\-\-\fBobjcopy\fR is not able to change the endianness of its input
245 files.  If the input format has an endianness (some formats do not),
246 \&\fBobjcopy\fR can only copy the inputs into file formats that have the
247 same endianness or which have no endianness (e.g., \fBsrec\fR).
248 (However, see the \fB\-\-reverse\-bytes\fR option.)
249 .SH "OPTIONS"
250 .IX Header "OPTIONS"
251 .IP "\fIinfile\fR" 4
252 .IX Item "infile"
253 .PD 0
254 .IP "\fIoutfile\fR" 4
255 .IX Item "outfile"
256 .PD
257 The input and output files, respectively.
258 If you do not specify \fIoutfile\fR, \fBobjcopy\fR creates a
259 temporary file and destructively renames the result with
260 the name of \fIinfile\fR.
261 .IP "\fB\-I\fR \fIbfdname\fR" 4
262 .IX Item "-I bfdname"
263 .PD 0
264 .IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
265 .IX Item "--input-target=bfdname"
266 .PD
267 Consider the source file's object format to be \fIbfdname\fR, rather than
268 attempting to deduce it.
269 .IP "\fB\-O\fR \fIbfdname\fR" 4
270 .IX Item "-O bfdname"
271 .PD 0
272 .IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
273 .IX Item "--output-target=bfdname"
274 .PD
275 Write the output file using the object format \fIbfdname\fR.
276 .IP "\fB\-F\fR \fIbfdname\fR" 4
277 .IX Item "-F bfdname"
278 .PD 0
279 .IP "\fB\-\-target=\fR\fIbfdname\fR" 4
280 .IX Item "--target=bfdname"
281 .PD
282 Use \fIbfdname\fR as the object format for both the input and the output
283 file; i.e., simply transfer data from source to destination with no
284 translation.
285 .IP "\fB\-B\fR \fIbfdarch\fR" 4
286 .IX Item "-B bfdarch"
287 .PD 0
288 .IP "\fB\-\-binary\-architecture=\fR\fIbfdarch\fR" 4
289 .IX Item "--binary-architecture=bfdarch"
290 .PD
291 Useful when transforming a architecture-less input file into an object file.
292 In this case the output architecture can be set to \fIbfdarch\fR.  This
293 option will be ignored if the input file has a known \fIbfdarch\fR.  You
294 can access this binary data inside a program by referencing the special
295 symbols that are created by the conversion process.  These symbols are
296 called _binary_\fIobjfile\fR_start, _binary_\fIobjfile\fR_end and
297 _binary_\fIobjfile\fR_size.  e.g. you can transform a picture file into
298 an object file and then access it in your code using these symbols.
299 .IP "\fB\-j\fR \fIsectionname\fR" 4
300 .IX Item "-j sectionname"
301 .PD 0
302 .IP "\fB\-\-only\-section=\fR\fIsectionname\fR" 4
303 .IX Item "--only-section=sectionname"
304 .PD
305 Copy only the named section from the input file to the output file.
306 This option may be given more than once.  Note that using this option
307 inappropriately may make the output file unusable.
308 .IP "\fB\-R\fR \fIsectionname\fR" 4
309 .IX Item "-R sectionname"
310 .PD 0
311 .IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
312 .IX Item "--remove-section=sectionname"
313 .PD
314 Remove any section named \fIsectionname\fR from the output file.  This
315 option may be given more than once.  Note that using this option
316 inappropriately may make the output file unusable.
317 .IP "\fB\-S\fR" 4
318 .IX Item "-S"
319 .PD 0
320 .IP "\fB\-\-strip\-all\fR" 4
321 .IX Item "--strip-all"
322 .PD
323 Do not copy relocation and symbol information from the source file.
324 .IP "\fB\-g\fR" 4
325 .IX Item "-g"
326 .PD 0
327 .IP "\fB\-\-strip\-debug\fR" 4
328 .IX Item "--strip-debug"
329 .PD
330 Do not copy debugging symbols or sections from the source file.
331 .IP "\fB\-\-strip\-unneeded\fR" 4
332 .IX Item "--strip-unneeded"
333 Strip all symbols that are not needed for relocation processing.
334 .IP "\fB\-K\fR \fIsymbolname\fR" 4
335 .IX Item "-K symbolname"
336 .PD 0
337 .IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
338 .IX Item "--keep-symbol=symbolname"
339 .PD
340 When stripping symbols, keep symbol \fIsymbolname\fR even if it would
341 normally be stripped.  This option may be given more than once.
342 .IP "\fB\-N\fR \fIsymbolname\fR" 4
343 .IX Item "-N symbolname"
344 .PD 0
345 .IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
346 .IX Item "--strip-symbol=symbolname"
347 .PD
348 Do not copy symbol \fIsymbolname\fR from the source file.  This option
349 may be given more than once.
350 .IP "\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR" 4
351 .IX Item "--strip-unneeded-symbol=symbolname"
352 Do not copy symbol \fIsymbolname\fR from the source file unless it is needed
353 by a relocation.  This option may be given more than once.
354 .IP "\fB\-G\fR \fIsymbolname\fR" 4
355 .IX Item "-G symbolname"
356 .PD 0
357 .IP "\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR" 4
358 .IX Item "--keep-global-symbol=symbolname"
359 .PD
360 Keep only symbol \fIsymbolname\fR global.  Make all other symbols local
361 to the file, so that they are not visible externally.  This option may
362 be given more than once.
363 .IP "\fB\-\-localize\-hidden\fR" 4
364 .IX Item "--localize-hidden"
365 In an \s-1ELF\s0 object, mark all symbols that have hidden or internal visibility
366 as local.  This option applies on top of symbol-specific localization options
367 such as \fB\-L\fR.
368 .IP "\fB\-L\fR \fIsymbolname\fR" 4
369 .IX Item "-L symbolname"
370 .PD 0
371 .IP "\fB\-\-localize\-symbol=\fR\fIsymbolname\fR" 4
372 .IX Item "--localize-symbol=symbolname"
373 .PD
374 Make symbol \fIsymbolname\fR local to the file, so that it is not
375 visible externally.  This option may be given more than once.
376 .IP "\fB\-W\fR \fIsymbolname\fR" 4
377 .IX Item "-W symbolname"
378 .PD 0
379 .IP "\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR" 4
380 .IX Item "--weaken-symbol=symbolname"
381 .PD
382 Make symbol \fIsymbolname\fR weak. This option may be given more than once.
383 .IP "\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR" 4
384 .IX Item "--globalize-symbol=symbolname"
385 Give symbol \fIsymbolname\fR global scoping so that it is visible
386 outside of the file in which it is defined.  This option may be given
387 more than once.
388 .IP "\fB\-w\fR" 4
389 .IX Item "-w"
390 .PD 0
391 .IP "\fB\-\-wildcard\fR" 4
392 .IX Item "--wildcard"
393 .PD
394 Permit regular expressions in \fIsymbolname\fRs used in other command
395 line options.  The question mark (?), asterisk (*), backslash (\e) and
396 square brackets ([]) operators can be used anywhere in the symbol
397 name.  If the first character of the symbol name is the exclamation
398 point (!) then the sense of the switch is reversed for that symbol.
399 For example:
400 .Sp
401 .Vb 1
402 \&          \-w \-W !foo \-W fo*
403 .Ve
404 .Sp
405 would cause objcopy to weaken all symbols that start with \*(L"fo\*(R"
406 except for the symbol \*(L"foo\*(R".
407 .IP "\fB\-x\fR" 4
408 .IX Item "-x"
409 .PD 0
410 .IP "\fB\-\-discard\-all\fR" 4
411 .IX Item "--discard-all"
412 .PD
413 Do not copy non-global symbols from the source file.
414 .IP "\fB\-X\fR" 4
415 .IX Item "-X"
416 .PD 0
417 .IP "\fB\-\-discard\-locals\fR" 4
418 .IX Item "--discard-locals"
419 .PD
420 Do not copy compiler-generated local symbols.
421 (These usually start with \fBL\fR or \fB.\fR.)
422 .IP "\fB\-b\fR \fIbyte\fR" 4
423 .IX Item "-b byte"
424 .PD 0
425 .IP "\fB\-\-byte=\fR\fIbyte\fR" 4
426 .IX Item "--byte=byte"
427 .PD
428 If interleaving has been enabled via the \fB\-\-interleave\fR option
429 then start the range of bytes to keep at the \fIbyte\fRth byte.
430 \&\fIbyte\fR can be in the range from 0 to \fIbreadth\fR\-1, where
431 \&\fIbreadth\fR is the value given by the \fB\-\-interleave\fR option.
432 .IP "\fB\-i [\fR\fIbreadth\fR\fB]\fR" 4
433 .IX Item "-i [breadth]"
434 .PD 0
435 .IP "\fB\-\-interleave[=\fR\fIbreadth\fR\fB]\fR" 4
436 .IX Item "--interleave[=breadth]"
437 .PD
438 Only copy a range out of every \fIbreadth\fR bytes.  (Header data is
439 not affected).  Select which byte in the range begins the copy with
440 the \fB\-\-byte\fR option.  Select the width of the range with the
441 \&\fB\-\-interleave\-width\fR option.
442 .Sp
443 This option is useful for creating files to program \s-1ROM\s0.  It is
444 typically used with an \f(CW\*(C`srec\*(C'\fR output target.  Note that
445 \&\fBobjcopy\fR will complain if you do not specify the
446 \&\fB\-\-byte\fR option as well.
447 .Sp
448 The default interleave breadth is 4, so with \fB\-\-byte\fR set to 0,
449 \&\fBobjcopy\fR would copy the first byte out of every four bytes
450 from the input to the output.
451 .IP "\fB\-\-interleave\-width=\fR\fIwidth\fR" 4
452 .IX Item "--interleave-width=width"
453 When used with the \fB\-\-interleave\fR option, copy \fIwidth\fR
454 bytes at a time.  The start of the range of bytes to be copied is set
455 by the \fB\-\-byte\fR option, and the extent of the range is set with
456 the \fB\-\-interleave\fR option.
457 .Sp
458 The default value for this option is 1.  The value of \fIwidth\fR plus
459 the \fIbyte\fR value set by the \fB\-\-byte\fR option must not exceed
460 the interleave breadth set by the \fB\-\-interleave\fR option.
461 .Sp
462 This option can be used to create images for two 16\-bit flashes interleaved
463 in a 32\-bit bus by passing \fB\-b 0 \-i 4 \-\-interleave\-width=2\fR
464 and \fB\-b 2 \-i 4 \-\-interleave\-width=2\fR to two \fBobjcopy\fR
465 commands.  If the input was '12345678' then the outputs would be
466 \&'1256' and '3478' respectively.
467 .IP "\fB\-p\fR" 4
468 .IX Item "-p"
469 .PD 0
470 .IP "\fB\-\-preserve\-dates\fR" 4
471 .IX Item "--preserve-dates"
472 .PD
473 Set the access and modification dates of the output file to be the same
474 as those of the input file.
475 .IP "\fB\-\-debugging\fR" 4
476 .IX Item "--debugging"
477 Convert debugging information, if possible.  This is not the default
478 because only certain debugging formats are supported, and the
479 conversion process can be time consuming.
480 .IP "\fB\-\-gap\-fill\fR \fIval\fR" 4
481 .IX Item "--gap-fill val"
482 Fill gaps between sections with \fIval\fR.  This operation applies to
483 the \fIload address\fR (\s-1LMA\s0) of the sections.  It is done by increasing
484 the size of the section with the lower address, and filling in the extra
485 space created with \fIval\fR.
486 .IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4
487 .IX Item "--pad-to address"
488 Pad the output file up to the load address \fIaddress\fR.  This is
489 done by increasing the size of the last section.  The extra space is
490 filled in with the value specified by \fB\-\-gap\-fill\fR (default zero).
491 .IP "\fB\-\-set\-start\fR \fIval\fR" 4
492 .IX Item "--set-start val"
493 Set the start address of the new file to \fIval\fR.  Not all object file
494 formats support setting the start address.
495 .IP "\fB\-\-change\-start\fR \fIincr\fR" 4
496 .IX Item "--change-start incr"
497 .PD 0
498 .IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4
499 .IX Item "--adjust-start incr"
500 .PD
501 Change the start address by adding \fIincr\fR.  Not all object file
502 formats support setting the start address.
503 .IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4
504 .IX Item "--change-addresses incr"
505 .PD 0
506 .IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4
507 .IX Item "--adjust-vma incr"
508 .PD
509 Change the \s-1VMA\s0 and \s-1LMA\s0 addresses of all sections, as well as the start
510 address, by adding \fIincr\fR.  Some object file formats do not permit
511 section addresses to be changed arbitrarily.  Note that this does not
512 relocate the sections; if the program expects sections to be loaded at a
513 certain address, and this option is used to change the sections such
514 that they are loaded at a different address, the program may fail.
515 .IP "\fB\-\-change\-section\-address\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
516 .IX Item "--change-section-address section{=,+,-}val"
517 .PD 0
518 .IP "\fB\-\-adjust\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
519 .IX Item "--adjust-section-vma section{=,+,-}val"
520 .PD
521 Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of the named
522 \&\fIsection\fR.  If \fB=\fR is used, the section address is set to
523 \&\fIval\fR.  Otherwise, \fIval\fR is added to or subtracted from the
524 section address.  See the comments under \fB\-\-change\-addresses\fR,
525 above. If \fIsection\fR does not exist in the input file, a warning will
526 be issued, unless \fB\-\-no\-change\-warnings\fR is used.
527 .IP "\fB\-\-change\-section\-lma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
528 .IX Item "--change-section-lma section{=,+,-}val"
529 Set or change the \s-1LMA\s0 address of the named \fIsection\fR.  The \s-1LMA\s0
530 address is the address where the section will be loaded into memory at
531 program load time.  Normally this is the same as the \s-1VMA\s0 address, which
532 is the address of the section at program run time, but on some systems,
533 especially those where a program is held in \s-1ROM\s0, the two can be
534 different.  If \fB=\fR is used, the section address is set to
535 \&\fIval\fR.  Otherwise, \fIval\fR is added to or subtracted from the
536 section address.  See the comments under \fB\-\-change\-addresses\fR,
537 above.  If \fIsection\fR does not exist in the input file, a warning
538 will be issued, unless \fB\-\-no\-change\-warnings\fR is used.
539 .IP "\fB\-\-change\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
540 .IX Item "--change-section-vma section{=,+,-}val"
541 Set or change the \s-1VMA\s0 address of the named \fIsection\fR.  The \s-1VMA\s0
542 address is the address where the section will be located once the
543 program has started executing.  Normally this is the same as the \s-1LMA\s0
544 address, which is the address where the section will be loaded into
545 memory, but on some systems, especially those where a program is held in
546 \&\s-1ROM\s0, the two can be different.  If \fB=\fR is used, the section address
547 is set to \fIval\fR.  Otherwise, \fIval\fR is added to or subtracted
548 from the section address.  See the comments under
549 \&\fB\-\-change\-addresses\fR, above.  If \fIsection\fR does not exist in
550 the input file, a warning will be issued, unless
551 \&\fB\-\-no\-change\-warnings\fR is used.
552 .IP "\fB\-\-change\-warnings\fR" 4
553 .IX Item "--change-warnings"
554 .PD 0
555 .IP "\fB\-\-adjust\-warnings\fR" 4
556 .IX Item "--adjust-warnings"
557 .PD
558 If \fB\-\-change\-section\-address\fR or \fB\-\-change\-section\-lma\fR or
559 \&\fB\-\-change\-section\-vma\fR is used, and the named section does not
560 exist, issue a warning.  This is the default.
561 .IP "\fB\-\-no\-change\-warnings\fR" 4
562 .IX Item "--no-change-warnings"
563 .PD 0
564 .IP "\fB\-\-no\-adjust\-warnings\fR" 4
565 .IX Item "--no-adjust-warnings"
566 .PD
567 Do not issue a warning if \fB\-\-change\-section\-address\fR or
568 \&\fB\-\-adjust\-section\-lma\fR or \fB\-\-adjust\-section\-vma\fR is used, even
569 if the named section does not exist.
570 .IP "\fB\-\-set\-section\-flags\fR \fIsection\fR\fB=\fR\fIflags\fR" 4
571 .IX Item "--set-section-flags section=flags"
572 Set the flags for the named section.  The \fIflags\fR argument is a
573 comma separated string of flag names.  The recognized names are
574 \&\fBalloc\fR, \fBcontents\fR, \fBload\fR, \fBnoload\fR,
575 \&\fBreadonly\fR, \fBcode\fR, \fBdata\fR, \fBrom\fR, \fBshare\fR, and
576 \&\fBdebug\fR.  You can set the \fBcontents\fR flag for a section which
577 does not have contents, but it is not meaningful to clear the
578 \&\fBcontents\fR flag of a section which does have contents\*(--just remove
579 the section instead.  Not all flags are meaningful for all object file
580 formats.
581 .IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
582 .IX Item "--add-section sectionname=filename"
583 Add a new section named \fIsectionname\fR while copying the file.  The
584 contents of the new section are taken from the file \fIfilename\fR.  The
585 size of the section will be the size of the file.  This option only
586 works on file formats which can support sections with arbitrary names.
587 .IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
588 .IX Item "--rename-section oldname=newname[,flags]"
589 Rename a section from \fIoldname\fR to \fInewname\fR, optionally
590 changing the section's flags to \fIflags\fR in the process.  This has
591 the advantage over usng a linker script to perform the rename in that
592 the output stays as an object file and does not become a linked
593 executable.
594 .Sp
595 This option is particularly helpful when the input format is binary,
596 since this will always create a section called .data.  If for example,
597 you wanted instead to create a section called .rodata containing binary
598 data you could use the following command line to achieve it:
599 .Sp
600 .Vb 3
601 \&          objcopy \-I binary \-O <output_format> \-B <architecture> \e
602 \&           \-\-rename\-section .data=.rodata,alloc,load,readonly,data,contents \e
603 \&           <input_binary_file> <output_object_file>
604 .Ve
605 .IP "\fB\-\-long\-section\-names {enable,disable,keep}\fR" 4
606 .IX Item "--long-section-names {enable,disable,keep}"
607 Controls the handling of long section names when processing \f(CW\*(C`COFF\*(C'\fR
608 and \f(CW\*(C`PE\-COFF\*(C'\fR object formats.  The default behaviour, \fBkeep\fR,
609 is to preserve long section names if any are present in the input file.
610 The \fBenable\fR and \fBdisable\fR options forcibly enable or disable
611 the use of long section names in the output object; when \fBdisable\fR
612 is in effect, any long section names in the input object will be truncated.
613 The \fBenable\fR option will only emit long section names if any are
614 present in the inputs; this is mostly the same as \fBkeep\fR, but it
615 is left undefined whether the \fBenable\fR option might force the 
616 creation of an empty string table in the output file.
617 .IP "\fB\-\-change\-leading\-char\fR" 4
618 .IX Item "--change-leading-char"
619 Some object file formats use special characters at the start of
620 symbols.  The most common such character is underscore, which compilers
621 often add before every symbol.  This option tells \fBobjcopy\fR to
622 change the leading character of every symbol when it converts between
623 object file formats.  If the object file formats use the same leading
624 character, this option has no effect.  Otherwise, it will add a
625 character, or remove a character, or change a character, as
626 appropriate.
627 .IP "\fB\-\-remove\-leading\-char\fR" 4
628 .IX Item "--remove-leading-char"
629 If the first character of a global symbol is a special symbol leading
630 character used by the object file format, remove the character.  The
631 most common symbol leading character is underscore.  This option will
632 remove a leading underscore from all global symbols.  This can be useful
633 if you want to link together objects of different file formats with
634 different conventions for symbol names.  This is different from
635 \&\fB\-\-change\-leading\-char\fR because it always changes the symbol name
636 when appropriate, regardless of the object file format of the output
637 file.
638 .IP "\fB\-\-reverse\-bytes=\fR\fInum\fR" 4
639 .IX Item "--reverse-bytes=num"
640 Reverse the bytes in a section with output contents.  A section length must
641 be evenly divisible by the value given in order for the swap to be able to
642 take place. Reversing takes place before the interleaving is performed.
643 .Sp
644 This option is used typically in generating \s-1ROM\s0 images for problematic
645 target systems.  For example, on some target boards, the 32\-bit words
646 fetched from 8\-bit ROMs are re-assembled in little-endian byte order
647 regardless of the \s-1CPU\s0 byte order.  Depending on the programming model, the
648 endianness of the \s-1ROM\s0 may need to be modified.
649 .Sp
650 Consider a simple file with a section containing the following eight
651 bytes:  \f(CW12345678\fR.
652 .Sp
653 Using \fB\-\-reverse\-bytes=2\fR for the above example, the bytes in the
654 output file would be ordered \f(CW21436587\fR.
655 .Sp
656 Using \fB\-\-reverse\-bytes=4\fR for the above example, the bytes in the
657 output file would be ordered \f(CW43218765\fR.
658 .Sp
659 By using \fB\-\-reverse\-bytes=2\fR for the above example, followed by
660 \&\fB\-\-reverse\-bytes=4\fR on the output file, the bytes in the second
661 output file would be ordered \f(CW34127856\fR.
662 .IP "\fB\-\-srec\-len=\fR\fIival\fR" 4
663 .IX Item "--srec-len=ival"
664 Meaningful only for srec output.  Set the maximum length of the Srecords
665 being produced to \fIival\fR.  This length covers both address, data and
666 crc fields.
667 .IP "\fB\-\-srec\-forceS3\fR" 4
668 .IX Item "--srec-forceS3"
669 Meaningful only for srec output.  Avoid generation of S1/S2 records,
670 creating S3\-only record format.
671 .IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4
672 .IX Item "--redefine-sym old=new"
673 Change the name of a symbol \fIold\fR, to \fInew\fR.  This can be useful
674 when one is trying link two things together for which you have no
675 source, and there are name collisions.
676 .IP "\fB\-\-redefine\-syms=\fR\fIfilename\fR" 4
677 .IX Item "--redefine-syms=filename"
678 Apply \fB\-\-redefine\-sym\fR to each symbol pair "\fIold\fR \fInew\fR"
679 listed in the file \fIfilename\fR.  \fIfilename\fR is simply a flat file,
680 with one symbol pair per line.  Line comments may be introduced by the hash
681 character.  This option may be given more than once.
682 .IP "\fB\-\-weaken\fR" 4
683 .IX Item "--weaken"
684 Change all global symbols in the file to be weak.  This can be useful
685 when building an object which will be linked against other objects using
686 the \fB\-R\fR option to the linker.  This option is only effective when
687 using an object file format which supports weak symbols.
688 .IP "\fB\-\-keep\-symbols=\fR\fIfilename\fR" 4
689 .IX Item "--keep-symbols=filename"
690 Apply \fB\-\-keep\-symbol\fR option to each symbol listed in the file
691 \&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
692 name per line.  Line comments may be introduced by the hash character.
693 This option may be given more than once.
694 .IP "\fB\-\-strip\-symbols=\fR\fIfilename\fR" 4
695 .IX Item "--strip-symbols=filename"
696 Apply \fB\-\-strip\-symbol\fR option to each symbol listed in the file
697 \&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
698 name per line.  Line comments may be introduced by the hash character.
699 This option may be given more than once.
700 .IP "\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR" 4
701 .IX Item "--strip-unneeded-symbols=filename"
702 Apply \fB\-\-strip\-unneeded\-symbol\fR option to each symbol listed in
703 the file \fIfilename\fR.  \fIfilename\fR is simply a flat file, with one
704 symbol name per line.  Line comments may be introduced by the hash
705 character.  This option may be given more than once.
706 .IP "\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR" 4
707 .IX Item "--keep-global-symbols=filename"
708 Apply \fB\-\-keep\-global\-symbol\fR option to each symbol listed in the
709 file \fIfilename\fR.  \fIfilename\fR is simply a flat file, with one
710 symbol name per line.  Line comments may be introduced by the hash
711 character.  This option may be given more than once.
712 .IP "\fB\-\-localize\-symbols=\fR\fIfilename\fR" 4
713 .IX Item "--localize-symbols=filename"
714 Apply \fB\-\-localize\-symbol\fR option to each symbol listed in the file
715 \&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
716 name per line.  Line comments may be introduced by the hash character.
717 This option may be given more than once.
718 .IP "\fB\-\-globalize\-symbols=\fR\fIfilename\fR" 4
719 .IX Item "--globalize-symbols=filename"
720 Apply \fB\-\-globalize\-symbol\fR option to each symbol listed in the file
721 \&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
722 name per line.  Line comments may be introduced by the hash character.
723 This option may be given more than once.
724 .IP "\fB\-\-weaken\-symbols=\fR\fIfilename\fR" 4
725 .IX Item "--weaken-symbols=filename"
726 Apply \fB\-\-weaken\-symbol\fR option to each symbol listed in the file
727 \&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
728 name per line.  Line comments may be introduced by the hash character.
729 This option may be given more than once.
730 .IP "\fB\-\-alt\-machine\-code=\fR\fIindex\fR" 4
731 .IX Item "--alt-machine-code=index"
732 If the output architecture has alternate machine codes, use the
733 \&\fIindex\fRth code instead of the default one.  This is useful in case
734 a machine is assigned an official code and the tool-chain adopts the
735 new code, but other applications still depend on the original code
736 being used.  For \s-1ELF\s0 based architectures if the \fIindex\fR
737 alternative does not exist then the value is treated as an absolute
738 number to be stored in the e_machine field of the \s-1ELF\s0 header.
739 .IP "\fB\-\-writable\-text\fR" 4
740 .IX Item "--writable-text"
741 Mark the output text as writable.  This option isn't meaningful for all
742 object file formats.
743 .IP "\fB\-\-readonly\-text\fR" 4
744 .IX Item "--readonly-text"
745 Make the output text write protected.  This option isn't meaningful for all
746 object file formats.
747 .IP "\fB\-\-pure\fR" 4
748 .IX Item "--pure"
749 Mark the output file as demand paged.  This option isn't meaningful for all
750 object file formats.
751 .IP "\fB\-\-impure\fR" 4
752 .IX Item "--impure"
753 Mark the output file as impure.  This option isn't meaningful for all
754 object file formats.
755 .IP "\fB\-\-prefix\-symbols=\fR\fIstring\fR" 4
756 .IX Item "--prefix-symbols=string"
757 Prefix all symbols in the output file with \fIstring\fR.
758 .IP "\fB\-\-prefix\-sections=\fR\fIstring\fR" 4
759 .IX Item "--prefix-sections=string"
760 Prefix all section names in the output file with \fIstring\fR.
761 .IP "\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR" 4
762 .IX Item "--prefix-alloc-sections=string"
763 Prefix all the names of all allocated sections in the output file with
764 \&\fIstring\fR.
765 .IP "\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR" 4
766 .IX Item "--add-gnu-debuglink=path-to-file"
767 Creates a .gnu_debuglink section which contains a reference to \fIpath-to-file\fR
768 and adds it to the output file.
769 .IP "\fB\-\-keep\-file\-symbols\fR" 4
770 .IX Item "--keep-file-symbols"
771 When stripping a file, perhaps with \fB\-\-strip\-debug\fR or
772 \&\fB\-\-strip\-unneeded\fR, retain any symbols specifying source file names,
773 which would otherwise get stripped.
774 .IP "\fB\-\-only\-keep\-debug\fR" 4
775 .IX Item "--only-keep-debug"
776 Strip a file, removing contents of any sections that would not be
777 stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
778 intact.  In \s-1ELF\s0 files, this preserves all note sections in the output.
779 .Sp
780 The intention is that this option will be used in conjunction with
781 \&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable.  One a
782 stripped binary which will occupy less space in \s-1RAM\s0 and in a
783 distribution and the second a debugging information file which is only
784 needed if debugging abilities are required.  The suggested procedure
785 to create these files is as follows:
786 .RS 4
787 .IP "1.<Link the executable as normal.  Assuming that is is called>" 4
788 .IX Item "1.<Link the executable as normal.  Assuming that is is called>"
789 \&\f(CW\*(C`foo\*(C'\fR then...
790 .ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
791 .el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
792 .IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
793 create a file containing the debugging info.
794 .ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
795 .el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
796 .IX Item "1.<Run objcopy --strip-debug foo to create a>"
797 stripped executable.
798 .ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
799 .el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
800 .IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
801 to add a link to the debugging info into the stripped executable.
802 .RE
803 .RS 4
804 .Sp
805 Note\-\-\-the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
806 file is arbitrary.  Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
807 optional.  You could instead do this:
808 .IP "1.<Link the executable as normal.>" 4
809 .IX Item "1.<Link the executable as normal.>"
810 .PD 0
811 .ie n .IP "1.<Copy ""foo"" to  ""foo.full"">" 4
812 .el .IP "1.<Copy \f(CWfoo\fR to  \f(CWfoo.full\fR>" 4
813 .IX Item "1.<Copy foo to  foo.full>"
814 .ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"">" 4
815 .el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR>" 4
816 .IX Item "1.<Run objcopy --strip-debug foo>"
817 .ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
818 .el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
819 .IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
820 .RE
821 .RS 4
822 .PD
823 .Sp
824 i.e., the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
825 full executable.  It does not have to be a file created by the
826 \&\fB\-\-only\-keep\-debug\fR switch.
827 .Sp
828 Note\-\-\-this switch is only intended for use on fully linked files.  It
829 does not make sense to use it on object files where the debugging
830 information may be incomplete.  Besides the gnu_debuglink feature
831 currently only supports the presence of one filename containing
832 debugging information, not multiple filenames on a one-per-object-file
833 basis.
834 .RE
835 .IP "\fB\-\-file\-alignment\fR \fInum\fR" 4
836 .IX Item "--file-alignment num"
837 Specify the file alignment.  Sections in the file will always begin at
838 file offsets which are multiples of this number.  This defaults to
839 512.
840 [This option is specific to \s-1PE\s0 targets.]
841 .IP "\fB\-\-heap\fR \fIreserve\fR" 4
842 .IX Item "--heap reserve"
843 .PD 0
844 .IP "\fB\-\-heap\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4
845 .IX Item "--heap reserve,commit"
846 .PD
847 Specify the number of bytes of memory to reserve (and optionally commit)
848 to be used as heap for this program.
849 [This option is specific to \s-1PE\s0 targets.]
850 .IP "\fB\-\-image\-base\fR \fIvalue\fR" 4
851 .IX Item "--image-base value"
852 Use \fIvalue\fR as the base address of your program or dll.  This is
853 the lowest memory location that will be used when your program or dll
854 is loaded.  To reduce the need to relocate and improve performance of
855 your dlls, each should have a unique base address and not overlap any
856 other dlls.  The default is 0x400000 for executables, and 0x10000000
857 for dlls.
858 [This option is specific to \s-1PE\s0 targets.]
859 .IP "\fB\-\-section\-alignment\fR \fInum\fR" 4
860 .IX Item "--section-alignment num"
861 Sets the section alignment.  Sections in memory will always begin at
862 addresses which are a multiple of this number.  Defaults to 0x1000.
863 [This option is specific to \s-1PE\s0 targets.]
864 .IP "\fB\-\-stack\fR \fIreserve\fR" 4
865 .IX Item "--stack reserve"
866 .PD 0
867 .IP "\fB\-\-stack\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4
868 .IX Item "--stack reserve,commit"
869 .PD
870 Specify the number of bytes of memory to reserve (and optionally commit)
871 to be used as stack for this program.
872 [This option is specific to \s-1PE\s0 targets.]
873 .IP "\fB\-\-subsystem\fR \fIwhich\fR" 4
874 .IX Item "--subsystem which"
875 .PD 0
876 .IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR" 4
877 .IX Item "--subsystem which:major"
878 .IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR\fB.\fR\fIminor\fR" 4
879 .IX Item "--subsystem which:major.minor"
880 .PD
881 Specifies the subsystem under which your program will execute.  The
882 legal values for \fIwhich\fR are \f(CW\*(C`native\*(C'\fR, \f(CW\*(C`windows\*(C'\fR,
883 \&\f(CW\*(C`console\*(C'\fR, \f(CW\*(C`posix\*(C'\fR, \f(CW\*(C`efi\-app\*(C'\fR, \f(CW\*(C`efi\-bsd\*(C'\fR,
884 \&\f(CW\*(C`efi\-rtd\*(C'\fR, \f(CW\*(C`sal\-rtd\*(C'\fR, and \f(CW\*(C`xbox\*(C'\fR.  You may optionally set
885 the subsystem version also.  Numeric values are also accepted for
886 \&\fIwhich\fR.
887 [This option is specific to \s-1PE\s0 targets.]
888 .IP "\fB\-\-extract\-symbol\fR" 4
889 .IX Item "--extract-symbol"
890 Keep the file's section flags and symbols but remove all section data.
891 Specifically, the option:
892 .RS 4
893 .IP "*<removes the contents of all sections;>" 4
894 .IX Item "*<removes the contents of all sections;>"
895 .PD 0
896 .IP "*<sets the size of every section to zero; and>" 4
897 .IX Item "*<sets the size of every section to zero; and>"
898 .IP "*<sets the file's start address to zero.>" 4
899 .IX Item "*<sets the file's start address to zero.>"
900 .RE
901 .RS 4
902 .PD
903 .Sp
904 This option is used to build a \fI.sym\fR file for a VxWorks kernel.
905 It can also be a useful way of reducing the size of a \fB\-\-just\-symbols\fR
906 linker input file.
907 .RE
908 .IP "\fB\-\-compress\-debug\-sections\fR" 4
909 .IX Item "--compress-debug-sections"
910 Compress \s-1DWARF\s0 debug sections using zlib.
911 .IP "\fB\-\-decompress\-debug\-sections\fR" 4
912 .IX Item "--decompress-debug-sections"
913 Decompress \s-1DWARF\s0 debug sections using zlib.
914 .IP "\fB\-V\fR" 4
915 .IX Item "-V"
916 .PD 0
917 .IP "\fB\-\-version\fR" 4
918 .IX Item "--version"
919 .PD
920 Show the version number of \fBobjcopy\fR.
921 .IP "\fB\-v\fR" 4
922 .IX Item "-v"
923 .PD 0
924 .IP "\fB\-\-verbose\fR" 4
925 .IX Item "--verbose"
926 .PD
927 Verbose output: list all object files modified.  In the case of
928 archives, \fBobjcopy \-V\fR lists all members of the archive.
929 .IP "\fB\-\-help\fR" 4
930 .IX Item "--help"
931 Show a summary of the options to \fBobjcopy\fR.
932 .IP "\fB\-\-info\fR" 4
933 .IX Item "--info"
934 Display a list showing all architectures and object formats available.
935 .IP "\fB@\fR\fIfile\fR" 4
936 .IX Item "@file"
937 Read command-line options from \fIfile\fR.  The options read are
938 inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
939 does not exist, or cannot be read, then the option will be treated
940 literally, and not removed.
941 .Sp
942 Options in \fIfile\fR are separated by whitespace.  A whitespace
943 character may be included in an option by surrounding the entire
944 option in either single or double quotes.  Any character (including a
945 backslash) may be included by prefixing the character to be included
946 with a backslash.  The \fIfile\fR may itself contain additional
947 @\fIfile\fR options; any such options will be processed recursively.
948 .SH "SEE ALSO"
949 .IX Header "SEE ALSO"
950 \&\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
951 .SH "COPYRIGHT"
952 .IX Header "COPYRIGHT"
953 Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
954 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
955 Free Software Foundation, Inc.
956 .PP
957 Permission is granted to copy, distribute and/or modify this document
958 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
959 or any later version published by the Free Software Foundation;
960 with no Invariant Sections, with no Front-Cover Texts, and with no
961 Back-Cover Texts.  A copy of the license is included in the
962 section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".