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>
|
2002-02-15 Hans-Peter Nilsson <hp@bitrange.com>
|
||||||
|
|
||||||
* NEWS: Mention support for MMIX.
|
* 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_32bit_elf)
|
||||||
{
|
{
|
||||||
if (is_rela)
|
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 Sym.Value Sym. Name + Addend\n"));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
printf
|
{
|
||||||
(_(" Offset Info Type Symbol's Value Symbol's Name\n"));
|
if (do_wide)
|
||||||
|
printf (_(" Offset Info Type Sym. Value Symbol's Name\n"));
|
||||||
|
else
|
||||||
|
printf (_(" Offset Info Type Sym.Value Sym. Name\n"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (is_rela)
|
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 Sym. Value Sym. Name + Addend\n"));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
printf
|
{
|
||||||
(_(" Offset Info Type Symbol's Value Symbol's Name\n"));
|
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++)
|
for (i = 0; i < rel_size; i++)
|
||||||
{
|
{
|
||||||
const char * rtype;
|
const char * rtype;
|
||||||
|
const char * rtype2 = NULL;
|
||||||
|
const char * rtype3 = NULL;
|
||||||
bfd_vma offset;
|
bfd_vma offset;
|
||||||
bfd_vma info;
|
bfd_vma info;
|
||||||
bfd_vma symtab_index;
|
bfd_vma symtab_index;
|
||||||
bfd_vma type;
|
bfd_vma type;
|
||||||
|
bfd_vma type2 = (bfd_vma) NULL;
|
||||||
|
bfd_vma type3 = (bfd_vma) NULL;
|
||||||
|
|
||||||
if (is_rela)
|
if (is_rela)
|
||||||
{
|
{
|
||||||
@ -887,10 +907,16 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (elf_header.e_machine == EM_SPARCV9)
|
if (elf_header.e_machine == EM_MIPS)
|
||||||
type = ELF64_R_TYPE_ID (info);
|
{
|
||||||
|
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
|
else
|
||||||
type = ELF64_R_TYPE (info);
|
type = ELF64_R_TYPE (info);
|
||||||
/* The #ifdef BFD64 below is to prevent a compile time warning.
|
/* The #ifdef BFD64 below is to prevent a compile time warning.
|
||||||
We know that if we do not have a 64 bit data type that we
|
We know that if we do not have a 64 bit data type that we
|
||||||
will never execute this code anyway. */
|
will never execute this code anyway. */
|
||||||
@ -910,13 +936,18 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef _bfd_int64_low
|
#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_high (offset),
|
||||||
_bfd_int64_low (offset),
|
_bfd_int64_low (offset),
|
||||||
_bfd_int64_high (info),
|
_bfd_int64_high (info),
|
||||||
_bfd_int64_low (info));
|
_bfd_int64_low (info));
|
||||||
#else
|
#else
|
||||||
printf ("%16.16lx %16.16lx ", offset, info);
|
printf (do_wide
|
||||||
|
? "%16.16lx %16.16lx ",
|
||||||
|
: "%12.12lx %12.12lx ",
|
||||||
|
offset, info);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1006,6 +1037,11 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
|||||||
case EM_MIPS:
|
case EM_MIPS:
|
||||||
case EM_MIPS_RS3_LE:
|
case EM_MIPS_RS3_LE:
|
||||||
rtype = elf_mips_reloc_type (type);
|
rtype = elf_mips_reloc_type (type);
|
||||||
|
if (!is_32bit_elf)
|
||||||
|
{
|
||||||
|
rtype2 = elf_mips_reloc_type (type2);
|
||||||
|
rtype3 = elf_mips_reloc_type (type3);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EM_ALPHA:
|
case EM_ALPHA:
|
||||||
@ -1067,12 +1103,12 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
|||||||
|
|
||||||
if (rtype == NULL)
|
if (rtype == NULL)
|
||||||
#ifdef _bfd_int64_low
|
#ifdef _bfd_int64_low
|
||||||
printf (_("unrecognised: %-7lx"), _bfd_int64_low (type));
|
printf (_("unrecognized: %-7lx"), _bfd_int64_low (type));
|
||||||
#else
|
#else
|
||||||
printf (_("unrecognised: %-7lx"), type);
|
printf (_("unrecognized: %-7lx"), type);
|
||||||
#endif
|
#endif
|
||||||
else
|
else
|
||||||
printf ("%-21.21s", rtype);
|
printf (do_wide ? "%-21.21s" : "%-17.17s", rtype);
|
||||||
|
|
||||||
if (symtab_index)
|
if (symtab_index)
|
||||||
{
|
{
|
||||||
@ -1086,14 +1122,14 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
|||||||
|
|
||||||
printf (" ");
|
printf (" ");
|
||||||
print_vma (psym->st_value, LONG_HEX);
|
print_vma (psym->st_value, LONG_HEX);
|
||||||
printf (" ");
|
printf (is_32bit_elf ? " " : " ");
|
||||||
|
|
||||||
if (psym->st_name == 0)
|
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)
|
else if (strtab == NULL)
|
||||||
printf (_("<string table index %3ld>"), psym->st_name);
|
printf (_("<string table index %3ld>"), psym->st_name);
|
||||||
else
|
else
|
||||||
print_symbol (-25, strtab + psym->st_name);
|
print_symbol (22, strtab + psym->st_name);
|
||||||
|
|
||||||
if (is_rela)
|
if (is_rela)
|
||||||
printf (" + %lx", (unsigned long) relas [i].r_addend);
|
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)
|
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);
|
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));
|
printf (" + %lx", (unsigned long) ELF64_R_TYPE_DATA (info));
|
||||||
|
|
||||||
putchar ('\n');
|
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)
|
if (is_rela)
|
||||||
@ -1504,7 +1567,7 @@ decode_ARM_machine_flags (e_flags, buf)
|
|||||||
switch (eabi)
|
switch (eabi)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
strcat (buf, ", <unrecognised EABI>");
|
strcat (buf, ", <unrecognized EABI>");
|
||||||
if (e_flags)
|
if (e_flags)
|
||||||
unknown = 1;
|
unknown = 1;
|
||||||
break;
|
break;
|
||||||
@ -2373,7 +2436,7 @@ parse_args (argc, argv)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
warn (_("Unrecognised debug option '%s'\n"), optarg);
|
warn (_("Unrecognized debug option '%s'\n"), optarg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7379,7 +7442,7 @@ read_and_display_attr_value (attribute, form, data, cu_offset, pointer_size)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
warn (_("Unrecognised form: %d\n"), form);
|
warn (_("Unrecognized form: %d\n"), form);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8602,7 +8665,7 @@ display_debug_section (section, file)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i == -1)
|
if (i == -1)
|
||||||
printf (_("Unrecognised debug section: %s\n"), name);
|
printf (_("Unrecognized debug section: %s\n"), name);
|
||||||
|
|
||||||
free (start);
|
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>
|
2002-02-18 Hans-Peter Nilsson <hp@bitrange.com>
|
||||||
|
|
||||||
* binutils-all/objcopy.exp
|
* binutils-all/objcopy.exp
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
Relocation section '.rel.*text' at offset 0x.* contains 1 entries:
|
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.*
|
00000004 [0-9A-Fa-f]+ *R_.*00000000 external_symbol.*
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
Relocation section '.rel.*text' at offset 0x.* contains 1 entries:
|
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.*
|
||||||
0000000000000004 [0-9A-Fa-f]+ *R_.*0000000000000000 external_symbol.*
|
0+04 [0-9A-Fa-f]+ *R_.*0+00 external_symbol.*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user