From 2057d69dccf36206be3bec5d48ff165621e9a06c Mon Sep 17 00:00:00 2001 From: Christos Zoulas Date: Tue, 11 Jun 2019 16:43:25 +0100 Subject: [PATCH] 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. --- binutils/ChangeLog | 7 +++++++ binutils/readelf.c | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index cf11c8d..2b6d402 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,5 +1,12 @@ 2019-06-11 Christos Zoulas + 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 + PR 24661 * readelf.c (decode_arm_unwind): Ensure that the local variable 'addr' is always initialised. diff --git a/binutils/readelf.c b/binutils/readelf.c index 6246de6..8933ccb 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -11135,6 +11135,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 _(""); + } +} + +static const char * get_solaris_symbol_visibility (unsigned int visibility) { switch (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. */ -- 2.7.4