Allow objcopy's --set-section-flags options to add or remove the SHF_EXCLUDE flag of ELF sections.

* objcopy.c (parse_flags): Handle "exclude".
	* doc/binutils.texi: Document the support.
This commit is contained in:
Fangrui Song 2020-02-10 16:22:00 +00:00 committed by Nick Clifton
parent 46471187e4
commit 3a5d12fbb4
3 changed files with 11 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2020-02-10 Fangrui Song <maskray@google.com>
* objcopy.c (parse_flags): Handle "exclude".
* doc/binutils.texi: Document the support.
2020-02-10 Aaron Merey <amerey@redhat.com>
* binutils/testsuite/binutils-all/debuginfod.exp:

View File

@ -1644,10 +1644,10 @@ Set the flags for any sections matching @var{sectionpattern}. The
@var{flags} argument is a comma separated string of flag names. The
recognized names are @samp{alloc}, @samp{contents}, @samp{load},
@samp{noload}, @samp{readonly}, @samp{code}, @samp{data}, @samp{rom},
@samp{share}, and @samp{debug}. You can set the @samp{contents} flag
for a section which does not have contents, but it is not meaningful
to clear the @samp{contents} flag of a section which does have
contents--just remove the section instead. Not all flags are
@samp{exclude}, @samp{share}, and @samp{debug}. You can set the
@samp{contents} flag for a section which does not have contents, but it
is not meaningful to clear the @samp{contents} flag of a section which
does have contents--just remove the section instead. Not all flags are
meaningful for all object file formats.
@item --set-section-alignment @var{sectionpattern}=@var{align}

View File

@ -780,6 +780,7 @@ parse_flags (const char *s)
PARSE_FLAG ("code", SEC_CODE);
PARSE_FLAG ("data", SEC_DATA);
PARSE_FLAG ("rom", SEC_ROM);
PARSE_FLAG ("exclude", SEC_EXCLUDE);
PARSE_FLAG ("share", SEC_COFF_SHARED);
PARSE_FLAG ("contents", SEC_HAS_CONTENTS);
PARSE_FLAG ("merge", SEC_MERGE);
@ -794,7 +795,7 @@ parse_flags (const char *s)
copy[len] = '\0';
non_fatal (_("unrecognized section flag `%s'"), copy);
fatal (_("supported flags: %s"),
"alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings");
"alloc, load, noload, readonly, debug, code, data, rom, exclude, share, contents, merge, strings");
}
s = snext;