Go: cmd/internal/obj/arm64: assembling TSTW $1689262177517664, R3 fails

Created on 20 Feb 2019  Â·  10Comments  Â·  Source: golang/go

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

1.12 rc1

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

Fedora Rawhide aarch64

Micro (https://github.com/zyedidia/micro ) 1.4.1 compilation fails with 1.12 rc1 on aarch64 while it was working on 1.11. The error message is cryptic to me and I didn't find any info ducking it:

BUILDSTDERR: cd /builddir/build/BUILD/micro-1.4.1/_build/src/github.com/zyedidia/micro/cmd/micro
BUILDSTDERR: /usr/lib/golang/pkg/tool/linux_arm64/compile -o $WORK/b001/_pkg_.a -trimpath $WORK/b001 -shared -p main -complete -installsuffix shared -buildid yOmOqxe3SyScT76ADNYq/yOmOqxe3SyScT76ADNYq -goversion go1.12rc1 -D "" -importcfg $WORK/b001/importcfg -pack ./actions.go ./actions_posix.go ./autocomplete.go ./bindings.go ./buffer.go ./cellview.go ./colorscheme.go ./command.go ./cursor.go ./eventhandler.go ./highlighter.go ./job.go ./keymenu.go ./lineArray.go ./loc.go ./lua.go ./messenger.go ./micro.go ./plugin.go ./pluginmanager.go ./rtfiles.go ./runtime.go ./scrollbar.go ./search.go ./settings.go ./shell.go ./shell_supported.go ./split_tree.go ./stack.go ./statusline.go ./tab.go ./terminal.go ./util.go ./view.go
BUILDSTDERR: # github.com/zyedidia/micro/cmd/micro
BUILDSTDERR: cmd/micro/terminal.go:150:25: illegal combination: 00560 (/builddir/build/BUILD/micro-1.4.1/_build/src/github.com/zyedidia/micro/cmd/micro/terminal.go:125)    TSTW    $1689262177517664, R3
BUILDSTDERR: error: Bad exit status from /var/tmp/rpm-tmp.N9zjPx (%build)

I don't have access to the build system so I can't give more infos than this. It seems to me it's a regression since 1.11 was building fine.

FrozenDueToAge NeedsInvestigation release-blocker

All 10 comments

Thanks for the report. Can you provide the full output from go env? It would be helpful in narrowing this down.

Edit: I see you said "I don't have access to the build system so I can't give more infos than this." If go env is hard to come by, can you at least clarify which exact values of GOOS and GOARCH were used for compilation? Was it GOOS=linux GOARCH=arm64 or something else?

Thanks for the report. Can you provide the full output from go env? It would be helpful in narrowing this down.

I managed to get it:

GOARCH="arm64"
GOBIN=""
GOCACHE="/builddir/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/builddir/build/BUILD/micro-1.4.1/_build:/usr/share/gocode"
GOPROXY=""
GORACE=""
GOROOT="/usr/lib/golang"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_arm64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
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-build446101992=/tmp/go-build -gno-record-gcc-switches"

I can confirm this. Simply assembling TSTW $1689262177517664, R3 now fails. It seems it starts to fail since CL https://go-review.googlesource.com/c/go/+/118796 (86ce1cb060446bcee2454080c7f55e754dbf7f82). I'll take a look tomorrow.

cc @zhangfannie

Thanks for that!

I can reproduce this by cross-compiling on my Mac:

$ export GOPATH=/tmp/empty
$ go get -d github.com/zyedidia/micro/cmd/micro
$ cd $GOPATH/src/github.com/zyedidia/micro/cmd/micro
$ git checkout v1.4.1
$ GOOS=linux GOARCH=arm64 go1.11.5 install
$ GOOS=linux GOARCH=arm64 go1.12rc1 install
# github.com/zyedidia/micro/cmd/micro
<autogenerated>:1: illegal combination: 00560 (/tmp/empty/src/github.com/zyedidia/micro/cmd/micro/terminal.go:125)  TSTW    $1689262177517664, R3

It is a regression compared to Go 1.11.5, so marking as release-blocker for 1.12 for now.

/cc @cherrymui Who would be good to ping about this? Edit: You beat me to it. :)

@cherrymui I am looking into it. Thank you.

@cherrymui I figured out the cause of the failure, it is indeed caused by my patch https://go-review.googlesource.com/c/go/+/118796。 This CL did not correctly consider the ADDCON2 class correctly causint this issue. Fix CL is ready, I will submit it ASAP. Thank you.

Change https://golang.org/cl/163259 mentions this issue: cmd/internal/obj/arm64: fix the bug assembling TSTW

Man, you guys rock!

Change https://golang.org/cl/163419 mentions this issue: [release-branch.go1.12] cmd/internal/obj/arm64: fix the bug assembling TSTW

Well, the fix didn't make it into 1.12, but it will be in 1.12.1.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

michaelsafyan picture michaelsafyan  Â·  3Comments

rsc picture rsc  Â·  3Comments

myitcv picture myitcv  Â·  3Comments

natefinch picture natefinch  Â·  3Comments

rakyll picture rakyll  Â·  3Comments