[binutils-gdb] Stop readelf from complaining about out of order PT_LOAD segments.

Nick Clifton nickc@sourceware.org
Wed Nov 30 11:07:00 GMT 2016


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=502d895cd1ca5d4abf4ef55984cbf5239aeaef0c

commit 502d895cd1ca5d4abf4ef55984cbf5239aeaef0c
Author: Nick Clifton <nickc@redhat.com>
Date:   Wed Nov 30 11:06:42 2016 +0000

    Stop readelf from complaining about out of order PT_LOAD segments.
    
    	PR ld/20815
    	* readelf.c (process_program_headers): Do not warn about out of
    	order PT_LOAD segments.

Diff:
---
 binutils/ChangeLog | 6 ++++++
 binutils/readelf.c | 4 ++++
 2 files changed, 10 insertions(+)

diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index eab32c7..35cd691 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-30  Nick Clifton  <nickc@redhat.com>
+
+	PR ld/20815
+	* readelf.c (process_program_headers): Do not warn about out of
+	order PT_LOAD segments.
+
 2016-11-29  Claudiu Zissulescu  <claziss@synopsys.com>
 
 	* testsuite/binutils-all/arc/objdump.exp (Warning test): Update
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 347b6b9..c5a628f 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -4909,9 +4909,13 @@ process_program_headers (FILE * file)
       switch (segment->p_type)
 	{
 	case PT_LOAD:
+#if 0 /* Do not warn about out of order PT_LOAD segments.  Although officially
+	 required by the ELF standard, several programs, including the Linux
+	 kernel, make use of non-ordered segments.  */
 	  if (previous_load
 	      && previous_load->p_vaddr > segment->p_vaddr)
 	    error (_("LOAD segments must be sorted in order of increasing VirtAddr\n"));
+#endif
 	  if (segment->p_memsz < segment->p_filesz)
 	    error (_("the segment's file size is larger than its memory size\n"));
 	  previous_load = segment;



More information about the Binutils-cvs mailing list