Hi, I am having some issues with gccgo on ia64 (Itanium architecture). I have compiled gcc (8.2.0) with only configure options: --enable-languages=c,c++,go (Also tried adding --with-libffi, but did not change the behaviour.) The resulting gccgo seems to compile a hello world successfully and the program seems to run fine: > gccgo -o hello hello.go > ./hello Hello However, the "go" binary which gets created, seems to have problems. In sum: - for "go build" I get SIGILL - for "go --help" I get "fatal error: libgo built without FFI does not support reflect.Call or runtime.SetFinalizer" No matter what I try, somehow libffi does not get used. Doing the same compile on amd64 works fine. I am less worried about having no reflection support than the SIGILL which seems to suggest gccgo might not produce good binary for ia64. Have you seen similar / do you have any idea? Is anyone using ia64 successfully? Can it be a problem if the kernel(and its headers) I am compiling on is quite old? All produced binaries (go, lib*so*) are ia64 at least according to the "file" utility. Example backtrace of a go build: > CGO_ENABLED=0 GOTRACEBACK=system go build -a SIGILL: illegal instruction PC=2305843009225255986 m=2 sigcode=128 goroutine 5 [running]: runtime.sighandler ../../../libgo/go/runtime/signal_sighandler.go:109 runtime.sigtrampgo ../../../libgo/go/runtime/signal_unix.go:312 runtime.sigtramp ../../../libgo/runtime/go-signal.c:54 :0 runtime.mcall ../../../libgo/runtime/proc.c:360 :0 runtime.mcall ../../../libgo/runtime/proc.c:338 :0 goroutine 1 [runnable]: runtime.mcall ../../../libgo/runtime/proc.c:342 runtime.checkPreempt ../../../libgo/go/runtime/mgc_gccgo.go:89 runtime.mallocgc ../../../libgo/go/runtime/malloc.go:834 runtime.growslice ../../../libgo/go/runtime/slice.go:183 go_build.Context.Import ../../../libgo/go/go/build/build.go:904 cmd_go_internal_load.LoadImport ../../../libgo/go/cmd/go/internal/load/pkg.go:452 cmd_go_internal_load.Package.load ../../../libgo/go/cmd/go/internal/load/pkg.go:1256 cmd_go_internal_load.LoadImport ../../../libgo/go/cmd/go/internal/load/pkg.go:461 cmd_go_internal_load.Package.load ../../../libgo/go/cmd/go/internal/load/pkg.go:1256 cmd_go_internal_load.LoadImport ../../../libgo/go/cmd/go/internal/load/pkg.go:461 cmd_go_internal_load.Package.load ../../../libgo/go/cmd/go/internal/load/pkg.go:1256 cmd_go_internal_load.LoadImport ../../../libgo/go/cmd/go/internal/load/pkg.go:461 cmd_go_internal_load.Package.load ../../../libgo/go/cmd/go/internal/load/pkg.go:1256 cmd_go_internal_load.LoadImport ../../../libgo/go/cmd/go/internal/load/pkg.go:461 cmd_go_internal_load.LoadPackage ../../../libgo/go/cmd/go/internal/load/pkg.go:1583 cmd_go_internal_load.PackagesAndErrors ../../../libgo/go/cmd/go/internal/load/pkg.go:1628 cmd_go_internal_load.PackagesForBuild ../../../libgo/go/cmd/go/internal/load/pkg.go:1643 work.runBuild ../../../libgo/go/cmd/go/internal/work/build.go:280 main.main ../../gotools/../libgo/go/cmd/go/main.go:143 runtime.main ../../../libgo/go/runtime/proc.go:225 goroutine 2 [force gc (idle)]: runtime.mcall ../../../libgo/runtime/proc.c:342 runtime.gopark ../../../libgo/go/runtime/proc.go:321 runtime.goparkunlock ../../../libgo/go/runtime/proc.go:327 runtime.forcegchelper ../../../libgo/go/runtime/proc.go:278 runtime.kickoff ../../../libgo/go/runtime/proc.go:1167 created by runtime.runtime..init3 ../../../libgo/go/runtime/proc.go:265 +80 goroutine 3 [finalizer wait]: runtime.mcall ../../../libgo/runtime/proc.c:342 runtime.gopark ../../../libgo/go/runtime/proc.go:321 runtime.goparkunlock ../../../libgo/go/runtime/proc.go:327 runtime.runfinq ../../../libgo/go/runtime/mfinal.go:145 runtime.kickoff ../../../libgo/go/runtime/proc.go:1167 created by runtime.SetFinalizer ../../../libgo/go/runtime/mfinal.go:369 +2960 goroutine 4 [syscall]: goroutine in C code; stack unavailable created by os_signal.os_signal..init0 ../../../libgo/go/os/signal/signal_unix.go:28 +64 goroutine 6 [GC sweep wait]: runtime.mcall ../../../libgo/runtime/proc.c:342 runtime.gopark ../../../libgo/go/runtime/proc.go:321 runtime.goparkunlock ../../../libgo/go/runtime/proc.go:327 runtime.bgsweep ../../../libgo/go/runtime/mgcsweep.go:54 runtime.kickoff ../../../libgo/go/runtime/proc.go:1167 created by runtime.main ../../../libgo/go/runtime/proc.go:217 +784 Thanks for any help in advance, Robert