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