a2p
accept
access
acct
addftinfo
addr2line
adjtime
afmtodit
after
aio_cancel
aio_error
aio_read
aio_return
aio_suspend
aio_waitcomplete
aio_write
alias
aliases
alloc
anvil
append
apply
apropos
ar
array
as
asa
asn1parse
at
atq
atrm
attemptckalloc
attemptckrealloc
authlib
authtest
autopoint
awk
b64decode
b64encode
basename
batch
bc
bdes
bell
bg
bgerror
biff
big5
binary
bind
bindkey
bindtags
bindtextdomain
bio
bitmap
blowfish
bn
bootparams
bootptab
bounce
brandelf
break
breaksw
brk
bsdiff
bsdtar
bsnmpd
bspatch
bthost
btsockstat
buffer
builtin
builtins
bunzip2
button
byacc
bzcat
bzegrep
bzfgrep
bzgrep
bzip2
c2ph
c89
c99
ca
cal
calendar
canvas
cap_mkdb
case
cat
catch
catman
cc
cd
cdcontrol
chdir
checkbutton
checknr
chflags
chfn
chgrp
chio
chkey
chmod
chown
chpass
chroot
chsh
ci
ciphers
ckalloc
ckdist
ckfree
ckrealloc
cksum
cleanup
clear
clipboard
clock
clock_getres
clock_gettime
clock_settime
close
cmp
co
col
colcrt
colldef
colors
colrm
column
comm
command
compile_et
complete
compress
concat
config
connect
console
continue
core
courierlogger
couriertcpd
cp
cpan
cpio
cpp
creat
crl
crontab
crunchgen
crunchide
crypt
crypto
csh
csplit
ctags
ctm
ctm_dequeue
ctm_rmail
ctm_smail
cu
cursor
cursors
cut
cvs
date
dbiprof
dbiproxy
dc
dcgettext
dcngettext
dd
dde
default
defer
deliverquota
des
destroy
devfs
df
dgettext
dgst
dh
dhparam
dialog
diff
diff3
dig
dir
dirent
dirname
dirs
discard
disktab
dngettext
do
domainname
done
dprofpp
dsa
dsaparam
dtmfdecode
du
dup
dup2
eaccess
ec
ecdsa
echo
echotc
ecparam
ed
edit
editrc
ee
egrep
elf
elfdump
elif
else
enc
enc2xs
encoding
end
endif
endsw
engine
enigma
entry
env
envsubst
eof
eqn
err
errno
error
errstr
esac
ethers
euc
eui64
eval
event
evp
ex
exec
execve
exit
expand
export
exports
expr
extattr
extattr_delete_fd
extattr_delete_file
extattr_get_fd
extattr_get_file
extattr_set_fd
extattr_set_file
f77
false
famm
famx
fblocked
fbtab
fc
fchdir
fchflags
fchmod
fchown
fcntl
fconfigure
fcopy
fdescfs
fdformat
fdread
fdwrite
fetch
fg
fgrep
fhopen
fhstat
fhstatfs
fi
file
file2c
fileevent
filename
filetest
find
find2perl
finger
flex
flock
flush
fmt
focus
fold
font
fontedit
for
foreach
fork
format
forward
fpathconf
frame
from
fs
fstab
fstat
fstatfs
fsync
ftp
ftpchroot
ftpusers
ftruncate
futimes
g711conv
gb2312
gb18030
gbk
gcc
gcore
gcov
gdb
gencat
gendsa
genrsa
gensnmptree
getconf
getdents
getdirentries
getdtablesize
getegid
geteuid
getfacl
getfh
getfsstat
getgid
getgroups
getitimer
getlogin
getopt
getopts
getpeername
getpgid
getpgrp
getpid
getppid
getpriority
getresgid
getresuid
getrlimit
getrusage
gets
getsid
getsockname
getsockopt
gettext
gettextize
gettimeofday
gettytab
getuid
glob
global
gmake
goto
gperf
gprof
grab
grep
grid
grn
grodvi
groff
groff_font
groff_out
groff_tmac
grog
grolbp
grolj4
grops
grotty
group
groups
gunzip
gzcat
gzexe
gzip
h2ph
h2xs
hash
hashstat
hd
head
help2man
hesinfo
hexdump
history
host
hostname
hosts
hosts_access
hosts_options
hpftodit
http
hup
i386_get_ioperm
i386_get_ldt
i386_set_ioperm
i386_set_ldt
i386_vm86
iconv
id
ident
idprio
if
ifnames253
ifnames259
image
imapd
incr
indent
indxbib
info
infokey
inode
install
instmodsh
interp
intro
introduction
ioctl
ipcrm
ipcs
ipf
ipftest
ipnat
ippool
ipresend
issetugid
jail
jail_attach
jobid
jobs
join
jot
kbdcontrol
kbdmap
kcon
kdestroy
kdump
kenv
kevent
keycap
keylogin
keylogout
keymap
keysyms
kgdb
kill
killall
killpg
kinit
kldfind
kldfirstmod
kldload
kldnext
kldstat
kldsym
kldunload
klist
kpasswd
kqueue
kse
kse_create
kse_exit
kse_release
kse_switchin
kse_thr_interrupt
kse_wakeup
ktrace
label
labelframe
lam
lappend
last
lastcomm
lastlog
lchflags
lchmod
lchown
ld
ldap
ldapadd
ldapcompare
ldapdelete
ldapmodify
ldapmodrdn
ldappasswd
ldapsearch
ldapwhoami
ldd
leave
less
lesskey
lex
lgetfh
lhash
libnetcfg
library
limit
limits
lindex
link
linprocfs
linsert
lint
lio_listio
list
listbox
listen
lj4_font
lkbib
llength
lmtp
ln
load
loadfont
local
locale
locate
lock
lockf
log
logger
login
logins
logname
logout
look
lookbib
lorder
lower
lp
lpq
lpr
lprm
lptest
lrange
lreplace
ls
lsearch
lseek
lset
lsort
lstat
lsvfs
lutimes
lynx
m4
madvise
magic
mail
maildiracl
maildirkw
maildirmake
mailq
mailx
make
makeinfo
makewhatis
man
manpath
master
mc
mcedit
mcview
md2
md4
md5
mdc2
memory
menu
menubar
menubutton
merge
mesg
message
mincore
minherit
minigzip
mkdep
mkdir
mkfifo
mkimapdcert
mklocale
mknod
mkpop3dcert
mkstr
mktemp
mlock
mlockall
mmap
mmroff
modfind
modfnext
modnext
modstat
moduli
more
motd
mount
mprotect
mptable
msdos
msdosfs
msgattrib
msgcat
msgcmp
msgcomm
msgconv
msgen
msgexec
msgfilter
msgfmt
msggrep
msginit
msgmerge
msgs
msgunfmt
msguniq
mskanji
msql2mysql
msync
mt
munlock
munlockall
munmap
mv
myisamchk
myisamlog
myisampack
mysql
mysqlaccess
mysqladmin
mysqlbinlog
mysqlcheck
mysqld
mysqldump
mysqld_multi
mysqld_safe
mysqlhotcopy
mysqlimport
mysqlshow
mysql_config
mysql_fix_privilege_tables
mysql_zap
namespace
nanosleep
nawk
nc
ncal
ncplist
ncplogin
ncplogout
neqn
netconfig
netgroup
netid
netstat
networks
newaliases
newgrp
nex
nfsstat
nfssvc
ngettext
nice
nl
nm
nmount
nohup
nologin
notify
nroff
nseq
nslookup
ntp_adjtime
ntp_gettime
nvi
nview
objcopy
objdump
objformat
ocsp
od
onintr
open
openssl
opieaccess
opieinfo
opiekey
opiekeys
opiepasswd
option
options
oqmgr
pack
package
packagens
pagesize
palette
pam_auth
panedwindow
parray
passwd
paste
patch
pathchk
pathconf
pawd
pax
pbm
pcre
pcreapi
pcrebuild
pcrecallout
pcrecompat
pcrecpp
pcregrep
pcrematching
pcrepartial
pcrepattern
pcreperform
pcreposix
pcreprecompile
pcresample
pcretest
perl
perl56delta
perl58delta
perl561delta
perl570delta
perl571delta
perl572delta
perl573delta
perl581delta
perl582delta
perl583delta
perl584delta
perl585delta
perl586delta
perl587delta
perl588delta
perl5004delta
perl5005delta
perlaix
perlamiga
perlapi
perlapio
perlapollo
perlartistic
perlbeos
perlbook
perlboot
perlbot
perlbs2000
perlbug
perlcall
perlcc
perlce
perlcheat
perlclib
perlcn
perlcompile
perlcygwin
perldata
perldbmfilter
perldebguts
perldebtut
perldebug
perldelta
perldgux
perldiag
perldoc
perldos
perldsc
perlebcdic
perlembed
perlepoc
perlfaq
perlfaq1
perlfaq2
perlfaq3
perlfaq4
perlfaq5
perlfaq6
perlfaq7
perlfaq8
perlfaq9
perlfilter
perlfork
perlform
perlfreebsd
perlfunc
perlglossary
perlgpl
perlguts
perlhack
perlhist
perlhpux
perlhurd
perlintern
perlintro
perliol
perlipc
perlirix
perlivp
perljp
perlko
perllexwarn
perllinux
perllocale
perllol
perlmachten
perlmacos
perlmacosx
perlmint
perlmod
perlmodinstall
perlmodlib
perlmodstyle
perlmpeix
perlnetware
perlnewmod
perlnumber
perlobj
perlop
perlopenbsd
perlopentut
perlos2
perlos390
perlos400
perlothrtut
perlpacktut
perlplan9
perlpod
perlpodspec
perlport
perlqnx
perlre
perlref
perlreftut
perlrequick
perlreref
perlretut
perlrun
perlsec
perlsolaris
perlstyle
perlsub
perlsyn
perlthrtut
perltie
perltoc
perltodo
perltooc
perltoot
perltrap
perltru64
perltw
perlunicode
perluniintro
perlutil
perluts
perlvar
perlvmesa
perlvms
perlvos
perlwin32
perlxs
perlxstut
perror
pfbtops
pftp
pgrep
phones
photo
pic
pickup
piconv
pid
pipe
pkcs7
pkcs8
pkcs12
pkg_add
pkg_check
pkg_create
pkg_delete
pkg_info
pkg_sign
pkg_version
pkill
pl2pm
place
pod2html
pod2latex
pod2man
pod2text
pod2usage
podchecker
podselect
poll
popd
popup
posix_madvise
postalias
postcat
postconf
postdrop
postfix
postkick
postlock
postlog
postmap
postqueue
postsuper
pr
pread
preadv
printcap
printenv
printf
proc
procfs
profil
protocols
prove
proxymap
ps
psed
psroff
pstruct
ptrace
publickey
pushd
puts
pwd
pwrite
pwritev
qmgr
qmqpd
quota
quotactl
radiobutton
raise
rand
ranlib
rcp
rcs
rcsclean
rcsdiff
rcsfile
rcsfreeze
rcsintro
rcsmerge
read
readelf
readlink
readonly
readv
realpath
reboot
recv
recvfrom
recvmsg
red
ree
refer
regexp
registry
regsub
rehash
remote
rename
repeat
replace
req
reset
resolver
resource
return
rev
revoke
rfcomm_sppd
rfork
rhosts
ripemd
ripemd160
rlog
rlogin
rm
rmd160
rmdir
rpc
rpcgen
rs
rsa
rsautl
rsh
rtld
rtprio
rup
ruptime
rusers
rwall
rwho
s2p
safe
sasl
sasldblistusers2
saslpasswd2
sbrk
scache
scale
scan
sched
sched_getparam
sched_getscheduler
sched_get_priority_max
sched_get_priority_min
sched_rr_get_interval
sched_setparam
sched_setscheduler
sched_yield
scon
scp
script
scrollbar
sdiff
sed
seek
select
selection
semctl
semget
semop
send
sendbug
sendfile
sendmail
sendmsg
sendto
services
sess_id
set
setegid
setenv
seteuid
setfacl
setgid
setgroups
setitimer
setlogin
setpgid
setpgrp
setpriority
setregid
setresgid
setresuid
setreuid
setrlimit
setsid
setsockopt
settc
settimeofday
setty
setuid
setvar
sftp
sh
sha
sha1
sha256
shar
shells
shift
shmat
shmctl
shmdt
shmget
showq
shutdown
sigaction
sigaltstack
sigblock
sigmask
sigpause
sigpending
sigprocmask
sigreturn
sigsetmask
sigstack
sigsuspend
sigvec
sigwait
size
slapadd
slapcat
slapd
slapdn
slapindex
slappasswd
slaptest
sleep
slogin
slurpd
smbutil
smime
smtp
smtpd
socket
socketpair
sockstat
soelim
sort
source
spawn
speed
spinbox
spkac
splain
split
squid
squid_ldap_auth
squid_ldap_group
squid_unix_group
sscop
ssh
sshd_config
ssh_config
stab
startslip
stat
statfs
stop
string
strings
strip
stty
su
subst
sum
suspend
swapoff
swapon
switch
symlink
sync
sysarch
syscall
sysconftool
sysconftoolcheck
systat
s_client
s_server
s_time
tabs
tail
talk
tar
tbl
tclsh
tcltest
tclvars
tcopy
tcpdump
tcpslice
tcsh
tee
tell
telltc
telnet
term
termcap
terminfo
test
texindex
texinfo
text
textdomain
tfmtodit
tftp
then
threads
time
tip
tk
tkerror
tkvars
tkwait
tlsmgr
tmac
top
toplevel
touch
tput
tr
trace
trafshow
trap
troff
true
truncate
truss
tset
tsort
tty
ttys
type
tzfile
ui
ul
ulimit
umask
unalias
uname
uncomplete
uncompress
undelete
unexpand
unhash
unifdef
unifdefall
uniq
units
unknown
unlimit
unlink
unmount
unset
unsetenv
until
unvis
update
uplevel
uptime
upvar
usbhidaction
usbhidctl
users
utf8
utimes
utmp
utrace
uudecode
uuencode
uuidgen
vacation
variable
verify
version
vfork
vgrind
vgrindefs
vi
vidcontrol
vidfont
view
virtual
vis
vt220keys
vwait
w
wait
wait3
wait4
waitpid
wall
wc
wget
what
whatis
where
whereis
which
while
who
whoami
whois
window
winfo
wish
wm
write
writev
wtmp
x509
xargs
xgettext
xmlwf
xstr
xsubpp
yacc
yes
ypcat
ypchfn
ypchpass
ypchsh
ypmatch
yppasswd
ypwhich
yyfix
zcat
zcmp
zdiff
zegrep
zfgrep
zforce
zgrep
zmore
znew
_exit
__syscall
 
