Skip to content

I can't use golang shared buildmode. #36269

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

Closed
n454149301 opened this issue Dec 24, 2019 · 2 comments
Closed

I can't use golang shared buildmode. #36269

n454149301 opened this issue Dec 24, 2019 · 2 comments

Comments

@n454149301
Copy link

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

$ go version
go version go1.13.5 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
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/duan/.cache/go-build"
GOENV="/home/duan/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/duan/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/duan/软件/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/duan/软件/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/duan/ceshi/golang/shared/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 -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build354654314=/tmp/go-build -gno-record-gcc-switches"

What did you do?

$ tree
.
├── go.mod
├── hehe
│   └── hehe.go
└── main.go

$ cat go.mod
module core

go 1.13

$ cat main.go
package main

import (
"core/hehe"
)

func main () {
hehe.Hehe ()
}

$ cat ./hehe/hehe.go
package hehe

import (
"fmt"
)

func Hehe () {
fmt.Println ("hehe")
}

$ go build main.go
$ ./main
hehe

This is the right step.

$ go install -buildmode=shared -linkshared std

This is the right step.

$ go install -buildmode=shared -linkshared core/hehe

panic: runtime error: slice bounds out of range [:-2]

goroutine 1 [running]:
cmd/go/internal/load.(*Package).load(0xc000022480, 0xc0001539f0, 0xc00004d180, 0x0, 0x0)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1491 +0x36db
cmd/go/internal/load.loadImport(0xc0002ae200, 0x7ffd3498f15f, 0x9, 0xc000028094, 0x1e, 0x0, 0xc0001539f0, 0x0, 0x0, 0x0, ...)
/usr/local/go/src/cmd/go/internal/load/pkg.go:511 +0xdf2
cmd/go/internal/load.PackagesAndErrors(0xc000020090, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1982 +0x398
cmd/go/internal/load.PackagesForBuild(0xc000020090, 0x1, 0x1, 0x9b9a00, 0x0, 0x0)
/usr/local/go/src/cmd/go/internal/load/pkg.go:2028 +0x5d
cmd/go/internal/work.runInstall(0xea4340, 0xc000020090, 0x1, 0x1)
/usr/local/go/src/cmd/go/internal/work/build.go:483 +0x44
main.main()
/usr/local/go/src/cmd/go/main.go:189 +0x57f

$ go build -linkshared core

panic: runtime error: slice bounds out of range [:-2]

goroutine 1 [running]:
cmd/go/internal/load.(*Package).load(0xc0000a7200, 0xc000169910, 0xc00007ca80, 0x0, 0x0)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1491 +0x36db
cmd/go/internal/load.loadImport(0x0, 0xc0004eda21, 0x9, 0xc00018eac0, 0x1e, 0xc0000a6000, 0xc000169910, 0xc000214ae0, 0x1, 0x1, ...)
/usr/local/go/src/cmd/go/internal/load/pkg.go:511 +0xdf2
cmd/go/internal/load.LoadImport(0xc0004eda21, 0x9, 0xc00018eac0, 0x1e, 0xc0000a6000, 0xc000169910, 0xc000214ae0, 0x1, 0x1, 0x1, ...)
/usr/local/go/src/cmd/go/internal/load/pkg.go:464 +0xaa
cmd/go/internal/load.(*Package).load(0xc0000a6000, 0xc000169910, 0xc00007c700, 0x0, 0x0)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1605 +0x1993
cmd/go/internal/load.loadImport(0xc0000954e0, 0x7ffde5c0b164, 0x4, 0xc000028094, 0x1e, 0x0, 0xc000169910, 0x0, 0x0, 0x0, ...)
/usr/local/go/src/cmd/go/internal/load/pkg.go:511 +0xdf2
cmd/go/internal/load.PackagesAndErrors(0xc0000b4030, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1982 +0x398
cmd/go/internal/load.PackagesForBuild(0xc0000b4030, 0x1, 0x1, 0xa3a510, 0x2, 0x1)
/usr/local/go/src/cmd/go/internal/load/pkg.go:2028 +0x5d
cmd/go/internal/work.runBuild(0xea4280, 0xc0000b4030, 0x1, 0x1)
/usr/local/go/src/cmd/go/internal/work/build.go:316 +0x88
main.main()
/usr/local/go/src/cmd/go/main.go:189 +0x57f

What did you expect to see?

1、go install -buildmode=shared -linkshared std
2、go install -buildmode=shared -linkshared core/hehe
3、go build -linkshared core
4、ldd core
5、I want to see the dynamic libraries pkg/linux_amd64_dynlink/libstd.so and pkg/linux_amd64_dynlink/libcore-hehe.so

What did you see instead?

panic

@smasher164
Copy link
Member

Closing as a duplicate of #18671.

@networkimprov
Copy link

Or of #34347 which probably should be reopened.

@golang golang locked and limited conversation to collaborators Dec 24, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants