diff options
author | Alan Modra <amodra@gmail.com> | 2020-02-22 12:46:33 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-02-22 12:53:52 +1030 |
commit | 7b3c27152b5695177a2cd5adc0d7b0255f99aca0 (patch) | |
tree | 542fe2a48f8e0ede56d52da65aa18e000f52fdcd | |
parent | dda42c0b7baba24d182a408574650ff162f44ec3 (diff) | |
download | fsf-binutils-gdb-7b3c27152b5695177a2cd5adc0d7b0255f99aca0.zip fsf-binutils-gdb-7b3c27152b5695177a2cd5adc0d7b0255f99aca0.tar.gz fsf-binutils-gdb-7b3c27152b5695177a2cd5adc0d7b0255f99aca0.tar.bz2 |
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.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf.c | 6 | ||||
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/NEWS | 6 |
4 files changed, 23 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4ee96e4..31e7c69 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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 @@ -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. diff --git a/ld/ChangeLog b/ld/ChangeLog index 29348f1..dab3590 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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 @@ -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. |