FreeBSD/Linux/UNIX General Commands Manual
Hypertext Man Pages
objcopy
 
OBJCOPY(1)		     GNU Development Tools		    OBJCOPY(1)



NAME
       objcopy - copy and translate object files

SYNOPSIS
       objcopy [-F bfdname|--target=bfdname]
	       [-I bfdname|--input-target=bfdname]
	       [-O bfdname|--output-target=bfdname]
	       [-B bfdarch|--binary-architecture=bfdarch]
	       [-S|--strip-all]
	       [-g|--strip-debug]
	       [-K symbolname|--keep-symbol=symbolname]
	       [-N symbolname|--strip-symbol=symbolname]
	       [-G symbolname|--keep-global-symbol=symbolname]
	       [-L symbolname|--localize-symbol=symbolname]
	       [-W symbolname|--weaken-symbol=symbolname]
	       [-w|--wildcard]
	       [-x|--discard-all]
	       [-X|--discard-locals]
	       [-b byte|--byte=byte]
	       [-i interleave|--interleave=interleave]
	       [-j sectionname|--only-section=sectionname]
	       [-R sectionname|--remove-section=sectionname]
	       [-p|--preserve-dates]
	       [--debugging]
	       [--gap-fill=val]
	       [--pad-to=address]
	       [--set-start=val]
	       [--adjust-start=incr]
	       [--change-addresses=incr]
	       [--change-section-address section{=,+,-}val]
	       [--change-section-lma section{=,+,-}val]
	       [--change-section-vma section{=,+,-}val]
	       [--change-warnings] [--no-change-warnings]
	       [--set-section-flags section=flags]
	       [--add-section sectionname=filename]
	       [--rename-section oldname=newname[,flags]]
	       [--change-leading-char] [--remove-leading-char]
	       [--srec-len=ival] [--srec-forceS3]
	       [--redefine-sym old=new]
	       [--redefine-syms=filename]
	       [--weaken]
	       [--keep-symbols=filename]
	       [--strip-symbols=filename]
	       [--keep-global-symbols=filename]
	       [--localize-symbols=filename]
	       [--weaken-symbols=filename]
	       [--alt-machine-code=index]
	       [--prefix-symbols=string]
	       [--prefix-sections=string]
	       [--prefix-alloc-sections=string]
	       [--add-gnu-debuglink=path-to-file]
	       [--only-keep-debug]
	       [--writable-text]
	       [--readonly-text]
	       [--pure]
	       [--impure]
	       [-v|--verbose]
	       [-V|--version]
	       [--help] [--info]
	       infile [outfile]

