diff options
author | Fāng-ruì Sòng <maskray@google.com> | 2019-11-01 14:47:55 -0700 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2019-11-04 11:55:28 +1030 |
commit | 64f52b3ec1853d14293d5a461d7abc8bde5e3f62 (patch) | |
tree | c51b92c5e9a8c8cb49eed60c703e817a1f3aa248 /binutils/doc | |
parent | 5e874de30bb9e50ac7401f028e3c64e282854d2e (diff) | |
download | gdb-64f52b3ec1853d14293d5a461d7abc8bde5e3f62.zip gdb-64f52b3ec1853d14293d5a461d7abc8bde5e3f62.tar.gz gdb-64f52b3ec1853d14293d5a461d7abc8bde5e3f62.tar.bz2 |
Implement objcopy/strip --keep-section=<sectionpattern>
llvm-objcopy and llvm-strip support an option --keep-section that
keeps some sections from being removed.
* objcopy.c (enum option_values): Add OPTION_KEEP_SECTION.
(SECTION_CONTEXT_KEEP): Define. Adjust other SECTION_CONTEXT macros.
(copy_usage): Describe --keep-section.
(strip_usage): Likewise.
(copy_main): Handle SECTION_CONTEXT_KEEP.
(strip_main): Likewise.
(is_strip_section_1): Likewise.
* testsuite/binutils-all/objcopy.exp: Add tests.
* testsuite/binutils-all/keep-section-1.d: New test driver file.
* testsuite/binutils-all/keep-section-2.d: Likewise.
* doc/binutils.texi: Document the new feature.
* NEWS: Mention the new feature.
Diffstat (limited to 'binutils/doc')
-rw-r--r-- | binutils/doc/binutils.texi | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index 97abf98..2a86b92 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -1186,6 +1186,7 @@ objcopy [@option{-F} @var{bfdname}|@option{--target=}@var{bfdname}] [@option{--interleave-width=}@var{width}] [@option{-j} @var{sectionpattern}|@option{--only-section=}@var{sectionpattern}] [@option{-R} @var{sectionpattern}|@option{--remove-section=}@var{sectionpattern}] + [@option{--keep-section=}@var{sectionpattern}] [@option{--remove-relocations=}@var{sectionpattern}] [@option{-p}|@option{--preserve-dates}] [@option{-D}|@option{--enable-deterministic-archives}] @@ -1369,6 +1370,10 @@ would otherwise remove it. For example: will remove all sections matching the pattern '.text.*', but will not remove the section '.text.foo'. +@item --keep-section=@var{sectionpattern} +When removing sections from the output file, keep sections that match +@var{sectionpattern}. + @item --remove-relocations=@var{sectionpattern} Remove non-dynamic relocations from the output file for any section matching @var{sectionpattern}. This option may be given more than @@ -3242,6 +3247,7 @@ strip [@option{-F} @var{bfdname} |@option{--target=}@var{bfdname}] [@option{-w}|@option{--wildcard}] [@option{-x}|@option{--discard-all}] [@option{-X} |@option{--discard-locals}] [@option{-R} @var{sectionname} |@option{--remove-section=}@var{sectionname}] + [@option{--keep-section=}@var{sectionpattern}] [@option{--remove-relocations=}@var{sectionpattern}] [@option{-o} @var{file}] [@option{-p}|@option{--preserve-dates}] [@option{-D}|@option{--enable-deterministic-archives}] @@ -3312,6 +3318,10 @@ would otherwise remove it. For example: will remove all sections matching the pattern '.text.*', but will not remove the section '.text.foo'. +@item --keep-section=@var{sectionpattern} +When removing sections from the output file, keep sections that match +@var{sectionpattern}. + @item --remove-relocations=@var{sectionpattern} Remove relocations from the output file for any section matching @var{sectionpattern}. This option may be given more than once. Note |