Cross Compiling for MIPS, runtime error

Code:
package main

import “fmt”
import “os/exec”

func main() {
out, _ := exec.Command(“date”).Output()
fmt.Println(string(out))
}

go version:
go version go1.14.6 windows/amd64

go env:
set GO111MODULE=
set GOARCH=mipsle
set GOBIN=
set GOCACHE=C:\Users\wakoy\AppData\Local\go-build
set GOENV=C:\Users\wakoy\AppData\Roaming\go\env
set GOEXE=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=linux
set GOPATH=C:\Users\wakoy\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set GOMIPS=hardfloat
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-fPIC -mabi=32 -march=mips32 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\wakoy\AppData\Local\Temp\go-build932383906=/tmp/go-build -gno-record-gcc-switches

MIPS :
Linux **** 2.6.36+ #36 Wed Jul 15 16:06:23 KST 2020 mips unknown

Error:
./stdout
runtime: epollcreate failed with 89
fatal error: runtime: netpollinit failed

goroutine 1 [running]:
runtime.throw(0x10c690, 0x1b)
c:/go/src/runtime/panic.go:1116 +0x60 fp=0x41c56c sp=0x41c558 pc=0x47d60
runtime.netpollinit()
c:/go/src/runtime/netpoll_epoll.go:33 +0x27c fp=0x41c5a4 sp=0x41c56c pc=0x43cf0
runtime.netpollGenericInit()
c:/go/src/runtime/netpoll.go:112 +0xa0 fp=0x41c5ac sp=0x41c5a4 pc=0x42c4c
internal/poll.runtime_pollServerInit()
c:/go/src/runtime/netpoll.go:105 +0x34 fp=0x41c5b0 sp=0x41c5ac pc=0x42b9c
sync.(*Once).doSlow(0x1c2f00, 0x1104ac)
c:/go/src/sync/once.go:66 +0x168 fp=0x41c5dc sp=0x41c5b0 pc=0x8f518
sync.(*Once).Do(…)
c:/go/src/sync/once.go:57
internal/poll.(*pollDesc).init(0x40e194, 0x40e180, 0x410001, 0x40e180)
c:/go/src/internal/poll/fd_poll_runtime.go:38 +0x190 fp=0x41c5f4 sp=0x41c5dc pc=0xb9a20
internal/poll.(*FD).Init(0x40e180, 0x108464, 0x4, 0x1, 0x0, 0x0)
c:/go/src/internal/poll/fd_unix.go:63 +0xb0 fp=0x41c608 sp=0x41c5f4 pc=0xb9e68
os.newFile(0x4, 0x108cc3, 0x9, 0x1, 0x0)
c:/go/src/os/file_unix.go:155 +0x110 fp=0x41c630 sp=0x41c608 pc=0xbc598
os.openFileNolog(0x108cc3, 0x9, 0x0, 0x0, 0x410000, 0xc, 0xc)
c:/go/src/os/file_unix.go:226 +0x1ac fp=0x41c65c sp=0x41c630 pc=0xbc860
os.OpenFile(0x108cc3, 0x9, 0x0, 0x0, 0x0, 0x0, 0x5f0eaac5)
c:/go/src/os/file.go:307 +0x6c fp=0x41c67c sp=0x41c65c pc=0xbc388
os.Open(…)
c:/go/src/os/file.go:287
os/exec.(*Cmd).stdin(0x458000, 0x0, 0x3, 0x40a030)
c:/go/src/os/exec/exec.go:246 +0x418 fp=0x41c6bc sp=0x41c67c pc=0xce0f4
os/exec.(*Cmd).Start(0x458000, 0x108401, 0x43c030)
c:/go/src/os/exec/exec.go:407 +0x120 fp=0x41c75c sp=0x41c6bc pc=0xceb7c
os/exec.(*Cmd).Run(0x458000, 0x43c030, 0x0)
c:/go/src/os/exec/exec.go:338 +0x3c fp=0x41c76c sp=0x41c75c pc=0xcea04
os/exec.(*Cmd).Output(0x458000, 0x4, 0x0, 0x0, 0x0, 0x458000)
c:/go/src/os/exec/exec.go:546 +0x98 fp=0x41c794 sp=0x41c76c pc=0xcf770
main.main()
c:/go/skt/stdout.go:7 +0x64 fp=0x41c7c0 sp=0x41c794 pc=0xd1368
runtime.main()
c:/go/src/runtime/proc.go:203 +0x24c fp=0x41c7ec sp=0x41c7c0 pc=0x4af7c
runtime.goexit()
c:/go/src/runtime/asm_mipsx.s:651 +0x4 fp=0x41c7ec sp=0x41c7ec pc=0x7edb4

If you asked me to guess, I’d say the kernel is too old. Can you try a newer one?

If you search for similar errors you get ones like this: https://github.com/golang/go/issues/24980 which has a too old kernel.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.