mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-24 09:43:36 +08:00
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:
parent
fdad7678b7
commit
385e5b9039
@ -1,3 +1,8 @@
|
||||
2018-08-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* readelf.c (process_section_headers): Treat SHT_FINI_ARRAY and
|
||||
SHT_PREINIT_ARRAY as relocatable sections.
|
||||
|
||||
2018-08-30 Chenghua Xu <paul.hua.gm@gmail.com>
|
||||
|
||||
* MAINTAINERS: Add myself as a MIPS port maintainer.
|
||||
|
@ -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))
|
||||
{
|
||||
|
@ -1,3 +1,9 @@
|
||||
2018-08-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* testsuite/gas/elf/elf.exp: Run section14.
|
||||
* testsuite/gas/elf/section14.d: New file.
|
||||
* testsuite/gas/elf/section14.s: Likewise.
|
||||
|
||||
2018-08-29 Daniel Cederman <cederman@gaisler.com>
|
||||
|
||||
* testsuite/gas/sparc/leon.d: New test.
|
||||
|
@ -219,6 +219,7 @@ if { [is_elf_format] } then {
|
||||
run_dump_test "section12a"
|
||||
run_dump_test "section12b"
|
||||
run_dump_test "section13"
|
||||
run_dump_test "section14"
|
||||
run_dump_test "dwarf2-1"
|
||||
run_dump_test "dwarf2-2"
|
||||
run_dump_test "dwarf2-3"
|
||||
|
10
gas/testsuite/gas/elf/section14.d
Normal file
10
gas/testsuite/gas/elf/section14.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: array sections
|
||||
#as: --no-pad-sections
|
||||
#readelf: -S --wide
|
||||
|
||||
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
|
||||
|
||||
Section Headers:
|
||||
+\[Nr\] Name +Type +Addr(ess|) +Off +Size +ES +Flg +Lk +Inf +Al
|
||||
+\[ 0\] +NULL +0+ +0+ +0+ +0+ +0 +0 +0
|
||||
#pass
|
18
gas/testsuite/gas/elf/section14.s
Normal file
18
gas/testsuite/gas/elf/section14.s
Normal file
@ -0,0 +1,18 @@
|
||||
.section .init_array
|
||||
.align 4
|
||||
.type init_array, %object
|
||||
.size init_array, 4
|
||||
init_array:
|
||||
.dc.a foo
|
||||
.section .preinit_array
|
||||
.align 4
|
||||
.type preinit_array, %object
|
||||
.size preinit_array, 4
|
||||
preinit_array:
|
||||
.dc.a foo
|
||||
.section .fini_array
|
||||
.align 4
|
||||
.type fini_array, %object
|
||||
.size fini_array, 4
|
||||
fini_array:
|
||||
.dc.a foo
|
Loading…
Reference in New Issue
Block a user