mirror of https://github.com/golang/go.git
cmd: -buildmode=c-shared for linux/arm
Already supported platforms are linux/amd64 and android/arm. Running -buildmode=c-shared on linux/arm is equivalent to: -ldflags "-shared" -asmflags "-shared" Change-Id: Ifdb267f1d6508157f236be912fa369440172d161 Reviewed-on: https://go-review.googlesource.com/8895 Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
607d5158c1
commit
41e9f8c4ed
|
|
@ -308,6 +308,7 @@ var pkgsFilter = func(pkgs []*Package) []*Package { return pkgs }
|
|||
|
||||
func buildModeInit() {
|
||||
var codegenArg, ldBuildmode string
|
||||
platform := goos + "/" + goarch
|
||||
switch buildBuildmode {
|
||||
case "archive":
|
||||
pkgsFilter = pkgsNotMain
|
||||
|
|
@ -322,16 +323,16 @@ func buildModeInit() {
|
|||
ldBuildmode = "c-archive"
|
||||
case "c-shared":
|
||||
pkgsFilter = pkgsMain
|
||||
platform := goos + "/" + goarch
|
||||
switch platform {
|
||||
case "linux/amd64":
|
||||
codegenArg = "-shared"
|
||||
buildGcflags = append(buildGcflags, codegenArg)
|
||||
case "linux/arm":
|
||||
codegenArg = "-shared"
|
||||
case "android/arm":
|
||||
default:
|
||||
fatalf("-buildmode=c-shared not supported on %s\n", platform)
|
||||
}
|
||||
if goarch == "amd64" {
|
||||
codegenArg = "-shared"
|
||||
}
|
||||
ldBuildmode = "c-shared"
|
||||
case "default":
|
||||
ldBuildmode = "exe"
|
||||
|
|
@ -342,11 +343,12 @@ func buildModeInit() {
|
|||
fatalf("buildmode=%s not supported", buildBuildmode)
|
||||
}
|
||||
if buildLinkshared {
|
||||
if goarch != "amd64" || goos != "linux" {
|
||||
if platform != "linux/amd64" {
|
||||
fmt.Fprintf(os.Stderr, "go %s: -linkshared is only supported on linux/amd64\n", flag.Args()[0])
|
||||
os.Exit(2)
|
||||
}
|
||||
codegenArg = "-dynlink"
|
||||
buildGcflags = append(buildGcflags, codegenArg)
|
||||
// TODO(mwhudson): remove -w when that gets fixed in linker.
|
||||
buildLdflags = append(buildLdflags, "-linkshared", "-w")
|
||||
}
|
||||
|
|
@ -355,7 +357,6 @@ func buildModeInit() {
|
|||
}
|
||||
if codegenArg != "" {
|
||||
buildAsmflags = append(buildAsmflags, codegenArg)
|
||||
buildGcflags = append(buildGcflags, codegenArg)
|
||||
if buildContext.InstallSuffix != "" {
|
||||
buildContext.InstallSuffix += "_"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue