.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "OBJCOPY 1"
.TH OBJCOPY 1 "2012-11-13" "binutils-2.23.1" "GNU Development Tools"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
objcopy \- copy and translate object files
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
        [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
        [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
        [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR]
        [\fB\-S\fR|\fB\-\-strip\-all\fR]
        [\fB\-g\fR|\fB\-\-strip\-debug\fR]
        [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
        [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
        [\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR]
        [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR]
        [\fB\-\-localize\-hidden\fR]
        [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR]
        [\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR]
        [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR]
        [\fB\-w\fR|\fB\-\-wildcard\fR]
        [\fB\-x\fR|\fB\-\-discard\-all\fR]
        [\fB\-X\fR|\fB\-\-discard\-locals\fR]
        [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR]
        [\fB\-i\fR [\fIbreadth\fR]|\fB\-\-interleave\fR[=\fIbreadth\fR]]
        [\fB\-\-interleave\-width=\fR\fIwidth\fR]
        [\fB\-j\fR \fIsectionname\fR|\fB\-\-only\-section=\fR\fIsectionname\fR]
        [\fB\-R\fR \fIsectionname\fR|\fB\-\-remove\-section=\fR\fIsectionname\fR]
        [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
        [\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR]
        [\fB\-\-debugging\fR]
        [\fB\-\-gap\-fill=\fR\fIval\fR]
        [\fB\-\-pad\-to=\fR\fIaddress\fR]
        [\fB\-\-set\-start=\fR\fIval\fR]
        [\fB\-\-adjust\-start=\fR\fIincr\fR]
        [\fB\-\-change\-addresses=\fR\fIincr\fR]
        [\fB\-\-change\-section\-address\fR \fIsection\fR{=,+,\-}\fIval\fR]
        [\fB\-\-change\-section\-lma\fR \fIsection\fR{=,+,\-}\fIval\fR]
        [\fB\-\-change\-section\-vma\fR \fIsection\fR{=,+,\-}\fIval\fR]
        [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR]
        [\fB\-\-set\-section\-flags\fR \fIsection\fR=\fIflags\fR]
        [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
        [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]]
        [\fB\-\-long\-section\-names\fR {enable,disable,keep}]
        [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR]
        [\fB\-\-reverse\-bytes=\fR\fInum\fR]
        [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR]
        [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR]
        [\fB\-\-redefine\-syms=\fR\fIfilename\fR]
        [\fB\-\-weaken\fR]
        [\fB\-\-keep\-symbols=\fR\fIfilename\fR]
        [\fB\-\-strip\-symbols=\fR\fIfilename\fR]
        [\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR]
        [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR]
        [\fB\-\-localize\-symbols=\fR\fIfilename\fR]
        [\fB\-\-globalize\-symbols=\fR\fIfilename\fR]
        [\fB\-\-weaken\-symbols=\fR\fIfilename\fR]
        [\fB\-\-alt\-machine\-code=\fR\fIindex\fR]
        [\fB\-\-prefix\-symbols=\fR\fIstring\fR]
        [\fB\-\-prefix\-sections=\fR\fIstring\fR]
        [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR]
        [\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR]
        [\fB\-\-keep\-file\-symbols\fR]
        [\fB\-\-only\-keep\-debug\fR]
        [\fB\-\-strip\-dwo\fR]
        [\fB\-\-extract\-dwo\fR]
        [\fB\-\-extract\-symbol\fR]
        [\fB\-\-writable\-text\fR]
        [\fB\-\-readonly\-text\fR]
        [\fB\-\-pure\fR]
        [\fB\-\-impure\fR]
        [\fB\-\-file\-alignment=\fR\fInum\fR]
        [\fB\-\-heap=\fR\fIsize\fR]
        [\fB\-\-image\-base=\fR\fIaddress\fR]
        [\fB\-\-section\-alignment=\fR\fInum\fR]
        [\fB\-\-stack=\fR\fIsize\fR]
        [\fB\-\-subsystem=\fR\fIwhich\fR:\fImajor\fR.\fIminor\fR]
        [\fB\-\-compress\-debug\-sections\fR]
        [\fB\-\-decompress\-debug\-sections\fR]
        [\fB\-\-dwarf\-depth=\fR\fIn\fR]
        [\fB\-\-dwarf\-start=\fR\fIn\fR]
        [\fB\-v\fR|\fB\-\-verbose\fR]
        [\fB\-V\fR|\fB\-\-version\fR]
        [\fB\-\-help\fR] [\fB\-\-info\fR]
        \fIinfile\fR [\fIoutfile\fR]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \s-1GNU\s0 \fBobjcopy\fR utility copies the contents of an object
file to another.  \fBobjcopy\fR uses the \s-1GNU\s0 \s-1BFD\s0 Library to
read and write the object files.  It can write the destination object
file in a format different from that of the source object file.  The
exact behavior of \fBobjcopy\fR is controlled by command-line options.
Note that \fBobjcopy\fR should be able to copy a fully linked file
between any two formats. However, copying a relocatable object file
between any two formats may not work as expected.
.PP
\&\fBobjcopy\fR creates temporary files to do its translations and
deletes them afterward.  \fBobjcopy\fR uses \s-1BFD\s0 to do all its
translation work; it has access to all the formats described in \s-1BFD\s0
and thus is able to recognize most formats without being told
explicitly.
.PP
\&\fBobjcopy\fR can be used to generate S\-records by using an output
target of \fBsrec\fR (e.g., use \fB\-O srec\fR).
.PP
\&\fBobjcopy\fR can be used to generate a raw binary file by using an
output target of \fBbinary\fR (e.g., use \fB\-O binary\fR).  When
\&\fBobjcopy\fR generates a raw binary file, it will essentially produce
a memory dump of the contents of the input object file.  All symbols and
relocation information will be discarded.  The memory dump will start at
the load address of the lowest section copied into the output file.
.PP
When generating an S\-record or a raw binary file, it may be helpful to
use \fB\-S\fR to remove sections containing debugging information.  In
some cases \fB\-R\fR will be useful to remove sections which contain
information that is not needed by the binary file.
.PP
Note\-\-\-\fBobjcopy\fR is not able to change the endianness of its input
files.  If the input format has an endianness (some formats do not),
\&\fBobjcopy\fR can only copy the inputs into file formats that have the
same endianness or which have no endianness (e.g., \fBsrec\fR).
(However, see the \fB\-\-reverse\-bytes\fR option.)
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fIinfile\fR" 4
.IX Item "infile"
.PD 0
.IP "\fIoutfile\fR" 4
.IX Item "outfile"
.PD
The input and output files, respectively.
If you do not specify \fIoutfile\fR, \fBobjcopy\fR creates a
temporary file and destructively renames the result with
the name of \fIinfile\fR.
.IP "\fB\-I\fR \fIbfdname\fR" 4
.IX Item "-I bfdname"
.PD 0
.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
.IX Item "--input-target=bfdname"
.PD
Consider the source file's object format to be \fIbfdname\fR, rather than
attempting to deduce it.
.IP "\fB\-O\fR \fIbfdname\fR" 4
.IX Item "-O bfdname"
.PD 0
.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
.IX Item "--output-target=bfdname"
.PD
Write the output file using the object format \fIbfdname\fR.
.IP "\fB\-F\fR \fIbfdname\fR" 4
.IX Item "-F bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Use \fIbfdname\fR as the object format for both the input and the output
file; i.e., simply transfer data from source to destination with no
translation.
.IP "\fB\-B\fR \fIbfdarch\fR" 4
.IX Item "-B bfdarch"
.PD 0
.IP "\fB\-\-binary\-architecture=\fR\fIbfdarch\fR" 4
.IX Item "--binary-architecture=bfdarch"
.PD
Useful when transforming a architecture-less input file into an object file.
In this case the output architecture can be set to \fIbfdarch\fR.  This
option will be ignored if the input file has a known \fIbfdarch\fR.  You
can access this binary data inside a program by referencing the special
symbols that are created by the conversion process.  These symbols are
called _binary_\fIobjfile\fR_start, _binary_\fIobjfile\fR_end and
_binary_\fIobjfile\fR_size.  e.g. you can transform a picture file into
an object file and then access it in your code using these symbols.
.IP "\fB\-j\fR \fIsectionname\fR" 4
.IX Item "-j sectionname"
.PD 0
.IP "\fB\-\-only\-section=\fR\fIsectionname\fR" 4
.IX Item "--only-section=sectionname"
.PD
Copy only the named section from the input file to the output file.
This option may be given more than once.  Note that using this option
inappropriately may make the output file unusable.
.IP "\fB\-R\fR \fIsectionname\fR" 4
.IX Item "-R sectionname"
.PD 0
.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
.IX Item "--remove-section=sectionname"
.PD
Remove any section named \fIsectionname\fR from the output file.  This
option may be given more than once.  Note that using this option
inappropriately may make the output file unusable.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-strip\-all\fR" 4
.IX Item "--strip-all"
.PD
Do not copy relocation and symbol information from the source file.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-strip\-debug\fR" 4
.IX Item "--strip-debug"
.PD
Do not copy debugging symbols or sections from the source file.
.IP "\fB\-\-strip\-unneeded\fR" 4
.IX Item "--strip-unneeded"
Strip all symbols that are not needed for relocation processing.
.IP "\fB\-K\fR \fIsymbolname\fR" 4
.IX Item "-K symbolname"
.PD 0
.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--keep-symbol=symbolname"
.PD
When stripping symbols, keep symbol \fIsymbolname\fR even if it would
normally be stripped.  This option may be given more than once.
.IP "\fB\-N\fR \fIsymbolname\fR" 4
.IX Item "-N symbolname"
.PD 0
.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--strip-symbol=symbolname"
.PD
Do not copy symbol \fIsymbolname\fR from the source file.  This option
may be given more than once.
.IP "\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--strip-unneeded-symbol=symbolname"
Do not copy symbol \fIsymbolname\fR from the source file unless it is needed
by a relocation.  This option may be given more than once.
.IP "\fB\-G\fR \fIsymbolname\fR" 4
.IX Item "-G symbolname"
.PD 0
.IP "\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--keep-global-symbol=symbolname"
.PD
Keep only symbol \fIsymbolname\fR global.  Make all other symbols local
to the file, so that they are not visible externally.  This option may
be given more than once.
.IP "\fB\-\-localize\-hidden\fR" 4
.IX Item "--localize-hidden"
In an \s-1ELF\s0 object, mark all symbols that have hidden or internal visibility
as local.  This option applies on top of symbol-specific localization options
such as \fB\-L\fR.
.IP "\fB\-L\fR \fIsymbolname\fR" 4
.IX Item "-L symbolname"
.PD 0
.IP "\fB\-\-localize\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--localize-symbol=symbolname"
.PD
Make symbol \fIsymbolname\fR local to the file, so that it is not
visible externally.  This option may be given more than once.
.IP "\fB\-W\fR \fIsymbolname\fR" 4
.IX Item "-W symbolname"
.PD 0
.IP "\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--weaken-symbol=symbolname"
.PD
Make symbol \fIsymbolname\fR weak. This option may be given more than once.
.IP "\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--globalize-symbol=symbolname"
Give symbol \fIsymbolname\fR global scoping so that it is visible
outside of the file in which it is defined.  This option may be given
more than once.
.IP "\fB\-w\fR" 4
.IX Item "-w"
.PD 0
.IP "\fB\-\-wildcard\fR" 4
.IX Item "--wildcard"
.PD
Permit regular expressions in \fIsymbolname\fRs used in other command
line options.  The question mark (?), asterisk (*), backslash (\e) and
square brackets ([]) operators can be used anywhere in the symbol
name.  If the first character of the symbol name is the exclamation
point (!) then the sense of the switch is reversed for that symbol.
For example:
.Sp
.Vb 1
\&          \-w \-W !foo \-W fo*
.Ve
.Sp
would cause objcopy to weaken all symbols that start with \*(L"fo\*(R"
except for the symbol \*(L"foo\*(R".
.IP "\fB\-x\fR" 4
.IX Item "-x"
.PD 0
.IP "\fB\-\-discard\-all\fR" 4
.IX Item "--discard-all"
.PD
Do not copy non-global symbols from the source file.
.IP "\fB\-X\fR" 4
.IX Item "-X"
.PD 0
.IP "\fB\-\-discard\-locals\fR" 4
.IX Item "--discard-locals"
.PD
Do not copy compiler-generated local symbols.
(These usually start with \fBL\fR or \fB.\fR.)
.IP "\fB\-b\fR \fIbyte\fR" 4
.IX Item "-b byte"
.PD 0
.IP "\fB\-\-byte=\fR\fIbyte\fR" 4
.IX Item "--byte=byte"
.PD
If interleaving has been enabled via the \fB\-\-interleave\fR option
then start the range of bytes to keep at the \fIbyte\fRth byte.
\&\fIbyte\fR can be in the range from 0 to \fIbreadth\fR\-1, where
\&\fIbreadth\fR is the value given by the \fB\-\-interleave\fR option.
.IP "\fB\-i [\fR\fIbreadth\fR\fB]\fR" 4
.IX Item "-i [breadth]"
.PD 0
.IP "\fB\-\-interleave[=\fR\fIbreadth\fR\fB]\fR" 4
.IX Item "--interleave[=breadth]"
.PD
Only copy a range out of every \fIbreadth\fR bytes.  (Header data is
not affected).  Select which byte in the range begins the copy with
the \fB\-\-byte\fR option.  Select the width of the range with the
\&\fB\-\-interleave\-width\fR option.
.Sp
This option is useful for creating files to program \s-1ROM\s0.  It is
typically used with an \f(CW\*(C`srec\*(C'\fR output target.  Note that
\&\fBobjcopy\fR will complain if you do not specify the
\&\fB\-\-byte\fR option as well.
.Sp
The default interleave breadth is 4, so with \fB\-\-byte\fR set to 0,
\&\fBobjcopy\fR would copy the first byte out of every four bytes
from the input to the output.
.IP "\fB\-\-interleave\-width=\fR\fIwidth\fR" 4
.IX Item "--interleave-width=width"
When used with the \fB\-\-interleave\fR option, copy \fIwidth\fR
bytes at a time.  The start of the range of bytes to be copied is set
by the \fB\-\-byte\fR option, and the extent of the range is set with
the \fB\-\-interleave\fR option.
.Sp
The default value for this option is 1.  The value of \fIwidth\fR plus
the \fIbyte\fR value set by the \fB\-\-byte\fR option must not exceed
the interleave breadth set by the \fB\-\-interleave\fR option.
.Sp
This option can be used to create images for two 16\-bit flashes interleaved
in a 32\-bit bus by passing \fB\-b 0 \-i 4 \-\-interleave\-width=2\fR
and \fB\-b 2 \-i 4 \-\-interleave\-width=2\fR to two \fBobjcopy\fR
commands.  If the input was '12345678' then the outputs would be
\&'1256' and '3478' respectively.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-preserve\-dates\fR" 4
.IX Item "--preserve-dates"
.PD
Set the access and modification dates of the output file to be the same
as those of the input file.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-enable\-deterministic\-archives\fR" 4
.IX Item "--enable-deterministic-archives"
.PD
Operate in \fIdeterministic\fR mode.  When copying archive members
and writing the archive index, use zero for UIDs, GIDs, timestamps,
and use consistent file modes for all files.
.IP "\fB\-\-debugging\fR" 4
.IX Item "--debugging"
Convert debugging information, if possible.  This is not the default
because only certain debugging formats are supported, and the
conversion process can be time consuming.
.IP "\fB\-\-gap\-fill\fR \fIval\fR" 4
.IX Item "--gap-fill val"
Fill gaps between sections with \fIval\fR.  This operation applies to
the \fIload address\fR (\s-1LMA\s0) of the sections.  It is done by increasing
the size of the section with the lower address, and filling in the extra
space created with \fIval\fR.
.IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4
.IX Item "--pad-to address"
Pad the output file up to the load address \fIaddress\fR.  This is
done by increasing the size of the last section.  The extra space is
filled in with the value specified by \fB\-\-gap\-fill\fR (default zero).
.IP "\fB\-\-set\-start\fR \fIval\fR" 4
.IX Item "--set-start val"
Set the start address of the new file to \fIval\fR.  Not all object file
formats support setting the start address.
.IP "\fB\-\-change\-start\fR \fIincr\fR" 4
.IX Item "--change-start incr"
.PD 0
.IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4
.IX Item "--adjust-start incr"
.PD
Change the start address by adding \fIincr\fR.  Not all object file
formats support setting the start address.
.IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4
.IX Item "--change-addresses incr"
.PD 0
.IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4
.IX Item "--adjust-vma incr"
.PD
Change the \s-1VMA\s0 and \s-1LMA\s0 addresses of all sections, as well as the start
address, by adding \fIincr\fR.  Some object file formats do not permit
section addresses to be changed arbitrarily.  Note that this does not
relocate the sections; if the program expects sections to be loaded at a
certain address, and this option is used to change the sections such
that they are loaded at a different address, the program may fail.
.IP "\fB\-\-change\-section\-address\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--change-section-address section{=,+,-}val"
.PD 0
.IP "\fB\-\-adjust\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--adjust-section-vma section{=,+,-}val"
.PD
Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of the named
\&\fIsection\fR.  If \fB=\fR is used, the section address is set to
\&\fIval\fR.  Otherwise, \fIval\fR is added to or subtracted from the
section address.  See the comments under \fB\-\-change\-addresses\fR,
above. If \fIsection\fR does not exist in the input file, a warning will
be issued, unless \fB\-\-no\-change\-warnings\fR is used.
.IP "\fB\-\-change\-section\-lma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--change-section-lma section{=,+,-}val"
Set or change the \s-1LMA\s0 address of the named \fIsection\fR.  The \s-1LMA\s0
address is the address where the section will be loaded into memory at
program load time.  Normally this is the same as the \s-1VMA\s0 address, which
is the address of the section at program run time, but on some systems,
especially those where a program is held in \s-1ROM\s0, the two can be
different.  If \fB=\fR is used, the section address is set to
\&\fIval\fR.  Otherwise, \fIval\fR is added to or subtracted from the
section address.  See the comments under \fB\-\-change\-addresses\fR,
above.  If \fIsection\fR does not exist in the input file, a warning
will be issued, unless \fB\-\-no\-change\-warnings\fR is used.
.IP "\fB\-\-change\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--change-section-vma section{=,+,-}val"
Set or change the \s-1VMA\s0 address of the named \fIsection\fR.  The \s-1VMA\s0
address is the address where the section will be located once the
program has started executing.  Normally this is the same as the \s-1LMA\s0
address, which is the address where the section will be loaded into
memory, but on some systems, especially those where a program is held in
\&\s-1ROM\s0, the two can be different.  If \fB=\fR is used, the section address
is set to \fIval\fR.  Otherwise, \fIval\fR is added to or subtracted
from the section address.  See the comments under
\&\fB\-\-change\-addresses\fR, above.  If \fIsection\fR does not exist in
the input file, a warning will be issued, unless
\&\fB\-\-no\-change\-warnings\fR is used.
.IP "\fB\-\-change\-warnings\fR" 4
.IX Item "--change-warnings"
.PD 0
.IP "\fB\-\-adjust\-warnings\fR" 4
.IX Item "--adjust-warnings"
.PD
If \fB\-\-change\-section\-address\fR or \fB\-\-change\-section\-lma\fR or
\&\fB\-\-change\-section\-vma\fR is used, and the named section does not
exist, issue a warning.  This is the default.
.IP "\fB\-\-no\-change\-warnings\fR" 4
.IX Item "--no-change-warnings"
.PD 0
.IP "\fB\-\-no\-adjust\-warnings\fR" 4
.IX Item "--no-adjust-warnings"
.PD
Do not issue a warning if \fB\-\-change\-section\-address\fR or
\&\fB\-\-adjust\-section\-lma\fR or \fB\-\-adjust\-section\-vma\fR is used, even
if the named section does not exist.
.IP "\fB\-\-set\-section\-flags\fR \fIsection\fR\fB=\fR\fIflags\fR" 4
.IX Item "--set-section-flags section=flags"
Set the flags for the named section.  The \fIflags\fR argument is a
comma separated string of flag names.  The recognized names are
\&\fBalloc\fR, \fBcontents\fR, \fBload\fR, \fBnoload\fR,
\&\fBreadonly\fR, \fBcode\fR, \fBdata\fR, \fBrom\fR, \fBshare\fR, and
\&\fBdebug\fR.  You can set the \fBcontents\fR flag for a section which
does not have contents, but it is not meaningful to clear the
\&\fBcontents\fR flag of a section which does have contents\*(--just remove
the section instead.  Not all flags are meaningful for all object file
formats.
.IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
.IX Item "--add-section sectionname=filename"
Add a new section named \fIsectionname\fR while copying the file.  The
contents of the new section are taken from the file \fIfilename\fR.  The
size of the section will be the size of the file.  This option only
works on file formats which can support sections with arbitrary names.
.IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
.IX Item "--rename-section oldname=newname[,flags]"
Rename a section from \fIoldname\fR to \fInewname\fR, optionally
changing the section's flags to \fIflags\fR in the process.  This has
the advantage over usng a linker script to perform the rename in that
the output stays as an object file and does not become a linked
executable.
.Sp
This option is particularly helpful when the input format is binary,
since this will always create a section called .data.  If for example,
you wanted instead to create a section called .rodata containing binary
data you could use the following command line to achieve it:
.Sp
.Vb 3
\&          objcopy \-I binary \-O <output_format> \-B <architecture> \e
\&           \-\-rename\-section .data=.rodata,alloc,load,readonly,data,contents \e
\&           <input_binary_file> <output_object_file>
.Ve
.IP "\fB\-\-long\-section\-names {enable,disable,keep}\fR" 4
.IX Item "--long-section-names {enable,disable,keep}"
Controls the handling of long section names when processing \f(CW\*(C`COFF\*(C'\fR
and \f(CW\*(C`PE\-COFF\*(C'\fR object formats.  The default behaviour, \fBkeep\fR,
is to preserve long section names if any are present in the input file.
The \fBenable\fR and \fBdisable\fR options forcibly enable or disable
the use of long section names in the output object; when \fBdisable\fR
is in effect, any long section names in the input object will be truncated.
The \fBenable\fR option will only emit long section names if any are
present in the inputs; this is mostly the same as \fBkeep\fR, but it
is left undefined whether the \fBenable\fR option might force the
creation of an empty string table in the output file.
.IP "\fB\-\-change\-leading\-char\fR" 4
.IX Item "--change-leading-char"
Some object file formats use special characters at the start of
symbols.  The most common such character is underscore, which compilers
often add before every symbol.  This option tells \fBobjcopy\fR to
change the leading character of every symbol when it converts between
object file formats.  If the object file formats use the same leading
character, this option has no effect.  Otherwise, it will add a
character, or remove a character, or change a character, as
appropriate.
.IP "\fB\-\-remove\-leading\-char\fR" 4
.IX Item "--remove-leading-char"
If the first character of a global symbol is a special symbol leading
character used by the object file format, remove the character.  The
most common symbol leading character is underscore.  This option will
remove a leading underscore from all global symbols.  This can be useful
if you want to link together objects of different file formats with
different conventions for symbol names.  This is different from
\&\fB\-\-change\-leading\-char\fR because it always changes the symbol name
when appropriate, regardless of the object file format of the output
file.
.IP "\fB\-\-reverse\-bytes=\fR\fInum\fR" 4
.IX Item "--reverse-bytes=num"
Reverse the bytes in a section with output contents.  A section length must
be evenly divisible by the value given in order for the swap to be able to
take place. Reversing takes place before the interleaving is performed.
.Sp
This option is used typically in generating \s-1ROM\s0 images for problematic
target systems.  For example, on some target boards, the 32\-bit words
fetched from 8\-bit ROMs are re-assembled in little-endian byte order
regardless of the \s-1CPU\s0 byte order.  Depending on the programming model, the
endianness of the \s-1ROM\s0 may need to be modified.
.Sp
Consider a simple file with a section containing the following eight
bytes:  \f(CW12345678\fR.
.Sp
Using \fB\-\-reverse\-bytes=2\fR for the above example, the bytes in the
output file would be ordered \f(CW21436587\fR.
.Sp
Using \fB\-\-reverse\-bytes=4\fR for the above example, the bytes in the
output file would be ordered \f(CW43218765\fR.
.Sp
By using \fB\-\-reverse\-bytes=2\fR for the above example, followed by
\&\fB\-\-reverse\-bytes=4\fR on the output file, the bytes in the second
output file would be ordered \f(CW34127856\fR.
.IP "\fB\-\-srec\-len=\fR\fIival\fR" 4
.IX Item "--srec-len=ival"
Meaningful only for srec output.  Set the maximum length of the Srecords
being produced to \fIival\fR.  This length covers both address, data and
crc fields.
.IP "\fB\-\-srec\-forceS3\fR" 4
.IX Item "--srec-forceS3"
Meaningful only for srec output.  Avoid generation of S1/S2 records,
creating S3\-only record format.
.IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4
.IX Item "--redefine-sym old=new"
Change the name of a symbol \fIold\fR, to \fInew\fR.  This can be useful
when one is trying link two things together for which you have no
source, and there are name collisions.
.IP "\fB\-\-redefine\-syms=\fR\fIfilename\fR" 4
.IX Item "--redefine-syms=filename"
Apply \fB\-\-redefine\-sym\fR to each symbol pair "\fIold\fR \fInew\fR"
listed in the file \fIfilename\fR.  \fIfilename\fR is simply a flat file,
with one symbol pair per line.  Line comments may be introduced by the hash
character.  This option may be given more than once.
.IP "\fB\-\-weaken\fR" 4
.IX Item "--weaken"
Change all global symbols in the file to be weak.  This can be useful
when building an object which will be linked against other objects using
the \fB\-R\fR option to the linker.  This option is only effective when
using an object file format which supports weak symbols.
.IP "\fB\-\-keep\-symbols=\fR\fIfilename\fR" 4
.IX Item "--keep-symbols=filename"
Apply \fB\-\-keep\-symbol\fR option to each symbol listed in the file
\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
name per line.  Line comments may be introduced by the hash character.
This option may be given more than once.
.IP "\fB\-\-strip\-symbols=\fR\fIfilename\fR" 4
.IX Item "--strip-symbols=filename"
Apply \fB\-\-strip\-symbol\fR option to each symbol listed in the file
\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
name per line.  Line comments may be introduced by the hash character.
This option may be given more than once.
.IP "\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR" 4
.IX Item "--strip-unneeded-symbols=filename"
Apply \fB\-\-strip\-unneeded\-symbol\fR option to each symbol listed in
the file \fIfilename\fR.  \fIfilename\fR is simply a flat file, with one
symbol name per line.  Line comments may be introduced by the hash
character.  This option may be given more than once.
.IP "\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR" 4
.IX Item "--keep-global-symbols=filename"
Apply \fB\-\-keep\-global\-symbol\fR option to each symbol listed in the
file \fIfilename\fR.  \fIfilename\fR is simply a flat file, with one
symbol name per line.  Line comments may be introduced by the hash
character.  This option may be given more than once.
.IP "\fB\-\-localize\-symbols=\fR\fIfilename\fR" 4
.IX Item "--localize-symbols=filename"
Apply \fB\-\-localize\-symbol\fR option to each symbol listed in the file
\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
name per line.  Line comments may be introduced by the hash character.
This option may be given more than once.
.IP "\fB\-\-globalize\-symbols=\fR\fIfilename\fR" 4
.IX Item "--globalize-symbols=filename"
Apply \fB\-\-globalize\-symbol\fR option to each symbol listed in the file
\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
name per line.  Line comments may be introduced by the hash character.
This option may be given more than once.
.IP "\fB\-\-weaken\-symbols=\fR\fIfilename\fR" 4
.IX Item "--weaken-symbols=filename"
Apply \fB\-\-weaken\-symbol\fR option to each symbol listed in the file
\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
name per line.  Line comments may be introduced by the hash character.
This option may be given more than once.
.IP "\fB\-\-alt\-machine\-code=\fR\fIindex\fR" 4
.IX Item "--alt-machine-code=index"
If the output architecture has alternate machine codes, use the
\&\fIindex\fRth code instead of the default one.  This is useful in case
a machine is assigned an official code and the tool-chain adopts the
new code, but other applications still depend on the original code
being used.  For \s-1ELF\s0 based architectures if the \fIindex\fR
alternative does not exist then the value is treated as an absolute
number to be stored in the e_machine field of the \s-1ELF\s0 header.
.IP "\fB\-\-writable\-text\fR" 4
.IX Item "--writable-text"
Mark the output text as writable.  This option isn't meaningful for all
object file formats.
.IP "\fB\-\-readonly\-text\fR" 4
.IX Item "--readonly-text"
Make the output text write protected.  This option isn't meaningful for all
object file formats.
.IP "\fB\-\-pure\fR" 4
.IX Item "--pure"
Mark the output file as demand paged.  This option isn't meaningful for all
object file formats.
.IP "\fB\-\-impure\fR" 4
.IX Item "--impure"
Mark the output file as impure.  This option isn't meaningful for all
object file formats.
.IP "\fB\-\-prefix\-symbols=\fR\fIstring\fR" 4
.IX Item "--prefix-symbols=string"
Prefix all symbols in the output file with \fIstring\fR.
.IP "\fB\-\-prefix\-sections=\fR\fIstring\fR" 4
.IX Item "--prefix-sections=string"
Prefix all section names in the output file with \fIstring\fR.
.IP "\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR" 4
.IX Item "--prefix-alloc-sections=string"
Prefix all the names of all allocated sections in the output file with
\&\fIstring\fR.
.IP "\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR" 4
.IX Item "--add-gnu-debuglink=path-to-file"
Creates a .gnu_debuglink section which contains a reference to \fIpath-to-file\fR
and adds it to the output file.
.IP "\fB\-\-keep\-file\-symbols\fR" 4
.IX Item "--keep-file-symbols"
When stripping a file, perhaps with \fB\-\-strip\-debug\fR or
\&\fB\-\-strip\-unneeded\fR, retain any symbols specifying source file names,
which would otherwise get stripped.
.IP "\fB\-\-only\-keep\-debug\fR" 4
.IX Item "--only-keep-debug"
Strip a file, removing contents of any sections that would not be
stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
intact.  In \s-1ELF\s0 files, this preserves all note sections in the output.
.Sp
The intention is that this option will be used in conjunction with
\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable.  One a
stripped binary which will occupy less space in \s-1RAM\s0 and in a
distribution and the second a debugging information file which is only
needed if debugging abilities are required.  The suggested procedure
to create these files is as follows:
.RS 4
.IP "1.<Link the executable as normal.  Assuming that is is called>" 4
.IX Item "1.<Link the executable as normal.  Assuming that is is called>"
\&\f(CW\*(C`foo\*(C'\fR then...
.ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
.el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
.IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
create a file containing the debugging info.
.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
.IX Item "1.<Run objcopy --strip-debug foo to create a>"
stripped executable.
.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
to add a link to the debugging info into the stripped executable.
.RE
.RS 4
.Sp
Note\-\-\-the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
file is arbitrary.  Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
optional.  You could instead do this:
.IP "1.<Link the executable as normal.>" 4
.IX Item "1.<Link the executable as normal.>"
.PD 0
.ie n .IP "1.<Copy ""foo"" to  ""foo.full"">" 4
.el .IP "1.<Copy \f(CWfoo\fR to  \f(CWfoo.full\fR>" 4
.IX Item "1.<Copy foo to  foo.full>"
.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"">" 4
.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR>" 4
.IX Item "1.<Run objcopy --strip-debug foo>"
.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
.RE
.RS 4
.PD
.Sp
i.e., the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
full executable.  It does not have to be a file created by the
\&\fB\-\-only\-keep\-debug\fR switch.
.Sp
Note\-\-\-this switch is only intended for use on fully linked files.  It
does not make sense to use it on object files where the debugging
information may be incomplete.  Besides the gnu_debuglink feature
currently only supports the presence of one filename containing
debugging information, not multiple filenames on a one-per-object-file
basis.
.RE
.IP "\fB\-\-strip\-dwo\fR" 4
.IX Item "--strip-dwo"
Remove the contents of all \s-1DWARF\s0 .dwo sections, leaving the
remaining debugging sections and all symbols intact.
This option is intended for use by the compiler as part of
the \fB\-gsplit\-dwarf\fR option, which splits debug information
between the .o file and a separate .dwo file.  The compiler
generates all debug information in the same file, then uses
the \fB\-\-extract\-dwo\fR option to copy the .dwo sections to
the .dwo file, then the \fB\-\-strip\-dwo\fR option to remove
those sections from the original .o file.
.IP "\fB\-\-extract\-dwo\fR" 4
.IX Item "--extract-dwo"
Extract the contents of all \s-1DWARF\s0 .dwo sections.  See the
\&\fB\-\-strip\-dwo\fR option for more information.
.IP "\fB\-\-file\-alignment\fR \fInum\fR" 4
.IX Item "--file-alignment num"
Specify the file alignment.  Sections in the file will always begin at
file offsets which are multiples of this number.  This defaults to
512.
[This option is specific to \s-1PE\s0 targets.]
.IP "\fB\-\-heap\fR \fIreserve\fR" 4
.IX Item "--heap reserve"
.PD 0
.IP "\fB\-\-heap\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4
.IX Item "--heap reserve,commit"
.PD
Specify the number of bytes of memory to reserve (and optionally commit)
to be used as heap for this program.
[This option is specific to \s-1PE\s0 targets.]
.IP "\fB\-\-image\-base\fR \fIvalue\fR" 4
.IX Item "--image-base value"
Use \fIvalue\fR as the base address of your program or dll.  This is
the lowest memory location that will be used when your program or dll
is loaded.  To reduce the need to relocate and improve performance of
your dlls, each should have a unique base address and not overlap any
other dlls.  The default is 0x400000 for executables, and 0x10000000
for dlls.
[This option is specific to \s-1PE\s0 targets.]
.IP "\fB\-\-section\-alignment\fR \fInum\fR" 4
.IX Item "--section-alignment num"
Sets the section alignment.  Sections in memory will always begin at
addresses which are a multiple of this number.  Defaults to 0x1000.
[This option is specific to \s-1PE\s0 targets.]
.IP "\fB\-\-stack\fR \fIreserve\fR" 4
.IX Item "--stack reserve"
.PD 0
.IP "\fB\-\-stack\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4
.IX Item "--stack reserve,commit"
.PD
Specify the number of bytes of memory to reserve (and optionally commit)
to be used as stack for this program.
[This option is specific to \s-1PE\s0 targets.]
.IP "\fB\-\-subsystem\fR \fIwhich\fR" 4
.IX Item "--subsystem which"
.PD 0
.IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR" 4
.IX Item "--subsystem which:major"
.IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR\fB.\fR\fIminor\fR" 4
.IX Item "--subsystem which:major.minor"
.PD
Specifies the subsystem under which your program will execute.  The
legal values for \fIwhich\fR are \f(CW\*(C`native\*(C'\fR, \f(CW\*(C`windows\*(C'\fR,
\&\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,
\&\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
the subsystem version also.  Numeric values are also accepted for
\&\fIwhich\fR.
[This option is specific to \s-1PE\s0 targets.]
.IP "\fB\-\-extract\-symbol\fR" 4
.IX Item "--extract-symbol"
Keep the file's section flags and symbols but remove all section data.
Specifically, the option:
.RS 4
.IP "*<removes the contents of all sections;>" 4
.IX Item "*<removes the contents of all sections;>"
.PD 0
.IP "*<sets the size of every section to zero; and>" 4
.IX Item "*<sets the size of every section to zero; and>"
.IP "*<sets the file's start address to zero.>" 4
.IX Item "*<sets the file's start address to zero.>"
.RE
.RS 4
.PD
.Sp
This option is used to build a \fI.sym\fR file for a VxWorks kernel.
It can also be a useful way of reducing the size of a \fB\-\-just\-symbols\fR
linker input file.
.RE
.IP "\fB\-\-compress\-debug\-sections\fR" 4
.IX Item "--compress-debug-sections"
Compress \s-1DWARF\s0 debug sections using zlib.
.IP "\fB\-\-decompress\-debug\-sections\fR" 4
.IX Item "--decompress-debug-sections"
Decompress \s-1DWARF\s0 debug sections using zlib.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Show the version number of \fBobjcopy\fR.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-verbose\fR" 4
.IX Item "--verbose"
.PD
Verbose output: list all object files modified.  In the case of
archives, \fBobjcopy \-V\fR lists all members of the archive.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Show a summary of the options to \fBobjcopy\fR.
.IP "\fB\-\-info\fR" 4
.IX Item "--info"
Display a list showing all architectures and object formats available.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR.  The options read are
inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace.  A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes.  Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash.  The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
