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]
               [-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 ]
               [--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]
               [-v|--verbose]
               [-V|--version]
               [--help]
               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
       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 dis­
       carded.  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 debug­
       ging 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 endianness or which have
       no endianness (eg 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 bfd­
           name, 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_obj­
           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 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  visi­
           ble  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.

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

       -X
       --discard-locals
           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 sec­
           tion.  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 formats 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 relo­
           cate  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
           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 sec­
           tion 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 mem­
           ory, 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.   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-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-section-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  argu­
           ment  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  con­
           tents--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.

                     objcopy -I binary -O <output_format> -B <architecture> \
                      --rename-section .data=.rodata,alloc,load,readonly,data,contents \
                      <input_binary_file> <output_object_file>

       --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 objcopy to change the lead­
           ing 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 char­
           acter, or change a character, as appropriate.

       --remove-leading-char
           If the first character of a global symbol is a special
           symbol  leading character used by the object file for­
           mat, 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  con­
           ventions  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 colli­
           sions.

       --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 -R option to
           the  linker.  This option is only effective when using
           an object file format which supports weak symbols.

       --keep-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  com­
           ments  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.

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

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

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

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




binutils-2.13.90.0.18       2003-03-13                 OBJCOPY(1)

Man(1) output converted with man2html