This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [patch] print additional mips elf 64 reloc type info in readelf
- From: Timothy Daly <remote_bob at yahoo dot com>
- To: binutils at sources dot redhat dot com
- Date: Mon, 18 Feb 2002 00:46:48 -0800 (PST)
- Subject: 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);