cmd/go: allow buildmode c-archive for gccgo on ppc64
In buildmodeinit, the c-archive buildmode is flagged as invalid on linux/ppc64 for gccgo when it should be valid. This happens because the check against the gccgo flag is done after the checks for valid GOOS/GOARCH pairs instead of before as is done for all other buildmode cases in this switch. This corrects the problem and allows several of the gccgo gotools testcases to pass on linux/ppc64. Updates #29046 Reviewed-on: https://go-review.googlesource.com/c/152137 From-SVN: r266764
This commit is contained in:
parent
d89057777e
commit
ab25c42d05
2 changed files with 17 additions and 16 deletions
|
@ -1,4 +1,4 @@
|
|||
a8f768d68760768da5e86a8e63ef1ad5691c3ae8
|
||||
9e016dfe198152f870005ac844fe22c02e5349e3
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -85,23 +85,24 @@ func buildModeInit() {
|
|||
pkgsFilter = pkgsNotMain
|
||||
case "c-archive":
|
||||
pkgsFilter = oneMainPkg
|
||||
switch platform {
|
||||
case "darwin/arm", "darwin/arm64":
|
||||
codegenArg = "-shared"
|
||||
default:
|
||||
switch cfg.Goos {
|
||||
case "dragonfly", "freebsd", "linux", "netbsd", "openbsd", "solaris":
|
||||
if platform == "linux/ppc64" {
|
||||
base.Fatalf("-buildmode=c-archive not supported on %s\n", platform)
|
||||
}
|
||||
// Use -shared so that the result is
|
||||
// suitable for inclusion in a PIE or
|
||||
// shared library.
|
||||
codegenArg = "-shared"
|
||||
}
|
||||
}
|
||||
if gccgo {
|
||||
codegenArg = "-fPIC"
|
||||
} else {
|
||||
switch platform {
|
||||
case "darwin/arm", "darwin/arm64":
|
||||
codegenArg = "-shared"
|
||||
default:
|
||||
switch cfg.Goos {
|
||||
case "dragonfly", "freebsd", "linux", "netbsd", "openbsd", "solaris":
|
||||
if platform == "linux/ppc64" {
|
||||
base.Fatalf("-buildmode=c-archive not supported on %s\n", platform)
|
||||
}
|
||||
// Use -shared so that the result is
|
||||
// suitable for inclusion in a PIE or
|
||||
// shared library.
|
||||
codegenArg = "-shared"
|
||||
}
|
||||
}
|
||||
}
|
||||
cfg.ExeSuffix = ".a"
|
||||
ldBuildmode = "c-archive"
|
||||
|
|
Loading…
Add table
Reference in a new issue