Skip to content

runtime: ppc64x binaries randomly segfault on linux 5.13rc6 #46803

@pmur

Description

@pmur

I am unable to build a toolchain using a linux 5.13rc6 kernel on Fedora 33. During the build process the host toolchain will randomly segfault.

This seems to be related to the switchover to a C compiled VDSO, which clobbers g (r30).

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

$ go version go1.15.12 linux/ppc64le

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="ppc64le"
GOBIN=""
GOCACHE="/home/murp/.cache/go-build"
GOENV="/home/murp/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="ppc64le"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/murp/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/murp/go"
GOPRIVATE=""
GOPROXY="direct"
GOROOT="/usr/lib/golang"
GOSUMDB="off"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_ppc64le"
GCCGO="gccgo"
GOPPC64="power8"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/murp/git/go/src/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build511416598=/tmp/go-build -gno-record-gcc-switches"

What did you do?

./make.bash

Building Go cmd/dist using /usr/lib/golang. (go1.15.12 linux/ppc64le)
/usr/lib/golang/pkg/tool/linux_ppc64le/link: signal: segmentation fault (core dumped)

./make.bash -v

cmd/dist

Building Go toolchain1 using /usr/lib/golang.
math/bits
bootstrap/internal/unsafeheader
bootstrap/math/bits
bootstrap/internal/goexperiment
bootstrap/internal/goversion
bootstrap/internal/race
bootstrap/cmd/compile/internal/test
bootstrap/sort
math
bootstrap/container/heap
math/rand
strconv
bootstrap/strconv
crypto
io/ioutil
os/exec
regexp/syntax
reflect
regexp
encoding/binary
fmt
bootstrap/cmd/internal/sys
encoding/base64
crypto/sha1
crypto/sha256
crypto/md5
bootstrap/internal/buildcfg
bootstrap/cmd/internal/bio
flag
bootstrap/cmd/internal/src
bootstrap/cmd/internal/edit
bootstrap/cmd/internal/pkgpath
bootstrap/debug/dwarf
bootstrap/compress/flate
go/token
encoding/json
bootstrap/math/big
bootstrap/cmd/internal/objabi
net/url
go/scanner
bootstrap/cmd/internal/dwarf
bootstrap/cmd/asm/internal/flags
bootstrap/cmd/asm/internal/lex
go build bootstrap/cmd/internal/bio: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
bootstrap/cmd/internal/gcprog
bootstrap/cmd/compile/internal/syntax
text/template/parse
go build bootstrap/compress/flate: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
compress/flate
go build go/scanner: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
go build encoding/json: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
compress/gzip
go build bootstrap/math/big: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
runtime/pprof
go build bootstrap/cmd/asm/internal/lex: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
go build bootstrap/debug/dwarf: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
bootstrap/cmd/link/internal/benchmark
go build bootstrap/cmd/compile/internal/syntax: /usr/lib/golang/pkg/tool/linux_ppc64le/compile: signal: segmentation fault (core dumped)
go tool dist: FAILED: /usr/lib/golang/bin/go install -gcflags=-l -tags=math_big_pure_go compiler_bootstrap -v bootstrap/cmd/...: exit status 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions