I recently started playing around with the unofficial sparc64 of golang again (from https://github.com/4ad/go) and tried building it using gccgo-8
on Debian unstable on sparc64.
glaubitz@kyoto:~/go-1/src$ /usr/bin/go build -o cmd/dist/dist ./cmd/dist
Bus error
glaubitz@kyoto:~/go-1/src$
glaubitz@kyoto:~/go-1/src$ gdb --args /usr/bin/go build -o cmd/dist/dist ./cmd/dist
GNU gdb (Debian 8.2-1) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "sparc64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/go...(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/bin/go build -o cmd/dist/dist ./cmd/dist
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/sparc64-linux-gnu/libthread_db.so.1".
[New Thread 0xffff800102d01900 (LWP 4116)]
[New Thread 0xffff800103503900 (LWP 4117)]
[New Thread 0xffff800104105900 (LWP 4118)]
[New Thread 0xffff800105107900 (LWP 4119)]
[New Thread 0xffff800105d09900 (LWP 4120)]
[New Thread 0xffff80010650b900 (LWP 4121)]
Thread 1 "go" received signal SIGBUS, Bus error.
elf_add (state=<optimized out>, filename=<optimized out>, descriptor=<optimized out>, base_address=<optimized out>, error_callback=<optimized out>, data=<optimized out>,
fileline_fn=<optimized out>, found_sym=<optimized out>, found_dwarf=<optimized out>, exe=<optimized out>, debuginfo=<optimized out>)
at ../../../src/libbacktrace/elf.c:3151
3151 ../../../src/libbacktrace/elf.c: No such file or directory.
(gdb) bt
#0 elf_add (state=<optimized out>, filename=<optimized out>, descriptor=<optimized out>, base_address=<optimized out>, error_callback=<optimized out>,
data=<optimized out>, fileline_fn=<optimized out>, found_sym=<optimized out>, found_dwarf=<optimized out>, exe=<optimized out>, debuginfo=<optimized out>)
at ../../../src/libbacktrace/elf.c:3151
#1 0xffff8001010b0f5c in elf_add (state=<optimized out>, filename=<optimized out>, descriptor=<optimized out>, base_address=<optimized out>,
error_callback=<optimized out>, data=<optimized out>, fileline_fn=<optimized out>, found_sym=<optimized out>, found_dwarf=<optimized out>, exe=<optimized out>,
debuginfo=<optimized out>) at ../../../src/libbacktrace/elf.c:2996
#2 0xffff8001010b17a0 in phdr_callback (info=0xffff8001024f8888, size=64, pdata=0xffff8001024f89c0) at ../../../src/libbacktrace/elf.c:3270
#3 0xffff800101c72d40 in __GI___dl_iterate_phdr (callback=0xffff8001010b1730 <phdr_callback>, data=0xffff8001024f89c0) at dl-iteratephdr.c:75
#4 0xffff8001010b19b8 in backtrace_initialize (state=0xffff80010003a000, filename=0x7fefffff735 "/usr/bin/go", descriptor=<optimized out>,
error_callback=0xffff800100bf7150 <error_callback>, data=0xffff8001024f9988, fileline_fn=0xffff8001024f8ab8) at ../../../src/libbacktrace/elf.c:3313
#5 0xffff8001010ae1cc in fileline_initialize (state=0xffff80010003a000, error_callback=0xffff800100bf7150 <error_callback>, data=0xffff8001024f9988)
at ../../../src/libbacktrace/fileline.c:143
#6 0xffff8001010ae2f8 in backtrace_pcinfo (state=0xffff80010003a000, pc=18446603340528710231, callback=0xffff800100bf6e40 <callback>,
error_callback=0xffff800100bf7150 <error_callback>, data=0xffff8001024f9988) at ../../../src/libbacktrace/fileline.c:177
#7 0xffff8001010ae82c in unwind (context=0xffff8001024f8d20, vdata=0xffff8001024f98a0) at ../../../src/libbacktrace/backtrace.c:91
#8 0xffff800101ff8c18 in _Unwind_Backtrace () from /lib/sparc64-linux-gnu/libgcc_s.so.1
#9 0xffff8001010ae8b0 in backtrace_full (state=0xffff80010003a000, skip=<optimized out>, callback=0xffff800100bf6e40 <callback>,
error_callback=0xffff800100bf7150 <error_callback>, data=0xffff8001024f9988) at ../../../src/libbacktrace/backtrace.c:127
#10 0xffff800100bf7258 in runtime_callers (skip=<optimized out>, locbuf=0xffff8001024f9e40, m=<optimized out>, keep_thunks=<optimized out>)
at ../../../src/libgo/runtime/go-callers.c:207
#11 0xffff800100f7f2c0 in runtime.callers (skip=<optimized out>, locbuf=...) at ../../../src/libgo/go/runtime/traceback_gccgo.go:56
#12 0xffff800100fb1ce8 in runtime.mProf_Malloc (size=80, p=<optimized out>) at ../../../src/libgo/go/runtime/mprof.go:342
#13 runtime.profilealloc (mp=0xffff800101949f30 <runtime.m0>, size=80, x=0xc42021e690) at ../../../src/libgo/go/runtime/malloc.go:899
#14 runtime.mallocgc (size=<optimized out>, typ=<optimized out>, needzero=<optimized out>) at ../../../src/libgo/go/runtime/malloc.go:815
#15 0xffff800100fb64ec in runtime.growslice (et=0xffff8001015b48c8 <go_token.Position..d>, old=..., cap=2) at ../../../src/libgo/go/runtime/slice.go:183
#16 0xffff800100d3833c in go_build.Context.Import (ctxt=<optimized out>, path=..., srcDir=..., mode=<optimized out>) at ../../../src/libgo/go/go/build/build.go:872
#17 0x000001000008a4e0 in ?? ()
#18 0x000001000008f8b0 in ?? ()
#19 0x00000100000952b0 in ?? ()
#20 0x00000100000956b8 in ?? ()
#21 0x00000100000dd390 in ?? ()
#22 0x000001000006670c in main.main ()
(gdb)