.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.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\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.\"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.\"
.\" 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 "2006-06-23" "binutils-2.17" "GNU Development Tools"
.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\-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 \fIinterleave\fR|\fB\-\-interleave=\fR\fIinterleave\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\-\-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\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\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\-\-writable\-text\fR]
        [\fB\-\-readonly\-text\fR]
        [\fB\-\-pure\fR]
        [\fB\-\-impure\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).
.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 raw binary 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\-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
Keep only every \fIbyte\fRth byte of the input file (header data is not
affected).  \fIbyte\fR can be in the range from 0 to \fIinterleave\fR\-1,
where \fIinterleave\fR is given by the \fB\-i\fR or \fB\-\-interleave\fR
option, or the default of 4.  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.
.IP "\fB\-i\fR \fIinterleave\fR" 4
.IX Item "-i interleave"
.PD 0
.IP "\fB\-\-interleave=\fR\fIinterleave\fR" 4
.IX Item "--interleave=interleave"
.PD
Only copy one out of every \fIinterleave\fR bytes.  Select which byte to
copy with the \fB\-b\fR or \fB\-\-byte\fR option.  The default is 4.
\&\fBobjcopy\fR ignores this option if you do not specify either \fB\-b\fR or
\&\fB\-\-byte\fR.
.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\-\-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\-\-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\-\-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.
.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""\fR to  \f(CW""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.
.RE
.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 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.1
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".
