func buildModeInit() {
var codegenArg, ldBuildmode string
+ platform := goos + "/" + goarch
switch buildBuildmode {
case "archive":
pkgsFilter = pkgsNotMain
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"
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")
}
}
if codegenArg != "" {
buildAsmflags = append(buildAsmflags, codegenArg)
- buildGcflags = append(buildGcflags, codegenArg)
if buildContext.InstallSuffix != "" {
buildContext.InstallSuffix += "_"
}