displays dynamic segment even if no .dynamic section

Tristan Gingold gingold@adacore.com
Mon Jun 25 12:40:00 GMT 2007


Hi,

currently dynamic segment of VMS itanium (ELF format) cannot be  
displayed because there is no .dynamic section in the section table.
This patch fixes the issue by always using dynamic segment unless  
there is a .dynamic section.

binutils:
2007-06-25  Tristan Gingold  <gingold@adacore.com>

	* readelf.c (process_program_headers): use DYNAMIC segment unless
	.dynamic section is found.

*** readelf.c   30 May 2007 14:29:27 -0000      1.365
--- readelf.c   25 Jun 2007 12:30:55 -0000
*************** process_program_headers (FILE *file)
*** 3503,3508 ****
--- 3503,3513 ----
           if (dynamic_addr)
             error (_("more than one dynamic segment\n"));

+         /* By default, we can only assume that the .dynamic
+            section is the first section in the DYNAMIC segment.  */
+         dynamic_addr = segment->p_offset;
+         dynamic_size = segment->p_filesz;
+
           /* Try to locate the .dynamic section. If there is
              a section header table, we can easily locate it.  */
           if (section_headers != NULL)
*************** process_program_headers (FILE *file)
*** 3528,3540 ****
               else if (dynamic_addr > segment->p_offset)
                 warn (_("the .dynamic section is not the first  
section in the dynamic segment.\n"));
             }
-         else
-           {
-             /* Otherwise, we can only assume that the .dynamic
-                section is the first section in the DYNAMIC  
segment.  */
-             dynamic_addr = segment->p_offset;
-             dynamic_size = segment->p_filesz;
-           }
           break;

         case PT_INTERP:
--- 3533,3538 ----



More information about the Binutils mailing list