diff --git a/binutils/ChangeLog b/binutils/ChangeLog index cf11c8d3c3c60ee840fd200705cc1b9e595a005c..2b6d4023b5b9ffe9e90867df80f7b21a72c89420 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -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> PR 24661 diff --git a/binutils/readelf.c b/binutils/readelf.c index 6246de65fa8dca3442093280159683d159a25f7e..8933ccbb5357f3e645228f3ae08a54d19077358e 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -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 * 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) { + case EM_ALPHA: + result = get_alpha_symbol_other (other); + break; case EM_AARCH64: result = get_aarch64_symbol_other (other); break; @@ -12722,6 +12738,8 @@ is_32bit_pcrel_reloc (Filedata * filedata, unsigned int reloc_type) case EM_L1OM: case EM_K1OM: 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: return reloc_type == 14; /* R_XTENSA_32_PCREL. */