The current Gccgo cannot handle 64 bit symbol tables on s390[x].
The attached patch fixes that.

gcc/go/ChangeLog
2014-09-05  Dominik Vogt  <v...@linux.vnet.ibm.com>

        * gofrontend/import-archive.cc (interpret_header): Recognize 64-bit
        symbol tables ("/SYM64/         ").

Ciao

Dominik ^_^  ^_^

-- 

Dominik Vogt
IBM Germany
>From 1e5e9f90a690ad87a357c54f212886114e6b098e Mon Sep 17 00:00:00 2001
From: Dominik Vogt <v...@linux.vnet.ibm.com>
Date: Fri, 5 Sep 2014 07:30:32 +0100
Subject: [PATCH 3/9] GO: Recognize 64-bit symbol tables with /SYM64/.

---
 gcc/go/gofrontend/import-archive.cc | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gcc/go/gofrontend/import-archive.cc b/gcc/go/gofrontend/import-archive.cc
index 34fb528..4305755 100644
--- a/gcc/go/gofrontend/import-archive.cc
+++ b/gcc/go/gofrontend/import-archive.cc
@@ -295,6 +295,15 @@ Archive_file::interpret_header(const Archive_header* hdr, off_t off,
       // This is the symbol table.
       pname->clear();
     }
+  else if (hdr->ar_name[1] == 'S' && hdr->ar_name[2] == 'Y'
+	   && hdr->ar_name[3] == 'M' && hdr->ar_name[4] == '6'
+	   && hdr->ar_name[5] == '4' && hdr->ar_name[6] == '/'
+	   && hdr->ar_name[7] == ' '
+	  )
+    {
+      // 64-bit symbol table.
+      pname->clear();
+    }
   else if (hdr->ar_name[1] == '/')
     {
       // This is the extended name table.
-- 
1.8.4.2

Reply via email to