FreeBSD manual
download PDF document: objcopy.1.pdf
OBJCOPY(1) FreeBSD General Commands Manual OBJCOPY(1)
NAME
objcopy - copy and translate object files
SYNOPSIS
objcopy [-I objformat | -s objformat | --input-target=objformat]
[-K symbolname | --keep-symbol=symbolname]
[-L symbolname | --localize-symbol=symbolname]
[-N symbolname | --strip-symbol=symbolname]
[-O objformat | --output-target=objformat]
[-R sectionname | --remove-section=sectionname]
[-S | --strip-all] [-V | --version]
[-W symbolname | --weaken-symbol=symbolname]
[-X | --discard-locals] [-d | -g | --strip-debug] [-h | --help]
[-j sectionname | --only-section=sectionname]
[-p | --preserve-dates] [-w | --wildcard] [-x | --discard-all]
[--add-gnu-debuglink=filename]
[--add-section sectionname=filename]
[--adjust-section-vma section{+|-|=}val |
--change-section-address section{+|-|=}val]
[--adjust-start=increment | --change-start=increment]
[--adjust-vma=increment | --change-addresses=increment]
[--adjust-warnings | --change-warnings]
[--change-section-lma section{+|-|=}val]
[--change-section-vma section{+|-|=}val] [--extract-dwo]
[--gap-fill=val] [--globalize-symbol=ar symbolname]
[--globalize-symbols=filename] [--localize-hidden]
[--localize-symbols=filename]
[--no-adjust-warnings | --no-change-warnings] [--only-keep-debug]
[--pad-to=address] [--prefix-alloc-sections=string]
[--prefix-sections=string] [--prefix-symbols=string]
[--rename-section oldname=newname[,flags]]
[--set-section-flags sectionname=flags] [--set-start=address]
[--srec-forceS3] [--srec-len=val] [--strip-dwo]
[--strip-symbols=filename] [--strip-unneeded] infile [outfile]
DESCRIPTION
The objcopy utility copies the content of the binary object named by
argument infile to that named by argument outfile, transforming it
according to the command line options specified. If argument outfile is
not specified, objcopy will create a temporary file and will subsequently
rename it as infile.
The objcopy utility supports the following options:
-I objformat | -s objformat | --input-target=objformat
Specify that the input file named by the argument infile is in
the object format specified by the argument objformat.
-K symbolname | --keep-symbol=symbolname
Copy the symbol named by argument symbolname to the output.
-L symbolname | --localize-symbol=symbolname
Make the symbol named by argument symbolname local to the output
file.
-N symbol | --strip-symbol=symbolname
Do not copy the symbol named by argument symbolname to the
-R sectionname | --remove-section=sectionname
Remove any section with name sectionname from the output file.
-S | --strip-all
Do not copy symbol and relocation information to the target file.
-V | --version
Print a version identifier and exit.
-W symbolname | --weaken-symbol=symbolname
Mark the symbol named by argument symbolname as weak in the
output.
-X | --discard-locals
Do not copy compiler generated local symbols to the output.
-d | -g | --strip-debug
Do not copy debugging information to the target file.
-h | --help
Display a help message and exit.
-j sectionname | --only-section=sectionname
Copy only the section named by argument sectionname to the
output.
-p | --preserve-dates
Set the access and modification times of the output file to the
same as those of the input.
-w | --wildcard
Use shell-style patterns to name symbols. The following meta-
characters are recognized in patterns:
! If this is the first character of the pattern, invert the
sense of the pattern match.
* Matches any string of characters in a symbol name.
? Matches zero or one character in a symbol name.
[ Mark the start of a character class.
\ Remove the special meaning of the next character in the
pattern.
] Mark the end of a character class.
-x | --discard-all
Do not copy non-global symbols to the output.
--add-gnu-debuglink=filename
Create a .gnu_debuglink section in the output file that
references the debug data in filename.
--add-section sectionname=filename
Add a new section to the output file with name sectionname. The
contents of the section are taken from the file named by argument
filename. The size of the section will be the number of bytes in
file filename.
--adjust-section-vma section{+|-|=}val | --change-section-address
section{+|-|=}val
Depending on the operator specified, increase, decrease or set
both the virtual memory address and the load memory address of
--adjust-vma=increment | --change-addresses=increment
Increase the virtual memory address and the load memory address
of all sections by the value specified by the argument increment.
--adjust-warnings | --change-warnings
Issue a warning if the section specified by the options
--change-section-address, --change-section-lma or
--change-section-vma does not exist in the input object. This is
the default.
--change-section-lma section{+|-|=}val
Change or set the load memory address of the section named by the
argument section. Depending on the operator specified, the value
in argument val will be used as an increment, a decrement or as
the new value of the load memory address.
--change-section-vma section{+|-|=}val
Change or set the virtual memory address of the section named by
the argument section. Depending on the operator specified, the
value in argument val will be used as an increment, a decrement
or as the new value of the virtual memory address.
--extract-dwo
Copy only .dwo debug sections to the output file.
--gap-fill=val
Fill the gaps between sections with the byte value specified by
the argument val.
--globalize-symbol=symbolname
Make the symbol named by argument symbolname global, so that it
is visible outside of the file in which it is defined.
--globalize-symbols=filename
Make each symbol listed in the file specified by filename global.
--localize-hidden
Make all hidden symbols local to the output file. This includes
symbols with internal visiblity.
--localize-symbols=filename
Make each symbol listed in the file specified by filename local
to the output file.
--no-adjust-warnings | --no-change-warnings
Do not issue a warning if the section specified by the options
--change-section-address, --change-section-lma or
--change-section-vma is missing in the input object.
--only-keep-debug
Copy only debugging information to the output file.
--pad-to=address
Pad the load memory address of the output object to the value
specified by the argument address by increasing the size of the
section with the highest load memory address.
--prefix-alloc-sections=string
Prefix the symbol names of all the symbols with string.
--rename-section oldname=newname[,flags]
Rename the section named by argument oldname to newname,
optionally changing the sections flags to that specified by
argument flags. Allowed values for the argument flags are as for
option --set-section-flags below.
--set-section-flags sectionname=flags
Set the flags for the section named by argument sectionname to
those specified by argument flags. Argument flags is a comma
separated list of the following flag names:
alloc The section occupies space in the output file.
code The section contains machine instructions.
contents This flag is accepted but is ignored.
data The section contains writeable data.
debug The section holds debugging information.
load The section is loadable.
noload The section should not be loaded into memory.
readonly The section is not writable.
rom The section contains ROM'able contents.
share This flag is accepted but is ignored.
--set-start=address
Set the start address of the output ELF object to the value
specified by the argument address.
--srec-forceS3
Only generate S-records of type "S3". This option is only
meaningful when the output target is set to "srec".
--srec-len=val
Set the maximum length of an S-record line to val. This option
is only meaningful when the output target is set to "srec".
--strip-dwo
Do not copy .dwo debug sections to the output file.
--strip-symbols=filename
Do not copy any of the symbols specified by filename to the
output.
--strip-unneeded
Do not copy symbols that are not needed for relocation
processing.
DIAGNOSTICS
The objcopy utility exits 0 on success, and >0 if an error occurs.
SEE ALSO
ar(1), ld(1), mcs(1), strip(1), elf(3), elftc_bfd_find_target(3), ar(5),
elf(5)
COMPATIBILITY
The objcopy utility is expected to be option compatible with GNU objcopy.
HISTORY
objcopy has been implemented by Kai Wang
<kaiwang27@users.sourceforge.net>.