diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2015-02-13 17:04:42 +0000 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2015-02-28 21:25:51 +0000 |
commit | acf1419f9c52d06ee70169b85c5f8980c7359f8f (patch) | |
tree | d8a193b0f2a2411aa63f1cf4a4284c33368cb5df /binutils/doc | |
parent | b7236fbee40060bcf5e90740a5c5706317749f91 (diff) | |
download | gdb-acf1419f9c52d06ee70169b85c5f8980c7359f8f.zip gdb-acf1419f9c52d06ee70169b85c5f8980c7359f8f.tar.gz gdb-acf1419f9c52d06ee70169b85c5f8980c7359f8f.tar.bz2 |
objcopy: Add --update-section option.
New option for objcopy --update-section allows the contents of a section
to be updated while maintaining the section flags, and, for ELF files,
the section to segment mapping.
New test uses --dump-section and --update-section to check that a
section can be made larger and smaller with an update.
binutils/ChangeLog:
* objcopy.c (update_sections): New list.
(command_line_switch): Add OPTION_UPDATE_SECTION.
(copy_options): Add update-section.
(copy_usage): Document new option.
(is_update_section): New function.
(is_strip_section_1): Add check for attempt to update and remove
the same section.
(copy_object): Update size and content of requested sections.
(skip_section): Don't copy for updated sections.
(copy_main): Handle --update-section.
* doc/binutils.texi (objcopy): Add description of --update-section
option.
* NEWS: Mention --update-section option.
binutils/testsuite/ChangeLog:
* binutils-all/update-1.s: New file.
* binutils-all/update-2.s: New file.
* binutils-all/update-3.s: New file.
* binutils-all/update-4.s: New file.
* binutils-all/update-section.exp: New file.
Diffstat (limited to 'binutils/doc')
-rw-r--r-- | binutils/doc/binutils.texi | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index a5bfd4c..d63c04c 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -1091,6 +1091,7 @@ objcopy [@option{-F} @var{bfdname}|@option{--target=}@var{bfdname}] [@option{--set-section-flags} @var{sectionpattern}=@var{flags}] [@option{--add-section} @var{sectionname}=@var{filename}] [@option{--dump-section} @var{sectionname}=@var{filename}] + [@option{--update-section} @var{sectionname}=@var{filename}] [@option{--rename-section} @var{oldname}=@var{newname}[,@var{flags}]] [@option{--long-section-names} @{enable,disable,keep@}] [@option{--change-leading-char}] [@option{--remove-leading-char}] @@ -1489,6 +1490,21 @@ that it does not create a formatted file, it just dumps the contents as raw binary data, without applying any relocations. The option can be specified more than once. +@item --update-section @var{sectionname}=@var{filename} +Replace the existing contents of a section named @var{sectionname} +with the contents of file @var{filename}. The size of the section +will be adjusted to the size of the file. The section flags for +@var{sectionname} will be unchanged. For ELF format files the section +to segment mapping will also remain unchanged, something which is not +possible using @option{--remove-section} followed by +@option{--add-section}. The option can be specified more than once. + +Note - it is possible to use @option{--rename-section} and +@option{--update-section} to both update and rename a section from one +command line. In this case, pass the original section name to +@option{--update-section}, and the original and new section names to +@option{--rename-section}. + @item --rename-section @var{oldname}=@var{newname}[,@var{flags}] Rename a section from @var{oldname} to @var{newname}, optionally changing the section's flags to @var{flags} in the process. This has |