Stop readelf from complaining about relocation sections with an sh_info field of 0 in dynamic executables.

PR 22587
	* readelf.c (process_section_headers): Do not complain about an
	sh_info field of 0 in relocation sections of ET_EXEC or ET_DYN
	type executables.
This commit is contained in:
Nick Clifton 2017-12-19 09:48:40 +00:00
parent be62dcaa17
commit bef7475fbd
2 changed files with 15 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2017-12-19 Nick Clifton <nickc@redhat.com>
PR 22587
* readelf.c (process_section_headers): Do not complain about an
sh_info field of 0 in relocation sections of ET_EXEC or ET_DYN
type executables.
2017-12-19 Alan Modra <amodra@gmail.com>
* testsuite/binutils-all/ar.exp (unique_symbol): Don't run AR

View File

@ -6268,12 +6268,15 @@ process_section_headers (Filedata * filedata)
&& filedata->section_headers[section->sh_info].sh_type < SHT_LOOS))
{
if (section->sh_info == 0
&& (streq (SECTION_NAME (section), ".rel.dyn")
&& (filedata->file_header.e_type == ET_EXEC
|| filedata->file_header.e_type == ET_DYN
/* These next two tests may be redundant, but
they have been left in for paranoia's sake. */
|| streq (SECTION_NAME (section), ".rel.dyn")
|| streq (SECTION_NAME (section), ".rela.dyn")))
/* The .rel.dyn and .rela.dyn sections have an sh_info field
of zero. The relocations in these sections may apply
to many different sections. */
;
/* Dynamic relocations apply to segments, not sections, so
they do not need an sh_info value. */
;
else
warn (_("[%2u]: Info field (%u) should index a relocatable section.\n"),
i, section->sh_info);