2001-08-21 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 21 Aug 2001 15:08:38 +0000 (15:08 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 21 Aug 2001 15:08:38 +0000 (15:08 +0000)
* readelf.c (dump_relocations): Support ELF64 on 32bit hosts.
(display_debug_info): Cast for 64bit hosts.
(display_debug_frames): Likewise.
(process_mips_specific): Likewise.

binutils/ChangeLog
binutils/readelf.c

index c5c7aa8048b62451bdadd407b7f6ad484a60cda3..90eec720ccadaaeb0e6f03bac02e81abf347db5b 100644 (file)
@@ -1,3 +1,10 @@
+2001-08-21  H.J. Lu  <hjl@gnu.org>
+
+       * readelf.c (dump_relocations): Support ELF64 on 32bit hosts.
+       (display_debug_info): Cast for 64bit hosts.
+       (display_debug_frames): Likewise.
+       (process_mips_specific): Likewise.
+
 2001-08-21  Andreas Jaeger  <aj@suse.de>
 
        * coffgrok.h: Add missing parameter for prototype of coff_grok.
index 8b8337765be9f2074a1e51cd5ed201923042e5c4..fd375eb00355efd59639b897986c0fe47175d926 100644 (file)
@@ -810,12 +810,24 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
        return 0;
     }
 
-  if (is_rela)
-    printf
-      (_("  Offset    Info  Type            Symbol's Value  Symbol's Name          Addend\n"));
+  if (is_32bit_elf)
+    {
+      if (is_rela)
+       printf
+         (_(" Offset     Info    Type            Symbol's Value  Symbol's Name          Addend\n"));
+      else
+       printf
+         (_(" Offset     Info    Type            Symbol's Value  Symbol's Name\n"));
+    }
   else
-    printf
-      (_("  Offset    Info  Type            Symbol's Value  Symbol's Name\n"));
+    {
+      if (is_rela)
+       printf
+         (_("    Offset             Info            Type               Symbol's Value   Symbol's Name           Addend\n"));
+      else
+       printf
+         (_("    Offset             Info            Type               Symbol's Value   Symbol's Name\n"));
+    }
 
   for (i = 0; i < rel_size; i++)
     {
@@ -855,11 +867,26 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
 #endif
        }
 
+      if (is_32bit_elf)
+       {
+#ifdef _bfd_int64_low
+         printf ("%8.8lx  %8.8lx ", _bfd_int64_low (offset), _bfd_int64_low (info));
+#else
+         printf ("%8.8lx  %8.8lx ", offset, info);
+#endif
+       }
+      else
+       {
 #ifdef _bfd_int64_low
-      printf ("  %8.8lx  %5.5lx ", _bfd_int64_low (offset), _bfd_int64_low (info));
+         printf ("%8.8lx%8.8lx  %8.8lx%8.8lx ",
+                 _bfd_int64_high (offset),
+                 _bfd_int64_low (offset),
+                 _bfd_int64_high (info),
+                 _bfd_int64_low (info));
 #else
-      printf ("  %8.8lx  %5.5lx ", offset, info);
+         printf ("%16.16lx  %16.16lx ", offset, info);
 #endif
+       }
 
       switch (elf_header.e_machine)
        {
@@ -7189,8 +7216,9 @@ display_debug_info (section, start, file)
              return 0;
            }
 
-         printf (_(" <%d><%x>: Abbrev Number: %lu (%s)\n"),
-                 level, tags - section_begin - bytes_read,
+         printf (_(" <%d><%lx>: Abbrev Number: %lu (%s)\n"),
+                 level,
+                 (unsigned long) (tags - section_begin - bytes_read),
                  abbrev_number,
                  get_TAG_name (entry->tag));
 
@@ -7609,10 +7637,10 @@ display_debug_frames (section, start, file)
              start += augmentation_data_len;
            }
 
-         printf ("\n%08lx %08lx %08lx FDE cie=%08x pc=%08lx..%08lx\n",
+         printf ("\n%08lx %08lx %08lx FDE cie=%08lx pc=%08lx..%08lx\n",
                  (unsigned long)(saved_start - section_start), length, cie_id,
-                 cie->chunk_start - section_start, fc->pc_begin,
-                 fc->pc_begin + fc->pc_range);
+                 (unsigned long)(cie->chunk_start - section_start),
+                 fc->pc_begin, fc->pc_begin + fc->pc_range);
          if (! do_debug_frames_interp && augmentation_data_len)
            {
              unsigned long i;
@@ -8511,7 +8539,8 @@ process_mips_specific (file)
          free (econf64);
        }
 
-      printf (_("\nSection '.conflict' contains %d entries:\n"), conflictsno);
+      printf (_("\nSection '.conflict' contains %ld entries:\n"),
+             (long) conflictsno);
       puts (_("  Num:    Index       Value  Name"));
 
       for (cnt = 0; cnt < conflictsno; ++cnt)