OS Manuals

/usr/bin/arm-none-eabi-objcopy

GNU Binutils built as a cross toolchain for the bare-metal ARM EABI target (arm-none-eabi). It provides target-prefixed tools: arm-none-eabi-as, -ld, -ld.bfd, -objcopy, -objdump, -nm, -ar, -ranlib, -strip, -readelf, -size, -strings, -addr2line, -c++filt, -elfedit and -gprof. They assemble, link, inspect and convert ARM/Thumb object files for Cortex-M/R/A embedded firmware development. The package is built from the same binutils-gdb source as Wolfi's native binutils, configured with --target=arm-none-eabi.

From binutils-arm-none-eabi 2.47-r2 (enterprise-packages), captured 2026-11-08 by running arm-none-eabi-objcopy --help (exit 0). permalink

Usage: /usr/bin/arm-none-eabi-objcopy [option(s)] in-file [out-file]
 Copies a binary file, possibly transforming it in the process
 The options are:
  -I --input-target <bfdname>      Assume input file is in format <bfdname>
  -O --output-target <bfdname>     Create an output file in format <bfdname>
  -B --binary-architecture <arch>  Set output arch, when input is arch-less
  -F --target <bfdname>            Set both input and output format to <bfdname>
     --debugging                   Convert debugging information, if possible
  -p --preserve-dates              Copy modified/access timestamps to the output
  -D --enable-deterministic-archives
                                   Produce deterministic output when stripping archives (default)
  -U --disable-deterministic-archives
                                   Disable -D behavior
  -j --only-section <name>         Only copy section <name> into the output
     --add-gnu-debuglink=<file>    Add section .gnu_debuglink linking to <file>
  -R --remove-section <name>       Remove section <name> from the output
     --remove-relocations <name>   Remove relocations from section <name>
     --strip-section-headers              Strip section header from the output
  -S --strip-all                   Remove all symbol and relocation information
  -g --strip-debug                 Remove all debugging symbols & sections
     --strip-dwo                   Remove all DWO sections
     --strip-unneeded              Remove all symbols not needed by relocations
  -N --strip-symbol <name>         Do not copy symbol <name>
     --strip-unneeded-symbol <name>
                                   Do not copy symbol <name> unless needed by
                                     relocations
     --only-keep-debug             Strip everything but the debug information
     --extract-dwo                 Copy only DWO sections
     --extract-symbol              Remove section contents but keep symbols
     --keep-section <name>         Do not strip section <name>
  -K --keep-symbol <name>          Do not strip symbol <name>
     --keep-section-symbols        Do not strip section symbols
     --keep-file-symbols           Do not strip file symbol(s)
     --localize-hidden             Turn all ELF hidden symbols into locals
  -L --localize-symbol <name>      Force symbol <name> to be marked as a local
     --globalize-symbol <name>     Force symbol <name> to be marked as a global
  -G --keep-global-symbol <name>   Localize all symbols except <name>
  -W --weaken-symbol <name>        Force symbol <name> to be marked as a weak
     --weaken                      Force all global symbols to be marked as weak
  -w --wildcard                    Permit wildcard in symbol comparison
  -x --discard-all                 Remove all non-global symbols
  -X --discard-locals              Remove any compiler-generated symbols
  -i --interleave[=<number>]       Only copy N out of every <number> bytes
     --interleave-width <number>   Set N for --interleave
  -b --byte <num>                  Select byte <num> in every interleaved block
     --gap-fill <val>              Fill gaps between sections with <val>
     --pad-to <addr>               Pad the last section up to address <addr>
     --set-start <addr>            Set the start address to <addr>
    {--change-start|--adjust-start} <incr>
                                   Add <incr> to the start address
    {--change-addresses|--adjust-vma} <incr>
                                   Add <incr> to LMA, VMA and start addresses
    {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>
                                   Change LMA and VMA of section <name> by <val>
     --change-section-lma <name>{=|+|-}<val>
                                   Change the LMA of section <name> by <val>
     --change-section-vma <name>{=|+|-}<val>
                                   Change the VMA of section <name> by <val>
    {--[no-]change-warnings|--[no-]adjust-warnings}
                                   Warn if a named section does not exist
     --set-section-flags <name>=<flags>
                                   Set section <name>'s properties to <flags>
     --set-section-alignment <name>=<align>
                                   Set section <name>'s alignment to <align> bytes
     --add-section <name>=<file>   Add section <name> found in <file> to output
     --update-section <name>=<file>
                                   Update contents of section <name> with
                                   contents found in <file>
     --dump-section <name>=<file>  Dump the contents of section <name> into <file>
     --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>
     --long-section-names {enable|disable|keep}
                                   Handle long section names in Coff objects.
     --change-leading-char         Force output format's leading character style
     --remove-leading-char         Remove leading character from global symbols
     --reverse-bytes=<num>         Reverse <num> bytes at a time, in output sections with content
     --redefine-sym <old>=<new>    Redefine symbol name <old> to <new>
     --redefine-syms <file>        --redefine-sym for all symbol pairs
                                     listed in <file>
     --srec-len <number>           Restrict the length of generated Srecords
     --srec-forceS3                Restrict the type of generated Srecords to S3
     --strip-symbols <file>        -N for all symbols listed in <file>
     --strip-unneeded-symbols <file>
                                   --strip-unneeded-symbol for all symbols listed
                                     in <file>
     --keep-symbols <file>         -K for all symbols listed in <file>
     --localize-symbols <file>     -L for all symbols listed in <file>
     --globalize-symbols <file>    --globalize-symbol for all in <file>
     --keep-global-symbols <file>  -G for all symbols listed in <file>
     --weaken-symbols <file>       -W for all symbols listed in <file>
     --binary-symbol-prefix <prefix>
                                    Use <prefix> as the base symbol name for the input file
                                     (default: derived from file name)
     --add-symbol <name>=[<section>:]<value>[,<flags>]  Add a symbol
     --alt-machine-code <index>    Use the target's <index>'th alternative machine
     --writable-text               Mark the output text as writable
     --readonly-text               Make the output text write protected
     --pure                        Mark the output file as demand paged
     --impure                      Mark the output file as impure
     --prefix-symbols <prefix>     Add <prefix> to start of every symbol name
     --prefix-sections <prefix>    Add <prefix> to start of every section name
     --prefix-alloc-sections <prefix>
                                   Add <prefix> to start of every allocatable
                                     section name
     --file-alignment <num>        Set PE file alignment to <num>
     --heap <reserve>[,<commit>]   Set PE reserve/commit heap to <reserve>/
                                   <commit>
     --image-base <address>        Set PE image base to <address>
     --section-alignment <num>     Set PE section alignment to <num>
     --stack <reserve>[,<commit>]  Set PE reserve/commit stack to <reserve>/
                                   <commit>
     --subsystem <name>[:<version>]
                                   Set PE subsystem to <name> [& <version>]
     --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]
                                   Compress DWARF debug sections
     --decompress-debug-sections   Decompress DWARF debug sections using zlib
     --elf-stt-common=[yes|no]     Generate ELF common symbols with STT_COMMON
                                     type
     --verilog-data-width <number> Specifies data width, in bytes, for verilog output
  -M  --merge-notes                Remove redundant entries in note sections
      --no-merge-notes             Do not attempt to remove redundant notes (default)
  -v --verbose                     List all object files modified
  @<file>                          Read options from <file>
  -V --version                     Display this program's version number
  -h --help                        Display this output
     --info                        List object formats & architectures supported
