objcopy


     NAME
          objcopy - copy and translate object files


     SYNOPSIS
          objcopy
               [-F bfdname | --target=bfdname]
               [-I bfdname | --input-target=bfdname]
               [-O bfdname | --output-target=bfdname]
               [-R sectionname | --remove-section=sectionname]
               [-S | --strip-all] [-g | --strip-debug]
               [-N symbolname | --strip-symbol=symbolname]
               [-x | --discard-all] [-X | --discard-locals]
               [-b byte | --byte=byte]
               [-i interleave | --interleave=interleave]
               [--gap-fill=val] [--pad-to=address] [--set-start=val]
               [--adjust-start=incr] [--adjust-vma=incr]
               [--adjust-section-vma=section{=,+,-}val]
               [--adjust-warnings] [--no-adjust-warnings]
               [--set-section-flags=section=flags]
               [--add-section=sectionname=filename] [-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 by
          command-line options.

          objcopy creates temporary files to do its translations and
          deletes them afterward.  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.

          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 virtual
          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 which is not needed by
          the binary file.

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


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

          -R sectionname, --remove-section=sectionname
               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.

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

          -N symbolname, --strip-symbol=symbolname
               Do not copy symbol symbolname from the source file.
               This option may be given more than once, and may be
               combined with other strip options.

          -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 the interleave-1.  This option is useful for
               creating files to program ROMs.  It is typically used
               with an srec output target.

          -i interleave, --interleave=interleave
               Only copy one out of every interleave bytes.  Which one
               to copy is selected by the -b or --byte option.  The
               default is 4.  The interleave is ignored if neither -b
               nor --byte is given.

          --gap-fill=val
               Fill gaps between sections with val.  This 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 virtual 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.

          --adjust-start=incr
               Adjust the start address by adding incr.  Not all
               object file formats support setting the start address.

          --adjust-vma=incr
               Adjust the address 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.

          --adjust-section-vma=section{=,+,-}val
               Set or adjust the address of the named section.  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 --adjust-vma, above.  If section
               does not exist in the input file, a warning will be
               issued, unless --no-adjust-warnings is used.

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

          --no-adjust-warnings
               Do not issue a warning if --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, load, readonly, code,
               data, and rom.  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.

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

          -V, --version
               Show the version number of objcopy and exit.

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

     SEE ALSO
          `binutils' entry in info; The GNU Binary Utilities, Roland
          H. Pesch (June 1993).


     COPYING
          Copyright (c) 1993,1994 Free Software Foundation, Inc.

          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.

          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.

          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.