DESCRIPTION
       The  GNU  objcopy  utility  copies  the	contents  of an object file to
       another.  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 objcopy  is
       controlled  by  command-line options.  Note that objcopy 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.

       objcopy creates temporary files to do its translations and deletes them
       afterward.   objcopy  uses  BFD	to do all its translation work; it has
       access to all the formats described in BFD and thus is able  to	recog-
       nize most formats without being told explicitly.

       objcopy	can be used to generate S-records by using an output target of
       srec (e.g., use -O srec).

       objcopy can be used to generate a raw binary file by  using  an	output
       target  of  binary (e.g., use -O binary).  When 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 load  address  of  the
       lowest section copied into the output file.

       When  generating an S-record or a raw binary file, it may be helpful to
       use -S to remove sections containing debugging  information.   In  some
       cases  -R  will	be useful to remove sections which contain information
       that is not needed by the binary file.

       Note---objcopy is not able to change the endianness of its input files.
       If  the	input  format has an endianness (some formats do not), objcopy
       can only copy the inputs into file formats that have the  same  endian-
       ness or which have no endianness (e.g., srec).

OPTIONS
       infile
       outfile
	   The	input  and  output files, respectively.  If you do not specify
	   outfile, objcopy creates a temporary file and destructively renames
	   the result with the name of infile.

       -I bfdname
       --input-target=bfdname
	   Consider the source file's object format to be bfdname, rather than
	   attempting to deduce it.

       -O bfdname
       --output-target=bfdname
	   Write the output file using the object format bfdname.

       -F bfdname
       --target=bfdname
	   Use 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.

       -B bfdarch
       --binary-architecture=bfdarch
	   Useful when transforming a raw binary input	file  into  an	object
	   file.   In this case the output architecture can be set to bfdarch.
	   This option will be ignored if the input file has a known  bfdarch.
	   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_objfile_start, _binary_objfile_end and
	   _binary_objfile_size.  e.g. you can transform a picture  file  into
	   an object file and then access it in your code using these symbols.

       -j sectionname
       --only-section=sectionname
	   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.

       -R sectionname
       --remove-section=sectionname
	   Remove any section named sectionname from the  output  file.   This
	   option  may	be  given more than once.  Note that using this option
	   inappropriately may make the output file unusable.

       -S
       --strip-all
	   Do not copy relocation and symbol information from the source file.

       -g
       --strip-debug
	   Do not copy debugging symbols or sections from the source file.

       --strip-unneeded
	   Strip all symbols that are not needed for relocation processing.

       -K symbolname
       --keep-symbol=symbolname
	   Copy  only symbol symbolname from the source file.  This option may
	   be given more than once.

       -N symbolname
       --strip-symbol=symbolname
	   Do not copy symbol symbolname from the source  file.   This	option
	   may be given more than once.

       -G symbolname
       --keep-global-symbol=symbolname
	   Keep  only  symbol symbolname global.  Make all other symbols local
	   to the file, so that they are not visible externally.  This	option
	   may be given more than once.

       -L symbolname
       --localize-symbol=symbolname
	   Make symbol symbolname local to the file, so that it is not visible
	   externally.	This option may be given more than once.

       -W symbolname
       --weaken-symbol=symbolname
	   Make symbol symbolname weak. This option may  be  given  more  than
	   once.

       -w
       --wildcard
	   Permit  regular  expressions  in  symbolnames used in other command
	   line options.  The question mark (?), asterisk (*),	backslash  (\)
	   and square brackets ([]) operators can be used anywhere in the sym-
	   bol name.  If the first character of the symbol name is the	excla-
	   mation  point (!) then the sense of the switch is reversed for that
	   symbol.  For example:

		     -w -W !foo -W fo*

	   would cause objcopy to weaken all symbols that  start  with	``fo''
	   except for the symbol ``foo''.

       -x
       --discard-all
	   Do not copy non-global symbols from the source file.

       -X
       --discard-locals
	   Do not copy compiler-generated local symbols.  (These usually start
	   with L or ..)

       -b byte
       --byte=byte
	   Keep only every byteth byte of the input file (header data  is  not
	   affected).	byte can be in the range from 0 to interleave-1, where
	   interleave is given by  the	-i  or	--interleave  option,  or  the
	   default  of 4.  This option is useful for creating files to program
	   ROM.  It is typically used with an "srec" output target.

       -i interleave
       --interleave=interleave
	   Only copy one out of every interleave bytes.  Select which byte  to
	   copy  with  the  -b	or  --byte option.  The default is 4.  objcopy
	   ignores this option if you do not specify either -b or --byte.

       -p
       --preserve-dates
	   Set the access and modification dates of the output file to be  the
	   same as those of the input file.

       --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.

       --gap-fill val
	   Fill gaps between sections with val.  This operation applies to the
	   load address (LMA) 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 val.

       --pad-to address
	   Pad the output file up to the load address address.	This  is  done
	   by  increasing  the	size  of the last section.  The extra space is
	   filled in with the value specified by --gap-fill (default zero).

       --set-start val
	   Set the start address of the new file to val.  Not all object  file
	   formats support setting the start address.

       --change-start incr
       --adjust-start incr
	   Change  the start address by adding incr.  Not all object file for-
	   mats support setting the start address.

       --change-addresses incr
       --adjust-vma incr
	   Change the VMA and LMA addresses of all sections, as  well  as  the
	   start  address,  by	adding	incr.  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.

       --change-section-address section{=,+,-}val
       --adjust-section-vma section{=,+,-}val
	   Set or change both the VMA address and the LMA address of the named
	   section.   If = is used, the section address is set to val.	Other-
	   wise, val is added to or subtracted from the section address.   See
	   the	comments  under --change-addresses, above. If section does not
	   exist  in  the  input  file,  a  warning  will  be  issued,	unless
	   --no-change-warnings is used.

       --change-section-lma section{=,+,-}val
	   Set	or  change  the  LMA  address  of  the named section.  The LMA
	   address is the address where the section will be loaded into memory
	   at  program	load  time.   Normally	this  is  the  same as the VMA
	   address, which is the address of the section at program  run  time,
	   but	on  some  systems, especially those where a program is held in
	   ROM, the two can be different.  If = is used, the  section  address
	   is  set  to val.  Otherwise, val is added to or subtracted from the
	   section address.  See the comments under --change-addresses, above.
	   If  section	does  not  exist  in the input file, a warning will be
	   issued, unless --no-change-warnings is used.

       --change-section-vma section{=,+,-}val
	   Set or change the VMA  address  of  the  named  section.   The  VMA
	   address  is	the address where the section will be located once the
	   program has started executing.  Normally this is the  same  as  the
	   LMA	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 ROM, the two can be different.	If = is used, the sec-
	   tion address is set to val.	Otherwise, val is  added  to  or  sub-
	   tracted   from   the  section  address.   See  the  comments  under
	   --change-addresses, above.  If section does not exist in the  input
	   file,  a  warning  will  be	issued, unless --no-change-warnings is
	   used.

       --change-warnings
       --adjust-warnings
	   If	 --change-section-address    or    --change-section-lma     or
	   --change-section-vma is used, and the named section does not exist,
	   issue a warning.  This is the default.

       --no-change-warnings
       --no-adjust-warnings
	   Do not issue a warning if --change-section-address or --adjust-sec-
	   tion-lma or --adjust-section-vma is used, even if the named section
	   does not exist.

       --set-section-flags section=flags
	   Set the flags for the named section.  The flags argument is a comma
	   separated  string  of  flag names.  The recognized names are alloc,
	   contents, load, noload,  readonly,  code,  data,  rom,  share,  and
	   debug.   You can set the contents flag for a section which does not
	   have contents, but it is not meaningful to clear the contents  flag
	   of  a  section  which  does	have contents--just remove the section
	   instead.  Not all flags are meaningful for all object file formats.

       --add-section sectionname=filename
	   Add	a  new	section named sectionname while copying the file.  The
	   contents of the new section are taken from the file filename.   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.

       --rename-section oldname=newname[,flags]
	   Rename  a  section from oldname to newname, optionally changing the
	   section's flags to flags 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.

	   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:

		     objcopy -I binary -O  -B  \
		      --rename-section .data=.rodata,alloc,load,readonly,data,contents \
		       

       --change-leading-char
	   Some object file formats use special characters  at	the  start  of
	   symbols.   The most common such character is underscore, which com-
	   pilers often add before every symbol.  This option tells 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 appropriate.

       --remove-leading-char
	   If the first character of a global symbol is a special symbol lead-
	   ing 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 differ-
	   ent file formats with different conventions for symbol names.  This
	   is  different  from --change-leading-char because it always changes
	   the symbol name when appropriate, regardless  of  the  object  file
	   format of the output file.

       --srec-len=ival
	   Meaningful  only  for  srec	output.  Set the maximum length of the
	   Srecords being produced to ival.  This length covers both  address,
	   data and crc fields.

       --srec-forceS3
	   Meaningful  only  for  srec	output.   Avoid  generation  of  S1/S2
	   records, creating S3-only record format.

       --redefine-sym old=new
	   Change the name of a symbol old, to new.  This can be  useful  when
	   one	is  trying  link  two  things  together  for which you have no
	   source, and there are name collisions.

       --redefine-syms=filename
	   Apply --redefine-sym to each symbol pair "old new"  listed  in  the
	   file  filename.   filename  is  simply a flat file, with one symbol
	   pair per line.  Line comments may be introduced by the hash charac-
	   ter.  This option may be given more than once.

       --weaken
	   Change all global symbols in the file to be weak.  This can be use-
	   ful when building an object which  will  be	linked	against  other
	   objects  using  the	-R  option to the linker.  This option is only
	   effective when using an object file format which supports weak sym-
	   bols.

       --keep-symbols=filename
	   Apply  --keep-symbol option to each symbol listed in the file file-
	   name.  filename 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.

       --strip-symbols=filename
	   Apply --strip-symbol option to each symbol listed in the file file-
	   name.   filename  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.

       --keep-global-symbols=filename
	   Apply --keep-global-symbol option to each symbol listed in the file
	   filename.  filename 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.

       --localize-symbols=filename
	   Apply --localize-symbol option to each symbol listed  in  the  file
	   filename.  filename 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.

       --weaken-symbols=filename
	   Apply  --weaken-symbol  option  to  each  symbol listed in the file
	   filename.  filename 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.

       --alt-machine-code=index
	   If the output architecture has alternate  machine  codes,  use  the
	   indexth  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.

       --writable-text
	   Mark the output text as writable.  This option isn't meaningful for
	   all object file formats.

       --readonly-text
	   Make the output text write protected.  This option isn't meaningful
	   for all object file formats.

       --pure
	   Mark the output file as demand paged.  This option isn't meaningful
	   for all object file formats.

       --impure
	   Mark  the  output file as impure.  This option isn't meaningful for
	   all object file formats.

       --prefix-symbols=string
	   Prefix all symbols in the output file with string.

       --prefix-sections=string
	   Prefix all section names in the output file with string.

       --prefix-alloc-sections=string
	   Prefix all the names of all allocated sections in the  output  file
	   with string.

       --add-gnu-debuglink=path-to-file
	   Creates  a  .gnu_debuglink  section	which  contains a reference to
	   path-to-file and adds it to the output file.

       --only-keep-debug
	   Strip a file, removing any  sections  that  would  be  stripped  by
	   --strip-debug and leaving the debugging sections.

	   The	intention is that this option will be used in conjunction with
	   --add-gnu-debuglink	to  create  a  two  part  executable.	One  a
	   stripped  binary  which will occupy less space in RAM and in a dis-
	   tribution and the second a debugging information file which is only
	   needed  if  debugging abilities are required.  The suggested proce-
	   dure to create these files is as follows:

	   1.
	       "foo" then...

	   1.
	       create a file containing the debugging info.

	   1.
	       stripped executable.

	   1.
	       to add a link to the debugging  info  into  the	stripped  exe-
	       cutable.

	   Note - the choice of ".dbg" as an extension for the debug info file
	   is arbitrary.  Also the "--only-keep-debug" step is optional.   You
	   could instead do this:

	   1.
	   1.
	   1.
	   1.

	   ie  the  file pointed to by the --add-gnu-debuglink can be the full
	   executable.	It  does  not  have  to  be  a	file  created  by  the
	   --only-keep-debug switch.

       -V
       --version
	   Show the version number of objcopy.

       -v
       --verbose
	   Verbose output: list all object files modified.  In the case of ar-
	   chives, objcopy -V lists all members of the archive.

       --help
	   Show a summary of the options to objcopy.

       --info
	   Display a list showing all architectures and object formats	avail-
	   able.

SEE ALSO
       ld(1), objdump(1), and the Info entries for binutils.

COPYRIGHT
       Copyright  (c)  1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002,
       2003 Free Software Foundation, Inc.

       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 ``GNU
       Free Documentation License''.



binutils-2.14.91		  2004-04-09			    OBJCOPY(1)
=13853
+50
(20)