Add support for reporting Alpha and Vax symbol visibility in readelf.
authorChristos Zoulas <christos@zoulas.com>
Tue, 11 Jun 2019 15:43:25 +0000 (16:43 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 11 Jun 2019 15:43:25 +0000 (16:43 +0100)
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
binutils/readelf.c

index cf11c8d3c3c60ee840fd200705cc1b9e595a005c..2b6d4023b5b9ffe9e90867df80f7b21a72c89420 100644 (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>
 
        PR 24661
index 6246de65fa8dca3442093280159683d159a25f7e..8933ccbb5357f3e645228f3ae08a54d19077358e 100644 (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 *
 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.  */