Fix objdump's display of indirect strings in object files, which was broken by the...
authorNick Clifton <nickc@redhat.com>
Tue, 23 Jul 2019 16:54:32 +0000 (17:54 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 23 Jul 2019 16:54:32 +0000 (17:54 +0100)
PR 24818
* objdump.c (is_relocateable): Delete.
(load_specific_debug_section): Test the abfd for relocations
directly, rather than relying upon is_relocateable.
(dump_dwarf): Delete initlialization of is_relocateable.

binutils/ChangeLog
binutils/dwarf.c
binutils/objdump.c

index e329c40f305f42a59bfa58aaef16f6fb2617debd..cc8bb80d24f3b48e3aa2d0ea72d8b60b017a81fb 100644 (file)
@@ -1,3 +1,11 @@
+2019-07-23  Nick Clifton  <nickc@redhat.com>
+
+       PR 24818
+       * objdump.c (is_relocateable): Delete.
+       (load_specific_debug_section): Test the abfd for relocations
+       directly, rather than relying upon is_relocateable.
+       (dump_dwarf): Delete initlialization of is_relocateable.
+
 2019-07-23  Alan Modra  <amodra@gmail.com>
 
        * readelf.c (get_parisc_segment_type): Split off hpux entries..
index f86e20db40fd7d47500b47f8d7569a952f154e56..519f9cc4ff77efed345ee6e71da9fb58a2172b30 100644 (file)
@@ -3296,7 +3296,6 @@ process_debug_info (struct dwarf_section *           section,
              if (! do_loc && do_printing)
                /* Show the offset from where the tag was extracted.  */
                printf ("    <%lx>", (unsigned long)(tags - section_begin));
-
              tags = read_and_display_attr (attr->attribute,
                                            attr->form,
                                            attr->implicit_const,
index 6812ba7853de6cbaad86dec915a6bec59729fdc1..fffbcf876db704fbb9f5ba151a336e0dfddd329e 100644 (file)
@@ -192,8 +192,6 @@ static bfd_size_type stab_size;
 static bfd_byte *strtab;
 static bfd_size_type stabstr_size;
 
-static bfd_boolean is_relocatable = FALSE;
-
 /* Handlers for -P/--private.  */
 static const struct objdump_private_desc * const objdump_private_vectors[] =
   {
@@ -2749,7 +2747,8 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
   /* Ensure any string section has a terminating NUL.  */
   section->start[section->size] = 0;
 
-  if (is_relocatable && debug_displays [debug].relocate)
+  if ((abfd->flags & (EXEC_P | DYNAMIC)) == 0
+      && debug_displays [debug].relocate)
     {
       long         reloc_size;
       bfd_boolean  ret;
@@ -2943,8 +2942,6 @@ dump_dwarf (bfd *abfd)
       return;
     }
 
-  is_relocatable = (abfd->flags & (EXEC_P | DYNAMIC)) == 0;
-
   eh_addr_size = bfd_arch_bits_per_address (abfd) / 8;
 
   switch (bfd_get_arch (abfd))