Add support for reporting Alpha and Vax symbol visibility in readelf.

PR 24662
	* readelf.c (get_alpha_symbol_other): New function.
	(get_symbol_other): Use for Alpha symbols.
	(is_32bit_pcrel_reloc): Add R_VAX_PCREL32.
This commit is contained in:
Christos Zoulas 2019-06-11 16:43:25 +01:00 committed by Nick Clifton
parent 08f10e02be
commit 2057d69dcc
2 changed files with 25 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2019-06-11 Christos Zoulas <christos@zoulas.com>
PR 24662
* readelf.c (get_alpha_symbol_other): New function.
(get_symbol_other): Use for Alpha symbols.
(is_32bit_pcrel_reloc): Add R_VAX_PCREL32.
2019-06-11 Christos Zoulas <christos@zoulas.com> 2019-06-11 Christos Zoulas <christos@zoulas.com>
PR 24661 PR 24661

View File

@ -11134,6 +11134,19 @@ get_symbol_visibility (unsigned int visibility)
} }
} }
static const char *
get_alpha_symbol_other (unsigned int other)
{
switch (other)
{
case STO_ALPHA_NOPV: return "NOPV";
case STO_ALPHA_STD_GPLOAD: return "STD GPLOAD";
default:
error (_("Unrecognized alpah specific other value: %u"), other);
return _("<unknown>");
}
}
static const char * static const char *
get_solaris_symbol_visibility (unsigned int visibility) get_solaris_symbol_visibility (unsigned int visibility)
{ {
@ -11273,6 +11286,9 @@ get_symbol_other (Filedata * filedata, unsigned int other)
switch (filedata->file_header.e_machine) switch (filedata->file_header.e_machine)
{ {
case EM_ALPHA:
result = get_alpha_symbol_other (other);
break;
case EM_AARCH64: case EM_AARCH64:
result = get_aarch64_symbol_other (other); result = get_aarch64_symbol_other (other);
break; break;
@ -12722,6 +12738,8 @@ is_32bit_pcrel_reloc (Filedata * filedata, unsigned int reloc_type)
case EM_L1OM: case EM_L1OM:
case EM_K1OM: case EM_K1OM:
return reloc_type == 2; /* R_X86_64_PC32. */ return reloc_type == 2; /* R_X86_64_PC32. */
case EM_VAX:
return reloc_type == 4; /* R_VAX_PCREL32. */
case EM_XTENSA_OLD: case EM_XTENSA_OLD:
case EM_XTENSA: case EM_XTENSA:
return reloc_type == 14; /* R_XTENSA_32_PCREL. */ return reloc_type == 14; /* R_XTENSA_32_PCREL. */