]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
PR25585, PHDR segment not covered by LOAD segment
authorAlan Modra <amodra@gmail.com>
Sat, 22 Feb 2020 02:16:33 +0000 (12:46 +1030)
committerAlan Modra <amodra@gmail.com>
Sat, 22 Feb 2020 02:40:31 +0000 (13:10 +1030)
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.

(cherry picked from commit 7b3c27152b5695177a2cd5adc0d7b0255f99aca0)

bfd/ChangeLog
bfd/elf.c
ld/ChangeLog
ld/NEWS

index 17cb9775b563ee72086df26d3dbc32811b624271..e5da1b46589fafbee880e54101eac68245602297 100644 (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-19  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutils/25355
index a8d98a60f4eac8b670ac52900c5f8887f49f2ba4..f02b7249dd0266313b2c55fd15937dc4ac7fe271 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -5934,7 +5934,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.
index 999e0f4e335536bf9286816c25ee1ed3261a64e9..ebbf64e89391d73249685265e85f2318115cb9ad 100644 (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-14  Nick Clifton  <nickc@redhat.com>
 
        Import from the mainline:
diff --git a/ld/NEWS b/ld/NEWS
index f659ccfc06b72420f7fbc15cad18c63ff54381a0..7734d23d5bb5034330de566c05e4059724540387 100644 (file)
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -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.