This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] print additional mips elf 64 reloc type info in readelf


--- Eric Christopher <echristo@redhat.com> wrote:
> 
[snip]
> Well, only in american english is it spelled with a 'z', however,
> that's
> what we use in binutils so it should be a 'z'.
[snip]

Okay, revised patch and changelog below.

-Tim

[src/binutils/ChangeLog]
2002-02-18  Timothy Daly  <remote_bob@yahoo.com>

 * readelf.c (dump_relocations): Display 2nd and 3rd reloc 
 types for 64-bit MIPS.
 (dump_relocations): Change spelling from 'unrecognised' 
 to 'unrecognized'.
 (decode_ARM_machine_flags): Likewise.
 (parse_args): Likewise.
 (read_and_display_attr_value): Likewise.
 (display_debug_section): Likewise.


Index: readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.151
diff -u -p -r1.151 readelf.c
--- readelf.c 2002/02/13 18:14:42 1.151
+++ readelf.c 2002/02/18 08:38:17
@@ -851,6 +851,15 @@ dump_relocations (file, rel_offset, rel_
  printf
    (_(" Offset     Info    Type            Symbol's Value  Symbol's
Name\n"));
     }
+  else if (elf_header.e_machine == EM_MIPS) 
+    {
+      if (is_rela)
+ printf
+   (_("    Offset             Info            Type              
Type2              Type3              Symbol's Value   Symbol's Name 
         Addend\n"));
+      else
+ printf
+   (_("    Offset             Info            Type              
Type2              Type3              Symbol's Value   Symbol's
Name\n"));
+    }
   else
     {
       if (is_rela)
@@ -864,10 +873,14 @@ dump_relocations (file, rel_offset, rel_
   for (i = 0; i < rel_size; i++)
     {
       const char * rtype;
+      const char * rtype2 = NULL;
+      const char * rtype3 = NULL;
       bfd_vma      offset;
       bfd_vma      info;
       bfd_vma      symtab_index;
       bfd_vma      type;
+      bfd_vma      type2 = NULL;
+      bfd_vma      type3 = NULL;
 
       if (is_rela)
  {
@@ -889,6 +902,12 @@ dump_relocations (file, rel_offset, rel_
  {
    if (elf_header.e_machine == EM_SPARCV9)
      type       = ELF64_R_TYPE_ID (info);
+   else if (elf_header.e_machine == EM_MIPS) 
+     {
+       type = ELF64_MIPS_R_TYPE (info);
+       type2 = ELF64_MIPS_R_TYPE2 (info);
+       type3 = ELF64_MIPS_R_TYPE3 (info);
+     }
    else
      type       = ELF64_R_TYPE (info);
    /* The #ifdef BFD64 below is to prevent a compile time warning.
@@ -1006,6 +1025,10 @@ dump_relocations (file, rel_offset, rel_
  case EM_MIPS:
  case EM_MIPS_RS3_LE:
    rtype = elf_mips_reloc_type (type);
+   if (!is_32bit_elf) {
+     rtype2 = elf_mips_reloc_type (type2);
+     rtype3 = elf_mips_reloc_type (type3);
+   }
    break;
 
  case EM_ALPHA:
@@ -1067,13 +1090,34 @@ dump_relocations (file, rel_offset, rel_
 
       if (rtype == NULL)
 #ifdef _bfd_int64_low
- printf (_("unrecognised: %-7lx"), _bfd_int64_low (type));
+ printf (_("unrecognized: %-7lx"), _bfd_int64_low (type));
 #else
- printf (_("unrecognised: %-7lx"), type);
+ printf (_("unrecognized: %-7lx"), type);
 #endif
       else
  printf ("%-21.21s", rtype);
 
+      if (!is_32bit_elf && elf_header.e_machine == EM_MIPS) 
+ {
+   if (rtype2 == NULL)
+#ifdef _bfd_int64_low
+     printf (_("unrecognized: %-7lx"), _bfd_int64_low (type2));
+#else
+     printf (_("unrecognized: %-7lx"), type2);
+#endif
+   else
+     printf ("%-21.21s", rtype2);
+
+   if (rtype3 == NULL)
+#ifdef _bfd_int64_low
+     printf (_("unrecognized: %-7lx"), _bfd_int64_low (type3));
+#else
+     printf (_("unrecognized: %-7lx"), type3);
+#endif
+   else
+     printf ("%-21.21s", rtype3);
+ }
+
       if (symtab_index)
  {
    if (symtab == NULL || symtab_index >= nsyms)
@@ -1504,7 +1548,7 @@ decode_ARM_machine_flags (e_flags, buf)
   switch (eabi)
     {
     default:
-      strcat (buf, ", <unrecognised EABI>");
+      strcat (buf, ", <unrecognized EABI>");
       if (e_flags)
  unknown = 1;
       break;
@@ -2373,7 +2417,7 @@ parse_args (argc, argv)
       break;
 
     default:
-      warn (_("Unrecognised debug option '%s'\n"), optarg);
+      warn (_("Unrecognized debug option '%s'\n"), optarg);
       break;
     }
      }
@@ -7379,7 +7423,7 @@ read_and_display_attr_value (attribute, 
       break;
 
     default:
-      warn (_("Unrecognised form: %d\n"), form);
+      warn (_("Unrecognized form: %d\n"), form);
       break;
     }
 
@@ -8602,7 +8646,7 @@ display_debug_section (section, file)
       }
 
   if (i == -1)
-    printf (_("Unrecognised debug section: %s\n"), name);
+    printf (_("Unrecognized debug section: %s\n"), name);
 
   free (start);
 


__________________________________________________
Do You Yahoo!?
Yahoo! Sports - Coverage of the 2002 Olympic Games
http://sports.yahoo.com
Index: readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.151
diff -u -p -r1.151 readelf.c
--- readelf.c	2002/02/13 18:14:42	1.151
+++ readelf.c	2002/02/18 08:38:17
@@ -851,6 +851,15 @@ dump_relocations (file, rel_offset, rel_
 	printf
 	  (_(" Offset     Info    Type            Symbol's Value  Symbol's Name\n"));
     }
+  else if (elf_header.e_machine == EM_MIPS) 
+    {
+      if (is_rela)
+	printf
+	  (_("    Offset             Info            Type               Type2              Type3              Symbol's Value   Symbol's Name           Addend\n"));
+      else
+	printf
+	  (_("    Offset             Info            Type               Type2              Type3              Symbol's Value   Symbol's Name\n"));
+    }
   else
     {
       if (is_rela)
@@ -864,10 +873,14 @@ dump_relocations (file, rel_offset, rel_
   for (i = 0; i < rel_size; i++)
     {
       const char * rtype;
+      const char * rtype2 = NULL;
+      const char * rtype3 = NULL;
       bfd_vma      offset;
       bfd_vma      info;
       bfd_vma      symtab_index;
       bfd_vma      type;
+      bfd_vma      type2 = NULL;
+      bfd_vma      type3 = NULL;
 
       if (is_rela)
 	{
@@ -889,6 +902,12 @@ dump_relocations (file, rel_offset, rel_
 	{
 	  if (elf_header.e_machine == EM_SPARCV9)
 	    type       = ELF64_R_TYPE_ID (info);
+	  else if (elf_header.e_machine == EM_MIPS) 
+	    {
+	      type = ELF64_MIPS_R_TYPE (info);
+	      type2 = ELF64_MIPS_R_TYPE2 (info);
+	      type3 = ELF64_MIPS_R_TYPE3 (info);
+	    }
 	  else
 	    type       = ELF64_R_TYPE (info);
 	  /* The #ifdef BFD64 below is to prevent a compile time warning.
@@ -1006,6 +1025,10 @@ dump_relocations (file, rel_offset, rel_
 	case EM_MIPS:
 	case EM_MIPS_RS3_LE:
 	  rtype = elf_mips_reloc_type (type);
+	  if (!is_32bit_elf) {
+	    rtype2 = elf_mips_reloc_type (type2);
+	    rtype3 = elf_mips_reloc_type (type3);
+	  }
 	  break;
 
 	case EM_ALPHA:
@@ -1067,13 +1090,34 @@ dump_relocations (file, rel_offset, rel_
 
       if (rtype == NULL)
 #ifdef _bfd_int64_low
-	printf (_("unrecognised: %-7lx"), _bfd_int64_low (type));
+	printf (_("unrecognized: %-7lx"), _bfd_int64_low (type));
 #else
-	printf (_("unrecognised: %-7lx"), type);
+	printf (_("unrecognized: %-7lx"), type);
 #endif
       else
 	printf ("%-21.21s", rtype);
 
+      if (!is_32bit_elf && elf_header.e_machine == EM_MIPS) 
+	{
+	  if (rtype2 == NULL)
+#ifdef _bfd_int64_low
+	    printf (_("unrecognized: %-7lx"), _bfd_int64_low (type2));
+#else
+	    printf (_("unrecognized: %-7lx"), type2);
+#endif
+	  else
+	    printf ("%-21.21s", rtype2);
+
+	  if (rtype3 == NULL)
+#ifdef _bfd_int64_low
+	    printf (_("unrecognized: %-7lx"), _bfd_int64_low (type3));
+#else
+	    printf (_("unrecognized: %-7lx"), type3);
+#endif
+	  else
+	    printf ("%-21.21s", rtype3);
+	}
+
       if (symtab_index)
 	{
 	  if (symtab == NULL || symtab_index >= nsyms)
@@ -1504,7 +1548,7 @@ decode_ARM_machine_flags (e_flags, buf)
   switch (eabi)
     {
     default:
-      strcat (buf, ", <unrecognised EABI>");
+      strcat (buf, ", <unrecognized EABI>");
       if (e_flags)
 	unknown = 1;
       break;
@@ -2373,7 +2417,7 @@ parse_args (argc, argv)
 		    break;
 
 		  default:
-		    warn (_("Unrecognised debug option '%s'\n"), optarg);
+		    warn (_("Unrecognized debug option '%s'\n"), optarg);
 		    break;
 		  }
 	    }
@@ -7379,7 +7423,7 @@ read_and_display_attr_value (attribute, 
       break;
 
     default:
-      warn (_("Unrecognised form: %d\n"), form);
+      warn (_("Unrecognized form: %d\n"), form);
       break;
     }
 
@@ -8602,7 +8646,7 @@ display_debug_section (section, file)
       }
 
   if (i == -1)
-    printf (_("Unrecognised debug section: %s\n"), name);
+    printf (_("Unrecognized debug section: %s\n"), name);
 
   free (start);
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]