/usr/bin/arm-none-eabi-objcopy: supported targets: elf32-littlearm elf32-littlearm-fdpic elf32-bigarm elf32-bigarm-fdpic elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin
Report bugs to <https://sourceware.org/bugzilla/>
Options (123)
OptionDescriptionSource
-I --input-targetAssume input file is in format <bfdname>help + man
-O --output-targetCreate an output file in format <bfdname>help + man
-B --binary-architectureSet output arch, when input is arch-lesshelp + man
-F --targetSet both input and output format to <bfdname>help + man
--debuggingConvert debugging information, if possible.help + man
-p --preserve-datesCopy modified/access timestamps to the outputhelp + man
-D --enable-deterministic-archivesProduce deterministic output when stripping archives (default)help + man
-U --disable-deterministic-archivesDisable -D behaviorhelp + man
-j --only-sectionOnly copy section <name> into the outputhelp + man
--add-gnu-debuglink fileCreates a .gnu_debuglink section which contains a reference to path-to-file and adds it to the output file.help + man
-R --remove-sectionRemove section <name> from the outputhelp + man
--remove-relocations nameRemove non-dynamic relocations from the output file for any section matching sectionpattern.help + man
--strip-section-headersStrip section header This option is specific to ELF files.help + man
-S --strip-allRemove all symbol and relocation informationhelp + man
-g --strip-debugRemove all debugging symbols & sectionshelp + man
--strip-dwoRemove the contents of all DWARF .dwo sections, leaving the remaining debugging sections and all symbols intact.help + man
--strip-unneededRemove all symbols that are not needed for relocation processing in addition to debugging symbols and sections stripped by --strip-debug.help + man
-N --strip-symbolDo not copy symbol <name>help + man
--strip-unneeded-symbol nameDo not copy symbol symbolname from the source file unless it is needed by a relocation.help + man
--only-keep-debugStrip a file, removing contents of any sections that would not be stripped by --strip-debug and leaving the debugging sections intact.help + man
--extract-dwoExtract the contents of all DWARF .dwo sections.help + man
--extract-symbolKeep the file's section flags and symbols but remove all section data.help + man
--keep-section nameWhen removing sections from the output file, keep sections that match sectionpattern.help + man
-K --keep-symbolDo not strip symbol <name>help + man
--keep-section-symbolsWhen stripping a file, perhaps with --strip-debug or --strip-unneeded, retain any symbols specifying section names, which would otherwise get stripped.help + man
--keep-file-symbolsWhen stripping a file, perhaps with --strip-debug or --strip-unneeded, retain any symbols specifying source file names, which would otherwise get stripped.help + man
--localize-hiddenIn an ELF object, mark all symbols that have hidden or internal visibility as local.help + man
-L --localize-symbolForce symbol <name> to be marked as a localhelp + man
--globalize-symbol nameGive symbol symbolname global scoping so that it is visible outside of the file in which it is defined.help + man
-G --keep-global-symbolLocalize all symbols except <name>help + man
-W --weaken-symbolForce symbol <name> to be marked as a weakhelp + man
--weakenChange all global symbols in the file to be weak.help + man
-w --wildcardPermit wildcard in symbol comparisonhelp + man
-x --discard-allRemove all non-global symbolshelp + man
-X --discard-localsRemove any compiler-generated symbolshelp + man
-i --interleave[=<numberOnly copy N out of every <number> byteshelp
--interleave-width numberWhen used with the --interleave option, copy width bytes at a time.help + man
-b --byteSelect byte <num> in every interleaved blockhelp + man
--gap-fill valFill gaps between sections with <val>help + man
--pad-to addrPad the output file up to the load address address.help + man
--set-start addrSet the start address (also known as the entry address) of the new file to val.help + man
--change-section-lma name>{=|+|-}<valSet or change the LMA address of any sections matching sectionpattern.help + man
--change-section-vma name>{=|+|-}<valSet or change the VMA address of any section matching sectionpattern.help + man
--set-section-flags name>=<flagsSet the flags for any sections matching sectionpattern.help + man
--set-section-alignment name>=<alignSet the alignment for any sections matching sectionpattern.help + man
--add-section name>=<fileAdd a new section named sectionname while copying the file.help + man
--update-section name>=<fileReplace the existing contents of a section named sectionname with the contents of file filename.help + man
--dump-section name>=<filePlace the contents of section named sectionname into the file filename, overwriting any contents that may have been there previously.help + man
--long-section-names enable|disable|keepControls the handling of long section names when processing "COFF" and "PE-COFF" object formats.help + man
--change-leading-charSome object file formats use special characters at the start of symbols.help + man
--remove-leading-charIf the first character of a global symbol is a special symbol leading character used by the object file format, remove the character.help + man
--reverse-bytes numReverse <num> bytes at a time, in output sections with contenthelp + man
--redefine-sym old>=<newChange the name of a symbol old, to new.help + man
--redefine-syms fileApply --redefine-sym to each symbol pair "old new" listed in the file filename.help + man
--srec-len numberRestrict the length of generated Srecordshelp + man
--srec-forceS3Restrict the type of generated Srecords to S3help + man
--strip-symbols fileApply --strip-symbol option to each symbol listed in the file filename.help + man
--strip-unneeded-symbols fileApply --strip-unneeded-symbol option to each symbol listed in the file filename.help + man
--keep-symbols fileApply --keep-symbol option to each symbol listed in the file filename.help + man
--localize-symbols fileApply --localize-symbol option to each symbol listed in the file filename.help + man
--globalize-symbols fileApply --globalize-symbol option to each symbol listed in the file filename.help + man
--keep-global-symbols fileApply --keep-global-symbol option to each symbol listed in the file filename.help + man
--weaken-symbols fileApply --weaken-symbol option to each symbol listed in the file filename.help + man
--binary-symbol-prefix prefixWhen used with --input-target=binary, sets string as the base name for the symbols generated for the input file.help + man
--add-symbol name>=[<section>:]<valueAdd a symbolhelp
--alt-machine-code indexIf the output architecture has alternate machine codes, use the indexth code instead of the default one.help + man
--writable-textMark the output text as writable.help + man
--readonly-textMake the output text write protected.help + man
--pureMark the output file as demand paged.help + man
--impureMark the output file as impure.help + man
--prefix-symbols prefixPrefix all symbols in the output file with string.help + man
--prefix-sections prefixPrefix all section names in the output file with string.help + man
--prefix-alloc-sections prefixPrefix all the names of all allocated sections in the output file with string.help + man
--file-alignment numSet PE file alignment to <num>help + man
--heap reserveSet PE reserve/commit heap to <reserve>/ <commit>help + man
--image-base addressUse value as the base address of your program or dll.help + man
--section-alignment num[This option is specific to PE targets.]help + man
--stack reserveSet PE reserve/commit stack to <reserve>/ <commit>help + man
--subsystem name>[:<versionSet PE subsystem to <name> [& <version>]help + man
--compress-debug-sections none|zlib|zlib-gnu|zlib-gabi|zstdCompress DWARF debug sections using zlib with SHF_COMPRESSED from the ELF ABI.help + man
--decompress-debug-sectionsDecompress DWARF debug sections using zlibhelp + man
--elf-stt-common yes|noGenerate ELF common symbols with STT_COMMON typehelp + man
-M--merge-notes Remove redundant entries in note sectionshelp
--no-merge-notesFor ELF files, attempt (or do not attempt) to reduce the size of any SHT_NOTE type sections by removing duplicate notes.help + man
-v --verboseList all object files modifiedhelp + man
-V --versionDisplay this program's version numberhelp + man
-h --helpDisplay this outputhelp
--infoDisplay a list showing all architectures and object formats available.help + man
--input-target bfdnameConsider the source file's object format to be bfdname, rather than attempting to deduce it. (in the manual page but not in --help)man
--output-target bfdnameWrite the output file using the object format bfdname. (in the manual page but not in --help)man
--target bfdnameUse bfdname as the object format for both the input and the output file; (in the manual page but not in --help)man
--binary-architecture bfdarchUseful when transforming a architecture-less input file into an object file. (in the manual page but not in --help)man
--only-section sectionpatternCopy only the indicated sections from the input file to the output file. (in the manual page but not in --help)man
--remove-section sectionpatternRemove any section matching sectionpattern from the output file. (in the manual page but not in --help)man
--strip-allDo not copy relocation and symbol information from the source file. (in the manual page but not in --help)man
--strip-debugDo not copy debugging symbols or sections from the source file. (in the manual page but not in --help)man
--keep-symbol symbolnameWhen stripping symbols, keep symbol symbolname even if it would normally be stripped. (in the manual page but not in --help)man
--strip-symbol symbolnameDo not copy symbol symbolname from the source file. (in the manual page but not in --help)man
--keep-global-symbol symbolnameKeep only symbol symbolname global. (in the manual page but not in --help)man
--localize-symbol symbolnameConvert a global or weak symbol called symbolname into a local symbol, so that it is not visible externally. (in the manual page but not in --help)man
--weaken-symbol symbolnameMake symbol symbolname weak. (in the manual page but not in --help)man
--wildcardPermit regular expressions in symbolnames used in other command line options. (in the manual page but not in --help)man
--discard-allDo not copy non-global symbols from the source file. (in the manual page but not in --help)man
--discard-localsDo not copy compiler-generated local symbols. (in the manual page but not in --help)man
--byte byteIf interleaving has been enabled via the --interleave option then start the range of bytes to keep at the byteth byte. (in the manual page but not in --help)man
--preserve-datesSet the access and modification dates of the output file to be the same as those of the input file. (in the manual page but not in --help)man
--enable-deterministic-archivesOperate in deterministic mode. (in the manual page but not in --help)man
--disable-deterministic-archivesDo not operate in deterministic mode. (in the manual page but not in --help)man
--change-start incr (in the manual page but not in --help)man
--adjust-start incrChange the start address (also known as the entry address) by adding incr. (in the manual page but not in --help)man
--change-addresses incr (in the manual page but not in --help)man
--adjust-vma incrChange the VMA and LMA addresses of all sections, as well as the start address, by adding incr. (in the manual page but not in --help)man
--change-section-address sectionpattern (in the manual page but not in --help)man
--adjust-section-vma sectionpatternSet or change both the VMA address and the LMA address of any section matching sectionpattern. (in the manual page but not in --help)man
--change-warnings (in the manual page but not in --help)man
--adjust-warningsIf --change-section-address or --change-section-lma or --change-section-vma is used, and the section pattern does not match any sections, issue a warning. (in the manual page but not in --help)man
--no-change-warnings (in the manual page but not in --help)man
--no-adjust-warningsDo not issue a warning if --change-section-address or --adjust-section-lma or --adjust-section-vma is used, even if the section pattern does not match any sections. (in the manual page but not in --help)man
--merge-notes (in the manual page but not in --help)man
--versionShow the version number of objcopy. (in the manual page but not in --help)man
--verilog-data-width bytesFor Verilog output, this options controls the number of bytes converted for each output data element. (in the manual page but not in --help)man
--verboseVerbose output: list all object files modified. (in the manual page but not in --help)man
--helpShow a summary of the options to objcopy. (in the manual page but not in --help)man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.