gccgo - illegal instruction on ia64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux