Treat SHT_FINI_ARRAY and SHT_PREINIT_ARRAY as relocatable sections

Since SHT_FINI_ARRAY and SHT_PREINIT_ARRAY sections are relocatable,
this patch fixes readelf and adds a testcase.

binutils/

	* readelf.c (process_section_headers): Treat SHT_FINI_ARRAY and
	SHT_PREINIT_ARRAY as relocatable sections.

gas/

	* testsuite/gas/elf/elf.exp: Run section14.
	* testsuite/gas/elf/section14.d: New file.
	* testsuite/gas/elf/section14.s: Likewise.
This commit is contained in:
H.J. Lu 2018-08-30 08:01:36 -07:00
parent fdad7678b7
commit 385e5b9039
6 changed files with 42 additions and 0 deletions

View file

@ -6359,6 +6359,8 @@ process_section_headers (Filedata * filedata)
&& filedata->section_headers[section->sh_info].sh_type != SHT_NOBITS
&& filedata->section_headers[section->sh_info].sh_type != SHT_NOTE
&& filedata->section_headers[section->sh_info].sh_type != SHT_INIT_ARRAY
&& filedata->section_headers[section->sh_info].sh_type != SHT_FINI_ARRAY
&& filedata->section_headers[section->sh_info].sh_type != SHT_PREINIT_ARRAY
/* FIXME: Are other section types valid ? */
&& filedata->section_headers[section->sh_info].sh_type < SHT_LOOS))
{