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/go: go install -buildmode=plugin creates shared object with wrong file name #33571

Closed
zephyrtronium opened this issue Aug 9, 2019 · 3 comments
Labels
GoCommand cmd/go help wanted NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@zephyrtronium
Copy link
Contributor

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

$ go version
go version go1.12.7 linux/amd64

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
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/zephyrtronium/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/zephyrtronium/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
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 -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build282654314=/tmp/go-build -gno-record-gcc-switches"

What did you do?

~/mygo/plugintest$ printf 'package main\n\nvar String = "Hello, world!"\n' >plugin.go
~/mygo/plugintest$ go install -buildmode=plugin -x

What did you expect to see?

A shared object named plugintest.so in /home/zephyrtronium/go/pkg/linux_amd64_dynlink/github.com/zephyrtronium/.

What did you see instead?

A shared object named plugintest.a in the same directory.

I confirmed that the plugin loads correctly using the plugin package, it's just named .a instead of .so. The output from go install -buildmode=plugin -x includes mv $WORK/b001/exe/a.out.so /home/zephyrtronium/go/pkg/linux_amd64_dynlink/github.com/zephyrtronium/plugintest.a, versus go build -buildmode=plugin -n having mv $WORK/b001/exe/a.out.so plugintest.so.

@bcmills bcmills added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Aug 12, 2019
@bcmills bcmills added this to the Unplanned milestone Aug 12, 2019
@bcmills
Copy link
Contributor

bcmills commented Aug 12, 2019

@bcmills bcmills added the GoCommand cmd/go label Sep 7, 2023
@quantonganh
Copy link
Contributor

I guess this has been fixed:

$ go install -buildmode=plugin -x
...

mv $WORK/b001/exe/a.out.so plugintest.so
rm -rf $WORK/b001/

@bcmills
Copy link
Contributor

bcmills commented Nov 3, 2023

Huh. I'm not sure what would have fixed it, but given the lack of comments since 2019 I suspect you're correct. 🙃

(Maybe it could have been https://go.dev/cl/197544?)

At any rate: closing as “no longer reproducible”. @quantonganh, thanks for checking this!

@bcmills bcmills closed this as not planned Won't fix, can't repro, duplicate, stale Nov 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GoCommand cmd/go help wanted NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

No branches or pull requests

3 participants