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

FreeBSD Manual Pages

  
 
  

home | help
OBJCOPY(1)		    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  ac-
       cording	to the command line options specified.	If argument outfile is
       not specified, objcopy will create a temporary  file  and  will	subse-
       quently 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  out-
	       put 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 ar-
	       gument objformat.  The argument objformat should	be one of  the
	       target 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
	       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 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 in-
	       cludes 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,  op-
	       tionally	changing the sections flags to that specified by argu-
	       ment  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 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	14.3			August 30, 2017			    OBJCOPY(1)

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

home | help