PR25585, PHDR segment not covered by LOAD segment

I closed this bug as invalid, but I think it is worth mentioning in NEWS
that older linkers didn't check PT_PHDR very well.  The patch also allows
people to force an output file with --noinhibit-exec after the error.

bfd/
	PR 25585
	* elf.c (assign_file_positions_for_load_sections): Continue linking
	on "PHDR segment not covered by LOAD segment" errors.
ld/
	PR 25585
	* NEWS: Mention better "PHDR segment not covered by LOAD segment"
	checking.
This commit is contained in:
Alan Modra 2020-02-22 12:46:33 +10:30
parent dda42c0b7b
commit 7b3c27152b
4 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2020-02-22 Alan Modra <amodra@gmail.com>
PR 25585
* elf.c (assign_file_positions_for_load_sections): Continue linking
on "PHDR segment not covered by LOAD segment" errors.
2020-02-21 Alan Modra <amodra@gmail.com>
* mach-o.c (bfd_mach_o_canonicalize_relocs): Fix ineffective

View File

@ -5926,7 +5926,11 @@ assign_file_positions_for_load_sections (bfd *abfd,
_bfd_error_handler (_("%pB: error: PHDR segment not covered"
" by LOAD segment"),
abfd);
return FALSE;
if (link_info == NULL)
return FALSE;
/* Arrange for the linker to exit with an error, deleting
the output file unless --noinhibit-exec is given. */
link_info->callbacks->info ("%X");
}
/* Check that all sections are in a PT_LOAD segment.

View File

@ -1,3 +1,9 @@
2020-02-22 Alan Modra <amodra@gmail.com>
PR 25585
* NEWS: Mention better "PHDR segment not covered by LOAD segment"
checking.
2020-02-19 Sergey Belyashov <sergey.belyashov@gmail.com>
PR 25537

View File

@ -2,6 +2,12 @@
Changes in 2.34:
* The ld check for "PHDR segment not covered by LOAD segment" is more
effective, catching cases that were wrongly allowed by previous versions of
ld. If you see this error it is likely you are linking with a bad linker
script or the binary you are building is not intended to be loaded by a
dynamic loader. In the latter case --no-dynamic-linker is appropriate.
* cr16c support removed.
* Add support for z80-elf.