Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/run: mips: Go run on mips env with Illegal instruction #44677

Closed
xiaoxi1989 opened this issue Feb 28, 2021 · 3 comments
Closed

cmd/run: mips: Go run on mips env with Illegal instruction #44677

xiaoxi1989 opened this issue Feb 28, 2021 · 3 comments

Comments

@xiaoxi1989
Copy link

@xiaoxi1989 xiaoxi1989 commented Feb 28, 2021

What version of Go are you using (go version)?

$ go version
1.16

CPU INFO

system type  : RTL8672
machine   : Unknown
processor  : 0
cpu model  : Taroko V0.2
BogoMIPS  : 597.60
wait instruction : no
microsecond timers : yes
tlb_entries  : 64
extra interrupt vector : no
hardware watchpoint : no
isa   : mips1
ASEs implemented : mips16
shadow register sets : 1
kscratch registers : 0
package   : 0
core   : 0

Does this issue reproduce with the latest release?

yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/chenxiaoxi/Library/Caches/go-build"
GOENV="/Users/chenxiaoxi/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/xxx/Documents/dev/gopath/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/xxx/Documents/dev/gopath"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/Users/xxx/Documents/dev/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/xxx/Documents/dev/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.16"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/gn/5v1jyffj6mn0nk1w353lgmzm0000gn/T/go-build2714969011=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

compile with

GOOS=linux GOARCH=mips GOMIPS=softfloat go build -ldflags "-s -w"  -o probe-client ./probe-client.go

What did you expect to see?

run success

What did you see instead?

Illegal instruction

image

@randall77
Copy link
Contributor

@randall77 randall77 commented Feb 28, 2021

Does this work in 1.15?
Can you figure out what the illegal instruction is? That error looks like it is coming directly from the OS, not from the Go runtime. Which makes me think it is very early in startup, before the Go runtime can install the SIGILL handler (or, less likely, the OS is not delivering SIGILL correctly).
Can you run under a debugger and see where it stops?

@cherrymui
Copy link
Contributor

@cherrymui cherrymui commented Mar 1, 2021

isa : mips1

If this is not lying, this ISA is really old. Go requires newer ISA (MIPS32r1+) to run.

@gopherbot
Copy link

@gopherbot gopherbot commented May 28, 2021

Timed out in state WaitingForInfo. Closing.

(I am just a bot, though. Please speak up if this is a mistake or you have the requested information.)

@gopherbot gopherbot closed this May 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
6 participants