.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" 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" ''
.    ds C`
.    ds C'
'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.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" 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 "2016-06-29" "binutils-2.26.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 \fIsectionpattern\fR|\fB\-\-only\-section=\fR\fIsectionpattern\fR]
        [\fB\-R\fR \fIsectionpattern\fR|\fB\-\-remove\-section=\fR\fIsectionpattern\fR]
        [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
        [\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR]
        [\fB\-U\fR|\fB\-\-disable\-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 \fIsectionpattern\fR{=,+,\-}\fIval\fR]
        [\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR]
        [\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR]
        [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR]
        [\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR=\fIflags\fR]
        [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
        [\fB\-\-dump\-section\fR \fIsectionname\fR=\fIfilename\fR]
        [\fB\-\-update\-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\-\-add\-symbol\fR \fIname\fR=[\fIsection\fR:]\fIvalue\fR[,\fIflags\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 BFD\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 \fIsectionpattern\fR" 4
.IX Item "-j sectionpattern"
.PD 0
.IP "\fB\-\-only\-section=\fR\fIsectionpattern\fR" 4
.IX Item "--only-section=sectionpattern"
.PD
Copy only the indicated sections 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.  Wildcard
characters are accepted in \fIsectionpattern\fR.
.IP "\fB\-R\fR \fIsectionpattern\fR" 4
.IX Item "-R sectionpattern"
.PD 0
.IP "\fB\-\-remove\-section=\fR\fIsectionpattern\fR" 4
.IX Item "--remove-section=sectionpattern"
.PD
Remove any section matching \fIsectionpattern\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.  Wildcard
characters are accepted in \fIsectionpattern\fR.  Using both the
\&\fB\-j\fR and \fB\-R\fR options together results in undefined
behaviour.
.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.
.Sp
If \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
It can be disabled with the \fB\-U\fR option, below.
.IP "\fB\-U\fR" 4
.IX Item "-U"
.PD 0
.IP "\fB\-\-disable\-deterministic\-archives\fR" 4
.IX Item "--disable-deterministic-archives"
.PD
Do \fInot\fR operate in \fIdeterministic\fR mode.  This is the
inverse of the \fB\-D\fR option, above: when copying archive members
and writing the archive index, use their actual \s-1UID, GID,\s0 timestamp,
and file mode values.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.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 \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--change-section-address sectionpattern{=,+,-}val"
.PD 0
.IP "\fB\-\-adjust\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--adjust-section-vma sectionpattern{=,+,-}val"
.PD
Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of any section
matching \fIsectionpattern\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 \fIsectionpattern\fR does not
match any sections in the input file, a warning will be issued, unless
\&\fB\-\-no\-change\-warnings\fR is used.
.IP "\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--change-section-lma sectionpattern{=,+,-}val"
Set or change the \s-1LMA\s0 address of any sections matching
\&\fIsectionpattern\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
\&\fIsectionpattern\fR does not match any sections in the input file, a
warning will be issued, unless \fB\-\-no\-change\-warnings\fR is used.
.IP "\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
.IX Item "--change-section-vma sectionpattern{=,+,-}val"
Set or change the \s-1VMA\s0 address of any section matching
\&\fIsectionpattern\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 \fIsectionpattern\fR does not match any sections 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 section pattern does not
match any sections, 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 section pattern does not match any sections.
.IP "\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR\fB=\fR\fIflags\fR" 4
.IX Item "--set-section-flags sectionpattern=flags"
Set the flags for any sections matching \fIsectionpattern\fR.  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.
Note \- it may be necessary to use the \fB\-\-set\-section\-flags\fR
option to set the attributes of the newly created section.
.IP "\fB\-\-dump\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
.IX Item "--dump-section sectionname=filename"
Place the contents of section named \fIsectionname\fR into the file
\&\fIfilename\fR, overwriting any contents that may have been there
previously.  This option is the inverse of \fB\-\-add\-section\fR.
This option is similar to the \fB\-\-only\-section\fR option except
that it does not create a formatted file, it just dumps the contents
as raw binary data, without applying any relocations.  The option can
be specified more than once.
.IP "\fB\-\-update\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
.IX Item "--update-section sectionname=filename"
Replace the existing contents of a section named \fIsectionname\fR
with the contents of file \fIfilename\fR.  The size of the section
will be adjusted to the size of the file.  The section flags for
\&\fIsectionname\fR will be unchanged.  For \s-1ELF\s0 format files the section
to segment mapping will also remain unchanged, something which is not
possible using \fB\-\-remove\-section\fR followed by
\&\fB\-\-add\-section\fR.  The option can be specified more than once.
.Sp
Note \- it is possible to use \fB\-\-rename\-section\fR and
\&\fB\-\-update\-section\fR to both update and rename a section from one
command line.  In this case, pass the original section name to
\&\fB\-\-update\-section\fR, and the original and new section names to
\&\fB\-\-rename\-section\fR.
.IP "\fB\-\-add\-symbol\fR \fIname\fR\fB=[\fR\fIsection\fR\fB:]\fR\fIvalue\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
.IX Item "--add-symbol name=[section:]value[,flags]"
Add a new symbol named \fIname\fR while copying the file.  This option may be
specified multiple times.  If the \fIsection\fR is given, the symbol will be
associated with and relative to that section, otherwise it will be an \s-1ABS\s0
symbol.  Specifying an undefined section will result in a fatal error.  There
is no check for the value, it will be taken as specified.  Symbol flags can
be specified and not all flags will be meaningful for all object file
formats.  By default, the symbol will be global.  The special flag
\&'before=\fIothersym\fR' will insert the new symbol in front of the specified
\&\fIothersym\fR, otherwise the symbol(s) will be added at the end of the
symbol table in the order they appear.
.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.  Note: the file at
\&\fIpath-to-file\fR must exist.  Part of the process of adding the
\&.gnu_debuglink section involves embedding a checksum of the contents
of the debug info file into the section.
.Sp
If the debug info file is built in one location but it is going to be
installed at a later time into a different location then do not use
the path to the installed location.  The \fB\-\-add\-gnu\-debuglink\fR
option will fail because the installed file does not exist yet.
Instead put the debug info file in the current directory and use the
\&\fB\-\-add\-gnu\-debuglink\fR option without any directory components,
like this:
.Sp
.Vb 1
\&         objcopy \-\-add\-gnu\-debuglink=foo.debug
.Ve
.Sp
At debug time the debugger will attempt to look for the separate debug
info file in a set of known locations.  The exact set of these
locations varies depending upon the distribution being used, but it
typically includes:
.RS 4
.ie n .IP """* The same directory as the executable.""" 4
.el .IP "\f(CW* The same directory as the executable.\fR" 4
.IX Item "* The same directory as the executable."
.PD 0
.ie n .IP """* A sub\-directory of the directory containing the executable""" 4
.el .IP "\f(CW* A sub\-directory of the directory containing the executable\fR" 4
.IX Item "* A sub-directory of the directory containing the executable"
.PD
called .debug
.ie n .IP """* A global debug directory such as /usr/lib/debug.""" 4
.el .IP "\f(CW* A global debug directory such as /usr/lib/debug.\fR" 4
.IX Item "* A global debug directory such as /usr/lib/debug."
.RE
.RS 4
.Sp
As long as the debug info file has been installed into one of these
locations before the debugger is run everything should work
correctly.
.RE
.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
Note \- the section headers of the stripped sections are preserved,
including their sizes, but the contents of the section are discarded.
The section headers are preserved so that other tools can match up the
debuginfo file with the real executable, even if that executable has
been relocated to a different address space.
.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 with \s-1SHF_COMPRESSED\s0 from the
\&\s-1ELF ABI. \s0 Note \- if compression would actually make a section
\&\fIlarger\fR, then it is not compressed.
.IP "\fB\-\-compress\-debug\-sections=none\fR" 4
.IX Item "--compress-debug-sections=none"
.PD 0
.IP "\fB\-\-compress\-debug\-sections=zlib\fR" 4
.IX Item "--compress-debug-sections=zlib"
.IP "\fB\-\-compress\-debug\-sections=zlib\-gnu\fR" 4
.IX Item "--compress-debug-sections=zlib-gnu"
.IP "\fB\-\-compress\-debug\-sections=zlib\-gabi\fR" 4
.IX Item "--compress-debug-sections=zlib-gabi"
.PD
For \s-1ELF\s0 files, these options control how \s-1DWARF\s0 debug sections are
compressed.  \fB\-\-compress\-debug\-sections=none\fR is equivalent
to \fB\-\-decompress\-debug\-sections\fR.
\&\fB\-\-compress\-debug\-sections=zlib\fR and
\&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR are equivalent to
\&\fB\-\-compress\-debug\-sections\fR.
\&\fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses \s-1DWARF\s0 debug
sections using zlib.  The debug sections are renamed to begin with
\&\fB.zdebug\fR instead of \fB.debug\fR.  Note \- if compression would
actually make a section \fIlarger\fR, then it is not compressed nor
renamed.
.IP "\fB\-\-decompress\-debug\-sections\fR" 4
.IX Item "--decompress-debug-sections"
Decompress \s-1DWARF\s0 debug sections using zlib.  The original section
names of the compressed sections are restored.
.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\-2015 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".
