Add a flag to asection, linker_has_input, and use it to reliably
[deliverable/binutils-gdb.git] / binutils / objcopy.1
index dd5cf68be54618a909c59c7b63c638c1b46b3c1b..2e52d08c6735df5111266c2ad2dd2c05d8a975ea 100644 (file)
-.\" Copyright (c) 1991, 93, 94, 95, 96, 1997 Free Software Foundation
-.\" See section COPYING for conditions for redistribution
-.TH objcopy 1 "October 1994" "cygnus support" "GNU Development Tools"
-.de BP
-.sp
-.ti \-.2i
-\(**
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+''' Revision 1.10  2001/03/25 20:32:25  nickc
+''' Automate generate on man pages
+'''
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
 ..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
 
-.SH NAME
+.fi
+..
+'''
+'''
+'''     Set up \*(-- to give an unbreakable dash;
+'''     string Tr holds user defined translation string.
+'''     Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.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" ""
+'''   \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+'''   \*(L" and \*(R", except that they are used on ".xx" lines,
+'''   such as .IP and .SH, which do another additional levels of
+'''   double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\"    If the F register is turned on, we'll generate
+.\"    index entries out stderr for the following things:
+.\"            TH      Title 
+.\"            SH      Header
+.\"            Sh      Subsection 
+.\"            Ip      Item
+.\"            X<>     Xref  (embedded
+.\"    Of course, you have to process the output yourself
+.\"    in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH OBJCOPY.1 1 "binutils-2.11.90" "23/Mar/101" "GNU"
+.UC
+.if n .hy 0
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ          \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+.      \" AM - accent mark definitions
+.bd B 3
+.      \" 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 ? ?
+.      ds ! !
+.      ds /
+.      ds q
+.\}
+.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 ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+.      ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+.      ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.      ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+.      \" 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 v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.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
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'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 v \h'-1'\o'\(aa\(ga'
+.      ds _ \h'-1'^
+.      ds . \h'-1'.
+.      ds 3 3
+.      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
+.      ds oe oe
+.      ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
 objcopy \- copy and translate object files
-
-.SH SYNOPSIS
-.hy 0
-.na
-.TP
-.B objcopy
-.RB "[\|" \-F\ \fIbfdname\fR\ |\ \fB\-\-target=\fIbfdname\fR "\|]" 
-.RB "[\|" \-I\ \fIbfdname\fR\ |\ \fB\-\-input\-target=\fIbfdname\fR "\|]" 
-.RB "[\|" \-O\ \fIbfdname\fR\ |\ \fB\-\-output\-target=\fIbfdname\fR "\|]" 
-.RB "[\|" \-R\ \fIsectionname\fR\ |\ \fB\-\-remove\-section=\fIsectionname\fR "\|]"
-.RB "[\|" \-S\fR\ |\ \fB\-\-strip\-all\fR "\|]" 
-.RB "[\|" \-g\fR\ |\ \fB\-\-strip\-debug\fR "\|]" 
-.RB "[\|" \-\-strip\-unneeded\fR "\|]" 
-.RB "[\|" \-K\ \fIsymbolname\fR\ |\ \fB\-\-keep\-symbol=\fIsymbolname\fR "\|]" 
-.RB "[\|" \-N\ \fIsymbolname\fR\ |\ \fB\-\-strip\-symbol=\fIsymbolname\fR "\|]" 
-.RB "[\|" \-P\ \fIsymbolname\fR\ |\ \fB\-\-privatize\-symbol=\fIsymbolname\fR "\|]" 
-.RB "[\|" \-W\ \fIsymbolname\fR\ |\ \fB\-\-weaken\-symbol=\fIsymbolname\fR "\|]" 
-.RB "[\|" \-x\fR\ |\ \fB\-\-discard\-all\fR "\|]" 
-.RB "[\|" \-X\fR\ |\ \fB\-\-discard\-locals\fR "\|]" 
-.RB "[\|" \-b\ \fIbyte\fR\ |\ \fB\-\-byte=\fIbyte\fR "\|]" 
-.RB "[\|" \-i\ \fIinterleave\fR\ |\ \fB\-\-interleave=\fIinterleave\fR "\|]" 
-.RB "[\|" \-p\fR\ |\ \fB\-\-preserve\-dates\fR "\|]" 
-.RB "[\|" \-\-debugging "\|]"
-.RB "[\|" \-\-gap\-fill=\fIval\fR "\|]"
-.RB "[\|" \-\-pad\-to=\fIaddress\fR "\|]"
-.RB "[\|" \-\-set\-start=\fIval\fR "\|]"
-.RB "[\|" \-\-adjust\-start=\fIincr\fR "\|]"
-.RB "[\|" \-\-adjust\-vma=\fIincr\fR "\|]"
-.RB "[\|" \-\-adjust\-section\-vma=\fIsection{=,+,-}val\fR "\|]"
-.RB "[\|" \-\-adjust\-warnings\fR "\|]"
-.RB "[\|" \-\-no\-adjust\-warnings\fR "\|]"
-.RB "[\|" \-\-set\-section\-flags=\fIsection=flags\fR "\|]"
-.RB "[\|" \-\-add\-section=\fIsectionname=filename\fR "\|]"
-.RB "[\|" \-\-change\-leading\-char\fR "\|]"
-.RB "[\|" \-\-remove\-leading\-char\fR "\|]"
-.RB "[\|" \-\-weaken\fR "\|]"
-.RB "[\|" \-v\ |\ \-\-verbose\fR "\|]" 
-.RB "[\|" \-V\ |\ \-\-version\fR "\|]" 
-.RB "[\|" \-\-help\fR "\|]" 
-.B infile
-.RB "[\|" outfile\fR "\|]" 
-.SH DESCRIPTION
-The GNU 
-.B objcopy
-utility copies the contents of an object file to another.  
-.B objcopy 
-uses the GNU BFD 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 
-.B objcopy
-is controlled by command-line options.
+.SH "SYNOPSIS"
+objcopy [ \-F \fIbfdname\fR | --target=\fIbfdname\fR ]
+        [ \-I \fIbfdname\fR | --input-target=\fIbfdname\fR ]
+        [ \-O \fIbfdname\fR | --output-target=\fIbfdname\fR ]
+        [ \-B \fIbfdarch\fR | --binary-architecture=\fIbfdarch\fR ]
+        [ \-S | --strip-all ]  [ \-g | --strip-debug ]
+        [ \-K \fIsymbolname\fR | --keep-symbol=\fIsymbolname\fR ]
+        [ \-N \fIsymbolname\fR | --strip-symbol=\fIsymbolname\fR ]
+        [ \-L \fIsymbolname\fR | --localize-symbol=\fIsymbolname\fR ]
+        [ \-W \fIsymbolname\fR | --weaken-symbol=\fIsymbolname\fR ]
+        [ \-x | --discard-all ]  [ \-X | --discard-locals ]
+        [ \-b \fIbyte\fR | --byte=\fIbyte\fR ]
+        [ \-i \fIinterleave\fR | --interleave=\fIinterleave\fR ]
+        [ \-j \fIsectionname\fR | --only-section=\fIsectionname\fR ]
+        [ \-R \fIsectionname\fR | --remove-section=\fIsectionname\fR ]
+        [ \-p | --preserve-dates ] [ --debugging ]
+        [ --gap-fill=\fIval\fR ] [ --pad-to=\fIaddress\fR ]
+        [ --set-start=\fIval\fR ] [ --adjust-start=\fIincr\fR ]
+        [ --change-addresses=\fIincr\fR ]
+        [ --change-section-address \fIsection\fR{=,+,\-}\fIval\fR ]
+        [ --change-section-lma \fIsection\fR{=,+,\-}\fIval\fR ]
+        [ --change-section-vma \fIsection\fR{=,+,\-}\fIval\fR ]
+        [ --change-warnings ] [ --no-change-warnings ]
+        [ --set-section-flags \fIsection\fR=\fIflags\fR ]
+        [ --add-section \fIsectionname\fR=\fIfilename\fR ]
+        [ --change-leading-char ] [ --remove-leading-char ]
+        [ --srec-len=\fIival\fR ] [ --srec-forceS3 ]
+        [ --redefine-sym \fIold\fR=\fInew\fR ] [ --weaken ]
+        [ \-v | --verbose ] [ \-V | --version ]  [ --help ]
+        \fIinfile\fR [\fIoutfile\fR]
+.SH "DESCRIPTION"
+The GNU \f(CWobjcopy\fR utility copies the contents of an object
+file to another.  \f(CWobjcopy\fR uses the GNU BFD 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 \f(CWobjcopy\fR is controlled by command-line options.
+Note that \f(CWobjcopy\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
-.B objcopy
-creates temporary files to do its translations and deletes them
-afterward.
-.B objcopy
-uses BFD to do all its translation work; it knows about all the
-formats BFD knows about, and thus is able to recognize most formats
-without being told explicitly.
+\f(CWobjcopy\fR creates temporary files to do its translations and
+deletes them afterward.  \f(CWobjcopy\fR uses BFD to do all its
+translation work; it has access to all the formats described in BFD
+and thus is able to recognize most formats without being told
+explicitly.  
 .PP
-.B objcopy
-can be used to generate S-records by using an output target of
-.B srec
-(e.g., use
-.B -O srec).
+\f(CWobjcopy\fR can be used to generate S\-records by using an output
+target of \fBsrec\fR (e.g., use \fB\-O srec\fR).
 .PP
-.B objcopy
-can be used to generate a raw binary file by using an output target of
-.B binary
-(e.g., use
-.B -O binary).
-When
-.B objcopy
-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
-virtual address of the lowest section copied into the output file.
+\f(CWobjcopy\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
+\f(CWobjcopy\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
-.B -S
-to remove sections containing debugging information.  In some cases
-.B -R
-will be useful to remove sections which contain information which is
-not needed by the binary file.
+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
-.I infile
-and
-.I outfile
-are the source and output files respectively.  If you do not specify
-.IR outfile ,
-.B objcopy
-creates a temporary file and destructively renames the result with the
-name of the input file.
-
-.SH OPTIONS
-.TP
-.B \-I \fIbfdname\fR, \fB\-\-input\-target=\fIbfdname
-Consider the source file's object format to be 
-.IR bfdname ,
-rather than attempting to deduce it.
-.TP
-.B \-O \fIbfdname\fR, \fB\-\-output\-target=\fIbfdname
-Write the output file using the object format 
-.IR bfdname .
-.TP
-.B \-F \fIbfdname\fR, \fB\-\-target=\fIbfdname
-Use 
-.I bfdname
-as the object format for both the input and the output file; i.e.
-simply transfer data from source to destination with no translation.
-.TP
-.B \-R \fIsectionname\fR, \fB\-\-remove-section=\fIsectionname
-Remove the named section from the file.  This option may be given more
-than once.  Note that using this option inappropriately may make the
-output file unusable.
-.TP
-.B \-S\fR, \fB\-\-strip\-all
+Note \- \f(CWobjcopy\fR is not able to change the endianness of its input
+files.  If the input format has an endianness, (some formats do not),
+\f(CWobjcopy\fR can only copy the inputs into file formats that have the
+same endianness or which have no endianness (eg \fBsrec\fR).
+.SH "OPTIONS"
+.Ip "\f(CW\fIinfile\fR\fR" 4
+.Ip "\f(CW\fIoutfile\fR\fR" 4
+The input and output files, respectively.
+If you do not specify \fIoutfile\fR, \f(CWobjcopy\fR creates a
+temporary file and destructively renames the result with
+the name of \fIinfile\fR.
+.Ip "\f(CW-I \fIbfdname\fR     \fR" 4
+.Ip "\f(CW--input-target=\fIbfdname\fR\fR" 4
+Consider the source file's object format to be \fIbfdname\fR, rather than
+attempting to deduce it.  
+.Ip "\f(CW-O \fIbfdname\fR\fR" 4
+.Ip "\f(CW--output-target=\fIbfdname\fR\fR" 4
+Write the output file using the object format \fIbfdname\fR.
+.Ip "\f(CW-F \fIbfdname\fR\fR" 4
+.Ip "\f(CW--target=\fIbfdname\fR\fR" 4
+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 "\f(CW-B \fIbfdarch\fR\fR" 4
+.Ip "\f(CW--binary-architecture=\fIbfdarch\fR\fR" 4
+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 "\f(CW-j \fIsectionname\fR\fR" 4
+.Ip "\f(CW--only-section=\fIsectionname\fR\fR" 4
+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 "\f(CW-R \fIsectionname\fR\fR" 4
+.Ip "\f(CW--remove-section=\fIsectionname\fR\fR" 4
+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 "\f(CW-S\fR" 4
+.Ip "\f(CW--strip-all\fR" 4
 Do not copy relocation and symbol information from the source file.
-.TP
-.B \-g\fR, \fB\-\-strip\-debug
+.Ip "\f(CW-g\fR" 4
+.Ip "\f(CW--strip-debug\fR" 4
 Do not copy debugging symbols from the source file.
-.TP
-.B \-\-strip\-unneeded
+.Ip "\f(CW--strip-unneeded\fR" 4
 Strip all symbols that are not needed for relocation processing.
-.TP
-.B \-K \fIsymbolname\fR, \fB\-\-keep\-symbol=\fIsymbolname
-Copy only symbol \fIsymbolname\fP from the source file. This option
+.Ip "\f(CW-K \fIsymbolname\fR\fR" 4
+.Ip "\f(CW--keep-symbol=\fIsymbolname\fR\fR" 4
+Copy only symbol \fIsymbolname\fR from the source file.  This option may
+be given more than once.
+.Ip "\f(CW-N \fIsymbolname\fR\fR" 4
+.Ip "\f(CW--strip-symbol=\fIsymbolname\fR\fR" 4
+Do not copy symbol \fIsymbolname\fR from the source file.  This option
 may be given more than once.
-.TP
-.B \-N \fIsymbolname\fR, \fB\-\-strip\-symbol=\fIsymbolname
-Do not copy symbol \fIsymbolname\fP from the source file. This option
-may be given more than once.
-.TP
-.B \-P \fIsymbolname\fR, \fB\-\-privatize\-symbol=\fIsymbolname
-Make symbol \fIsymbolname\fP local to the file, so that it is not
+.Ip "\f(CW-L \fIsymbolname\fR\fR" 4
+.Ip "\f(CW--localize-symbol=\fIsymbolname\fR\fR" 4
+Make symbol \fIsymbolname\fR local to the file, so that it is not
 visible externally.  This option may be given more than once.
-.TP
-.B \-W \fIsymbolname\fR, \fB\-\-weaken\-symbol=\fIsymbolname
-Make symbol \fIsymbolname\fP weak. This option may be given more than once.
-.TP
-.B \-x\fR, \fB \-\-discard\-all
+.Ip "\f(CW-W \fIsymbolname\fR\fR" 4
+.Ip "\f(CW--weaken-symbol=\fIsymbolname\fR\fR" 4
+Make symbol \fIsymbolname\fR weak. This option may be given more than once.
+.Ip "\f(CW-x\fR" 4
+.Ip "\f(CW--discard-all\fR" 4
 Do not copy non-global symbols from the source file.
-.TP
-.B \-X\fR, \fB\-\-discard\-locals
-Do not copy compiler-generated local symbols. (These usually start
-with "L" or ".").
-.TP
-.B \-b \fIbyte\fR, \fB\-\-byte=\fIbyte
-Keep only every \fIbyte\fPth byte of the input file (header data is
-not affected).  \fIbyte\fP can be in the range from 0 to the
-interleave-1.  This option is useful for creating files to program
-ROMs.  It is typically used with an srec output target.
-.TP
-.B \-i \fIinterleave\fR, \fB\-\-interleave=\fIinterleave
-Only copy one out of every \fIinterleave\fP bytes.  Which one to copy is
-selected by the \fB\-b\fP or \fB\-\-byte\fP option.  The default is 4.
-The interleave is ignored if neither \fB\-b\fP nor \fB\-\-byte\fP is given.
-.TP
-.B \-p\fR, \fB\-\-preserve\-dates
+.Ip "\f(CW-X\fR" 4
+.Ip "\f(CW--discard-locals\fR" 4
+Do not copy compiler-generated local symbols.
+(These usually start with \fBL\fR or \fB.\fR.)
+.Ip "\f(CW-b \fIbyte\fR\fR" 4
+.Ip "\f(CW--byte=\fIbyte\fR\fR" 4
+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(CWsrec\fR output
+target.
+.Ip "\f(CW-i \fIinterleave\fR\fR" 4
+.Ip "\f(CW--interleave=\fIinterleave\fR\fR" 4
+Only copy one out of every \fIinterleave\fR bytes.  Select which byte to
+copy with the \fI\-b\fR or \fB--byte\fR option.  The default is 4.
+\f(CWobjcopy\fR ignores this option if you do not specify either \fB\-b\fR or
+\fB--byte\fR.
+.Ip "\f(CW-p\fR" 4
+.Ip "\f(CW--preserve-dates\fR" 4
 Set the access and modification dates of the output file to be the same
 as those of the input file.
-.TP
-.B \-\-debugging
+.Ip "\f(CW--debugging\fR" 4
 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.
-.TP
-.B \-\-gap\-fill=\fIval
-Fill gaps between sections with \fIval\fP.  This is done by increasing
+.Ip "\f(CW--gap-fill \fIval\fR\fR" 4
+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\fP.
-.TP
-.B \-\-pad\-to=\fIaddress
-Pad the output file up to the virtual address \fIaddress\fP.  This is
+space created with \fIval\fR.
+.Ip "\f(CW--pad-to \fIaddress\fR\fR" 4
+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\fP (default
-zero).
-.TP
-.B \fB\-\-set\-start=\fIval
-Set the start address of the new file to \fIval\fP.  Not all object
-file formats support setting the start address.
-.TP
-.B \fB\-\-adjust\-start=\fIincr
-Adjust the start address by adding \fIincr\fP.  Not all object file
+filled in with the value specified by \fB--gap-fill\fR (default zero).
+.Ip "\f(CW--set-start \fIval\fR\fR" 4
+Set the start address of the new file to \fIval\fR.  Not all object file
+formats support setting the start address.
+.Ip "\f(CW--change-start \fIincr\fR\fR" 4
+.Ip "\f(CW--adjust-start \fIincr\fR\fR" 4
+Change the start address by adding \fIincr\fR.  Not all object file
 formats support setting the start address.
-.TP
-.B \fB\-\-adjust\-vma=\fIincr
-Adjust the address of all sections, as well as the start address, by
-adding \fIincr\fP.  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
+.Ip "\f(CW--change-addresses \fIincr\fR\fR" 4
+.Ip "\f(CW--adjust-vma \fIincr\fR\fR" 4
+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.
-.TP
-.B \fB\-\-adjust\-section\-vma=\fIsection{=,+,-}val
-Set or adjust the address of the named \fIsection\fP.  If \fI=\fP is
-used, the section address is set to \fIval\fP.  Otherwise, \fIval\fP
-is added to or subtracted from the section address.  See the comments
-under \fB\-\-adjust\-vma\fP, above.  If \fIsection\fP does not exist
-in the input file, a warning will be issued, unless
-\fB\-\-no\-adjust\-warnings\fP is used.
-.TP
-.B \fB\-\-adjust\-warnings
-If \fB\-\-adjust\-section\-vma\fP is used, and the named section does
-not exist, issue a warning.  This is the default.
-.TP
-.B \fB\-\-no\-adjust\-warnings
-Do not issue a warning if \fB\-\-adjust\-section\-vma\fP is used, even
-if the named section does not exist.
-.TP
-.B \fB\-\-set\-section\-flags=\fIsection=flags
-Set the flags for the named section.  The \fIflags\fP argument is a
+that they are loaded at a different address, the program may fail. 
+.Ip "\f(CW--change-section-address \fIsection\fR{=,+,-}\fIval\fR\fR" 4
+.Ip "\f(CW--adjust-section-vma \fIsection\fR{=,+,-}\fIval\fR\fR" 4
+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 "\f(CW--change-section-lma \fIsection\fR{=,+,-}\fIval\fR\fR" 4
+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 "\f(CW--change-section-vma \fIsection\fR{=,+,-}\fIval\fR\fR" 4
+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 "\f(CW--change-warnings\fR" 4
+.Ip "\f(CW--adjust-warnings\fR" 4
+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 "\f(CW--no-change-warnings\fR" 4
+.Ip "\f(CW--no-adjust-warnings\fR" 4
+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 "\f(CW--set-section-flags \fIsection\fR=\fIflags\fR\fR" 4
+Set the flags for the named section.  The \fIflags\fR argument is a
 comma separated string of flag names.  The recognized names are
-\fIalloc\fP, \fIload\fP, \fIreadonly\fP, \fIcode\fP, \fIdata\fP, and
-\fIrom\fP.  Not all flags are meaningful for all object file
+\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.
-.TP
-.B \fB\-\-add\-section=\fIsectionname=filename
+.Ip "\f(CW--add-section \fIsectionname\fR=\fIfilename\fR\fR" 4
 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.
-.TP
-.B \-\-change\-leading\-char
+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 "\f(CW--change-leading-char\fR" 4
 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 
-.B objcopy
-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
+often add before every symbol.  This option tells \f(CWobjcopy\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.
-.TP
-.B \-\-remove\-leading\-char
+.Ip "\f(CW--remove-leading-char\fR" 4
 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
-@code{--change-leading-char} because it always changes the symbol name
+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
+\f(CW--change-leading-char\fR because it always changes the symbol name
 when appropriate, regardless of the object file format of the output
-.TP
-.B \-\-weaken
-Change all global symbols in the file to be weak.
-.TP
-.B \-v\fR, \fB\-\-verbose
+file.
+.Ip "\f(CW--srec-len=\fIival\fR\fR" 4
+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 "\f(CW--srec-forceS3\fR" 4
+Meaningful only for srec output.  Avoid generation of S1/S2 records, 
+creating S3-only record format.
+.Ip "\f(CW--redefine-sym \fIold\fR=\fInew\fR\fR" 4
+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 "\f(CW--weaken\fR" 4
+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 \f(CW-R\fR option to the linker.  This option is only effective when
+using an object file format which supports weak symbols.
+.Ip "\f(CW-V\fR" 4
+.Ip "\f(CW--version\fR" 4
+Show the version number of \f(CWobjcopy\fR.
+.Ip "\f(CW-v\fR" 4
+.Ip "\f(CW--verbose\fR" 4
 Verbose output: list all object files modified.  In the case of
-archives, "\fBobjcopy \-V\fR" lists all members of the archive.
-.TP
-.B \-V\fR, \fB\-\-version
-Show the version number of
-.B objcopy
-and exit.
-.TP
-.B \-\-help
-Show a summary of the options to
-.B objcopy
-and exit.
+archives, \fBobjcopy \-V\fR lists all members of the archive.
+.Ip "\f(CW--help\fR" 4
+Show a summary of the options to \f(CWobjcopy\fR.
 .SH "SEE ALSO"
-.RB "`\|" binutils "\|'" 
-entry in 
-.B
-info\c
-\&; 
-.I
-The GNU Binary Utilities\c
-\&, Roland H. Pesch (June 1993).
-
-.SH COPYING
-Copyright (c) 1993, 94, 95, 96, 1997 Free Software Foundation, Inc.
+\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
+.SH "COPYRIGHT"
+Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc.
 .PP
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-.PP
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-.PP
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be included in
-translations approved by the Free Software Foundation instead of in
-the original English.
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU 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"GNU Free Documentation License\*(R".
+
+.rn }` ''
+.IX Title "OBJCOPY.1 1"
+.IX Name "objcopy - copy and translate object files"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "OPTIONS"
+
+.IX Item "\f(CW\fIinfile\fR\fR"
+
+.IX Item "\f(CW\fIoutfile\fR\fR"
+
+.IX Item "\f(CW-I \fIbfdname\fR        \fR"
+
+.IX Item "\f(CW--input-target=\fIbfdname\fR\fR"
+
+.IX Item "\f(CW-O \fIbfdname\fR\fR"
+
+.IX Item "\f(CW--output-target=\fIbfdname\fR\fR"
+
+.IX Item "\f(CW-F \fIbfdname\fR\fR"
+
+.IX Item "\f(CW--target=\fIbfdname\fR\fR"
+
+.IX Item "\f(CW-B \fIbfdarch\fR\fR"
+
+.IX Item "\f(CW--binary-architecture=\fIbfdarch\fR\fR"
+
+.IX Item "\f(CW-j \fIsectionname\fR\fR"
+
+.IX Item "\f(CW--only-section=\fIsectionname\fR\fR"
+
+.IX Item "\f(CW-R \fIsectionname\fR\fR"
+
+.IX Item "\f(CW--remove-section=\fIsectionname\fR\fR"
+
+.IX Item "\f(CW-S\fR"
+
+.IX Item "\f(CW--strip-all\fR"
+
+.IX Item "\f(CW-g\fR"
+
+.IX Item "\f(CW--strip-debug\fR"
+
+.IX Item "\f(CW--strip-unneeded\fR"
+
+.IX Item "\f(CW-K \fIsymbolname\fR\fR"
+
+.IX Item "\f(CW--keep-symbol=\fIsymbolname\fR\fR"
+
+.IX Item "\f(CW-N \fIsymbolname\fR\fR"
+
+.IX Item "\f(CW--strip-symbol=\fIsymbolname\fR\fR"
+
+.IX Item "\f(CW-L \fIsymbolname\fR\fR"
+
+.IX Item "\f(CW--localize-symbol=\fIsymbolname\fR\fR"
+
+.IX Item "\f(CW-W \fIsymbolname\fR\fR"
+
+.IX Item "\f(CW--weaken-symbol=\fIsymbolname\fR\fR"
+
+.IX Item "\f(CW-x\fR"
+
+.IX Item "\f(CW--discard-all\fR"
+
+.IX Item "\f(CW-X\fR"
+
+.IX Item "\f(CW--discard-locals\fR"
+
+.IX Item "\f(CW-b \fIbyte\fR\fR"
+
+.IX Item "\f(CW--byte=\fIbyte\fR\fR"
+
+.IX Item "\f(CW-i \fIinterleave\fR\fR"
+
+.IX Item "\f(CW--interleave=\fIinterleave\fR\fR"
+
+.IX Item "\f(CW-p\fR"
+
+.IX Item "\f(CW--preserve-dates\fR"
+
+.IX Item "\f(CW--debugging\fR"
+
+.IX Item "\f(CW--gap-fill \fIval\fR\fR"
+
+.IX Item "\f(CW--pad-to \fIaddress\fR\fR"
+
+.IX Item "\f(CW--set-start \fIval\fR\fR"
+
+.IX Item "\f(CW--change-start \fIincr\fR\fR"
+
+.IX Item "\f(CW--adjust-start \fIincr\fR\fR"
+
+.IX Item "\f(CW--change-addresses \fIincr\fR\fR"
+
+.IX Item "\f(CW--adjust-vma \fIincr\fR\fR"
+
+.IX Item "\f(CW--change-section-address \fIsection\fR{=,+,-}\fIval\fR\fR"
+
+.IX Item "\f(CW--adjust-section-vma \fIsection\fR{=,+,-}\fIval\fR\fR"
+
+.IX Item "\f(CW--change-section-lma \fIsection\fR{=,+,-}\fIval\fR\fR"
+
+.IX Item "\f(CW--change-section-vma \fIsection\fR{=,+,-}\fIval\fR\fR"
+
+.IX Item "\f(CW--change-warnings\fR"
+
+.IX Item "\f(CW--adjust-warnings\fR"
+
+.IX Item "\f(CW--no-change-warnings\fR"
+
+.IX Item "\f(CW--no-adjust-warnings\fR"
+
+.IX Item "\f(CW--set-section-flags \fIsection\fR=\fIflags\fR\fR"
+
+.IX Item "\f(CW--add-section \fIsectionname\fR=\fIfilename\fR\fR"
+
+.IX Item "\f(CW--change-leading-char\fR"
+
+.IX Item "\f(CW--remove-leading-char\fR"
+
+.IX Item "\f(CW--srec-len=\fIival\fR\fR"
+
+.IX Item "\f(CW--srec-forceS3\fR"
+
+.IX Item "\f(CW--redefine-sym \fIold\fR=\fInew\fR\fR"
+
+.IX Item "\f(CW--weaken\fR"
+
+.IX Item "\f(CW-V\fR"
+
+.IX Item "\f(CW--version\fR"
+
+.IX Item "\f(CW-v\fR"
+
+.IX Item "\f(CW--verbose\fR"
+
+.IX Item "\f(CW--help\fR"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
This page took 0.031588 seconds and 4 git commands to generate.