Disable warning message about a program header with no associated sections when that header's file size is non-zero.

PR ld/21212
	* elf.c (rewrite_elf_program_header): Do not issue a warning for
	empty segments which have a non-zero filesz.
This commit is contained in:
Nick Clifton 2017-03-02 14:47:29 +00:00
parent c871dadee1
commit f98450c6ee
2 changed files with 15 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2017-03-02 Martin Bickel <binutils@ineranves.de>
PR ld/21212
* elf.c (rewrite_elf_program_header): Do not issue a warning for
empty segments which have a non-zero filesz.
2017-03-02 Alan Modra <amodra@gmail.com>
* elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.

View File

@ -6689,11 +6689,16 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
/* Special segments, such as the PT_PHDR segment, may contain
no sections, but ordinary, loadable segments should contain
something. They are allowed by the ELF spec however, so only
a warning is produced. */
if (segment->p_type == PT_LOAD)
a warning is produced.
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
&& (segment->p_filesz > 0 || segment->p_memsz == 0))
/* xgettext:c-format */
_bfd_error_handler (_("\
%B: warning: Empty loadable segment detected, is this intentional ?"),
ibfd);
%B: warning: Empty loadable segment detected at vaddr=0x%.8x, is this intentional ?"),
ibfd, segment->p_vaddr);
map->count = 0;
*pointer_to_map = map;