mirror of
https://github.com/golang/go.git
synced 2025-05-05 23:53:05 +00:00
cmd/go: fail with nice error message on bad GOOS/GOARCH pair
Fixes #12272 Change-Id: I2115ec62ed4061084c482eb385a583a1c1909888 Reviewed-on: https://go-review.googlesource.com/22838 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
This commit is contained in:
parent
30bfafc319
commit
b90cb3f471
1
.gitignore
vendored
1
.gitignore
vendored
@ -26,6 +26,7 @@ misc/cgo/stdio/run.out
|
|||||||
misc/cgo/testso/main
|
misc/cgo/testso/main
|
||||||
src/cmd/cgo/zdefaultcc.go
|
src/cmd/cgo/zdefaultcc.go
|
||||||
src/cmd/go/zdefaultcc.go
|
src/cmd/go/zdefaultcc.go
|
||||||
|
src/cmd/go/zosarch.go
|
||||||
src/cmd/internal/obj/zbootstrap.go
|
src/cmd/internal/obj/zbootstrap.go
|
||||||
src/go/build/zcgo.go
|
src/go/build/zcgo.go
|
||||||
src/go/doc/headscan
|
src/go/doc/headscan
|
||||||
|
2
src/cmd/dist/build.go
vendored
2
src/cmd/dist/build.go
vendored
@ -464,6 +464,7 @@ var deptab = []struct {
|
|||||||
}{
|
}{
|
||||||
{"cmd/go", []string{
|
{"cmd/go", []string{
|
||||||
"zdefaultcc.go",
|
"zdefaultcc.go",
|
||||||
|
"zosarch.go",
|
||||||
}},
|
}},
|
||||||
{"runtime/internal/sys", []string{
|
{"runtime/internal/sys", []string{
|
||||||
"zversion.go",
|
"zversion.go",
|
||||||
@ -485,6 +486,7 @@ var gentab = []struct {
|
|||||||
gen func(string, string)
|
gen func(string, string)
|
||||||
}{
|
}{
|
||||||
{"zdefaultcc.go", mkzdefaultcc},
|
{"zdefaultcc.go", mkzdefaultcc},
|
||||||
|
{"zosarch.go", mkzosarch},
|
||||||
{"zversion.go", mkzversion},
|
{"zversion.go", mkzversion},
|
||||||
{"zcgo.go", mkzcgo},
|
{"zcgo.go", mkzcgo},
|
||||||
|
|
||||||
|
15
src/cmd/dist/buildgo.go
vendored
15
src/cmd/dist/buildgo.go
vendored
@ -23,9 +23,7 @@ import (
|
|||||||
// It is invoked to write cmd/go/zdefaultcc.go
|
// It is invoked to write cmd/go/zdefaultcc.go
|
||||||
// but we also write cmd/cgo/zdefaultcc.go
|
// but we also write cmd/cgo/zdefaultcc.go
|
||||||
func mkzdefaultcc(dir, file string) {
|
func mkzdefaultcc(dir, file string) {
|
||||||
var out string
|
out := fmt.Sprintf(
|
||||||
|
|
||||||
out = fmt.Sprintf(
|
|
||||||
"// auto generated by go tool dist\n"+
|
"// auto generated by go tool dist\n"+
|
||||||
"\n"+
|
"\n"+
|
||||||
"package main\n"+
|
"package main\n"+
|
||||||
@ -42,7 +40,16 @@ func mkzdefaultcc(dir, file string) {
|
|||||||
writefile(out, file, writeSkipSame)
|
writefile(out, file, writeSkipSame)
|
||||||
}
|
}
|
||||||
|
|
||||||
// mkzcgo writes zcgo.go for go/build package:
|
// mkzcgo writes zosarch.go for cmd/go.
|
||||||
|
func mkzosarch(dir, file string) {
|
||||||
|
var buf bytes.Buffer
|
||||||
|
buf.WriteString("// auto generated by go tool dist\n\n")
|
||||||
|
buf.WriteString("package main\n\n")
|
||||||
|
fmt.Fprintf(&buf, "var osArchSupportsCgo = %#v", cgoEnabled)
|
||||||
|
writefile(buf.String(), file, writeSkipSame)
|
||||||
|
}
|
||||||
|
|
||||||
|
// mkzcgo writes zcgo.go for the go/build package:
|
||||||
//
|
//
|
||||||
// package build
|
// package build
|
||||||
// var cgoEnabled = map[string]bool{}
|
// var cgoEnabled = map[string]bool{}
|
||||||
|
@ -669,6 +669,12 @@ var (
|
|||||||
func init() {
|
func init() {
|
||||||
goarch = buildContext.GOARCH
|
goarch = buildContext.GOARCH
|
||||||
goos = buildContext.GOOS
|
goos = buildContext.GOOS
|
||||||
|
|
||||||
|
if _, ok := osArchSupportsCgo[goos+"/"+goarch]; !ok {
|
||||||
|
fmt.Fprintf(os.Stderr, "cmd/go: unsupported GOOS/GOARCH pair %s/%s\n", goos, goarch)
|
||||||
|
os.Exit(2)
|
||||||
|
}
|
||||||
|
|
||||||
if goos == "windows" {
|
if goos == "windows" {
|
||||||
exeSuffix = ".exe"
|
exeSuffix = ".exe"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user