This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Add support for reporting Alpha and Vax symbol visibility in readelf.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2057d69dccf36206be3bec5d48ff165621e9a06c

commit 2057d69dccf36206be3bec5d48ff165621e9a06c
Author: Christos Zoulas <christos@zoulas.com>
Date:   Tue Jun 11 16:43:25 2019 +0100

    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.

Diff:
---
 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  <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
 	* 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 _("<unknown>");
+    } 
+}
+
+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.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]