Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
OBJCOPY(1)		FreeBSD	General	Commands Manual		    OBJCOPY(1)

NAME
     objcopy, 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	out-
	     put.

     -O	objformat | --output-target=objformat
	     Write the output file using the object format specified in	argu-
	     ment objformat.  The argument objformat should be one of the tar-
	     get names recognized by elftc_bfd_find_target(3).

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

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

     -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 refer-
	     ences 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
	     the section named by the argument section.	 The argument val
	     specifies the desired increment, decrement	or new value for the
	     address.

     --adjust-start=increment |	--change-start=increment
	     Increase the entry	point address of the output ELF	object by the
	     value specified in	the argument increment.

     --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	section	names of all the allocated sections with
	     string.

     --prefix-sections=string
	     Prefix the	section	names of all the sections with string.

     --prefix-symbols=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, option-
	     ally 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 spec-
	     ified 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 out-
	     put.

     --strip-unneeded
	     Do	not copy symbols that are not needed for relocation process-
	     ing.

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

FreeBSD	11.1			April 20, 2017			  FreeBSD 11.1

NAME | SYNOPSIS | DESCRIPTION | DIAGNOSTICS | SEE ALSO | COMPATIBILITY | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=objcopy&sektion=1&manpath=FreeBSD+11.1-RELEASE+and+Ports>

home | help