forked from Imagelibrary/binutils-gdb
ELF: Don't warn an empty PT_LOAD with the program headers
When rewriting the program headers, don't warn an empty PT_LOAD with the program headers. bfd/ PR binutils/30508 * elf.c (rewrite_elf_program_header): Don't warn if an empty PT_LOAD contains the program headers. ld/ PR binutils/30508 * testsuite/ld-elf/pr30508.d: New file. * testsuite/ld-elf/pr30508.s: Likewise.
This commit is contained in:
@@ -7210,10 +7210,12 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd, bfd_vma maxpagesize)
|
||||
no sections, but ordinary, loadable segments should contain
|
||||
something. They are allowed by the ELF spec however, so only
|
||||
a warning is produced.
|
||||
Don't warn if an empty PT_LOAD contains the program headers.
|
||||
There is however the valid use case of embedded systems which
|
||||
have segments with p_filesz of 0 and a p_memsz > 0 to initialize
|
||||
flash memory with zeros. No warning is shown for that case. */
|
||||
if (segment->p_type == PT_LOAD
|
||||
&& !map->includes_phdrs
|
||||
&& (segment->p_filesz > 0 || segment->p_memsz == 0))
|
||||
/* xgettext:c-format */
|
||||
_bfd_error_handler
|
||||
|
||||
13
ld/testsuite/ld-elf/pr30508.d
Normal file
13
ld/testsuite/ld-elf/pr30508.d
Normal file
@@ -0,0 +1,13 @@
|
||||
#ld: -z separate-code
|
||||
#objcopy_linked_file: -R .foo
|
||||
#readelf: -lW
|
||||
#target: *-*-linux-gnu *-*-gnu* *-*-nacl* arm*-*-uclinuxfdpiceabi
|
||||
#xfail: h8300-*-* mips*-*-* rx-*-linux*
|
||||
|
||||
#...
|
||||
Section to Segment mapping:
|
||||
Segment Sections...
|
||||
#...
|
||||
0.
|
||||
#...
|
||||
0. .text
|
||||
14
ld/testsuite/ld-elf/pr30508.s
Normal file
14
ld/testsuite/ld-elf/pr30508.s
Normal file
@@ -0,0 +1,14 @@
|
||||
.text
|
||||
.global start /* Used by SH targets. */
|
||||
start:
|
||||
.global _start
|
||||
_start:
|
||||
.global __start
|
||||
__start:
|
||||
.global main /* Used by HPPA targets. */
|
||||
main:
|
||||
.globl _main /* Used by LynxOS targets. */
|
||||
_main:
|
||||
.dc.a 0
|
||||
.section .foo,"ax",%progbits
|
||||
.dc.a 0
|
||||
Reference in New Issue
Block a user