Display 2nd and 3rd reloc types for 64-bit MIPS.
Narrow some fields for 80-char output.
This commit is contained in:
parent
6a7f963b84
commit
2c71103e61
@ -1,3 +1,15 @@
|
||||
2002-02-18 Timothy Daly <remote_bob@yahoo.com>
|
||||
|
||||
* readelf.c (dump_relocations): Display 2nd and 3rd reloc
|
||||
types for 64-bit MIPS. Narrow some fields for 80-char
|
||||
output.
|
||||
(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.
|
||||
|
||||
2002-02-15 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* NEWS: Mention support for MMIX.
|
||||
|
@ -845,29 +845,49 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
if (is_32bit_elf)
|
||||
{
|
||||
if (is_rela)
|
||||
printf
|
||||
(_(" Offset Info Type Symbol's Value Symbol's Name Addend\n"));
|
||||
{
|
||||
if (do_wide)
|
||||
printf (_(" Offset Info Type Sym. Value Symbol's Name + Addend\n"));
|
||||
else
|
||||
printf
|
||||
(_(" Offset Info Type Symbol's Value Symbol's Name\n"));
|
||||
printf (_(" Offset Info Type Sym.Value Sym. Name + Addend\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (do_wide)
|
||||
printf (_(" Offset Info Type Sym. Value Symbol's Name\n"));
|
||||
else
|
||||
printf (_(" Offset Info Type Sym.Value Sym. Name\n"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_rela)
|
||||
printf
|
||||
(_(" Offset Info Type Symbol's Value Symbol's Name Addend\n"));
|
||||
{
|
||||
if (do_wide)
|
||||
printf (_(" Offset Info Type Symbol's Value Symbol's Name + Addend\n"));
|
||||
else
|
||||
printf
|
||||
(_(" Offset Info Type Symbol's Value Symbol's Name\n"));
|
||||
printf (_(" Offset Info Type Sym. Value Sym. Name + Addend\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (do_wide)
|
||||
printf (_(" Offset Info Type Symbol's Value Symbol's Name\n"));
|
||||
else
|
||||
printf (_(" Offset Info Type Sym. Value Sym. Name\n"));
|
||||
}
|
||||
}
|
||||
|
||||
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 = (bfd_vma) NULL;
|
||||
bfd_vma type3 = (bfd_vma) NULL;
|
||||
|
||||
if (is_rela)
|
||||
{
|
||||
@ -887,7 +907,13 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (elf_header.e_machine == EM_SPARCV9)
|
||||
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 if (elf_header.e_machine == EM_SPARCV9)
|
||||
type = ELF64_R_TYPE_ID (info);
|
||||
else
|
||||
type = ELF64_R_TYPE (info);
|
||||
@ -910,13 +936,18 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
else
|
||||
{
|
||||
#ifdef _bfd_int64_low
|
||||
printf ("%8.8lx%8.8lx %8.8lx%8.8lx ",
|
||||
printf (do_wide
|
||||
? "%8.8lx%8.8lx %8.8lx%8.8lx "
|
||||
: "%4.4lx%8.8lx %4.4lx%8.8lx ",
|
||||
_bfd_int64_high (offset),
|
||||
_bfd_int64_low (offset),
|
||||
_bfd_int64_high (info),
|
||||
_bfd_int64_low (info));
|
||||
#else
|
||||
printf ("%16.16lx %16.16lx ", offset, info);
|
||||
printf (do_wide
|
||||
? "%16.16lx %16.16lx ",
|
||||
: "%12.12lx %12.12lx ",
|
||||
offset, info);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1006,6 +1037,11 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
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,12 +1103,12 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
|
||||
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);
|
||||
printf (do_wide ? "%-21.21s" : "%-17.17s", rtype);
|
||||
|
||||
if (symtab_index)
|
||||
{
|
||||
@ -1086,14 +1122,14 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
|
||||
printf (" ");
|
||||
print_vma (psym->st_value, LONG_HEX);
|
||||
printf (" ");
|
||||
printf (is_32bit_elf ? " " : " ");
|
||||
|
||||
if (psym->st_name == 0)
|
||||
print_symbol (-25, SECTION_NAME (section_headers + psym->st_shndx));
|
||||
print_symbol (22, SECTION_NAME (section_headers + psym->st_shndx));
|
||||
else if (strtab == NULL)
|
||||
printf (_("<string table index %3ld>"), psym->st_name);
|
||||
else
|
||||
print_symbol (-25, strtab + psym->st_name);
|
||||
print_symbol (22, strtab + psym->st_name);
|
||||
|
||||
if (is_rela)
|
||||
printf (" + %lx", (unsigned long) relas [i].r_addend);
|
||||
@ -1101,7 +1137,7 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
}
|
||||
else if (is_rela)
|
||||
{
|
||||
printf ("%*c", is_32bit_elf ? 34 : 26, ' ');
|
||||
printf ("%*c", is_32bit_elf ? (do_wide ? 34 : 28) : (do_wide ? 26 : 20), ' ');
|
||||
print_vma (relas[i].r_addend, LONG_HEX);
|
||||
}
|
||||
|
||||
@ -1110,6 +1146,33 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
printf (" + %lx", (unsigned long) ELF64_R_TYPE_DATA (info));
|
||||
|
||||
putchar ('\n');
|
||||
|
||||
if (! is_32bit_elf && elf_header.e_machine == EM_MIPS)
|
||||
{
|
||||
printf (" Type2: ");
|
||||
|
||||
if (rtype2 == NULL)
|
||||
#ifdef _bfd_int64_low
|
||||
printf (_("unrecognized: %-7lx"), _bfd_int64_low (type2));
|
||||
#else
|
||||
printf (_("unrecognized: %-7lx"), type2);
|
||||
#endif
|
||||
else
|
||||
printf ("%-17.17s", rtype2);
|
||||
|
||||
printf("\n Type3: ");
|
||||
|
||||
if (rtype3 == NULL)
|
||||
#ifdef _bfd_int64_low
|
||||
printf (_("unrecognized: %-7lx"), _bfd_int64_low (type3));
|
||||
#else
|
||||
printf (_("unrecognized: %-7lx"), type3);
|
||||
#endif
|
||||
else
|
||||
printf ("%-17.17s", rtype3);
|
||||
|
||||
putchar ('\n');
|
||||
}
|
||||
}
|
||||
|
||||
if (is_rela)
|
||||
@ -1504,7 +1567,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 +2436,7 @@ parse_args (argc, argv)
|
||||
break;
|
||||
|
||||
default:
|
||||
warn (_("Unrecognised debug option '%s'\n"), optarg);
|
||||
warn (_("Unrecognized debug option '%s'\n"), optarg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -7379,7 +7442,7 @@ read_and_display_attr_value (attribute, form, data, cu_offset, pointer_size)
|
||||
break;
|
||||
|
||||
default:
|
||||
warn (_("Unrecognised form: %d\n"), form);
|
||||
warn (_("Unrecognized form: %d\n"), form);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -8602,7 +8665,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);
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2002-02-18 Timothy Daly <remote_bob@yahoo.com>
|
||||
|
||||
* binutils-all/readelf.r: Change expected output to match new,
|
||||
narrowed-to-80-chars format.
|
||||
* binutils-all/readelf.r-64: Change expected output to match new,
|
||||
narrowed-to-80-chars format.
|
||||
|
||||
2002-02-18 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* binutils-all/objcopy.exp
|
||||
|
@ -1,4 +1,4 @@
|
||||
|
||||
Relocation section '.rel.*text' at offset 0x.* contains 1 entries:
|
||||
Offset Info Type Symbol's Value Symbol's Name.*
|
||||
Offset Info Type Sym.Value Sym. Name.*
|
||||
00000004 [0-9A-Fa-f]+ *R_.*00000000 external_symbol.*
|
||||
|
@ -1,4 +1,4 @@
|
||||
|
||||
Relocation section '.rel.*text' at offset 0x.* contains 1 entries:
|
||||
Offset Info Type Symbol's Value Symbol's Name.*
|
||||
0000000000000004 [0-9A-Fa-f]+ *R_.*0000000000000000 external_symbol.*
|
||||
Offset Info Type Sym. Value Sym. Name.*
|
||||
0+04 [0-9A-Fa-f]+ *R_.*0+00 external_symbol.*
|
||||
|
Loading…
Reference in New Issue
Block a user