build: Set CGO_ENABLED=0 by default, except on specific platforms (#6768)

This commit is contained in:
Simon Frei
2020-06-21 17:32:55 +02:00
committed by GitHub
parent 705710b1a1
commit 3d75819cdb

View File

@@ -451,9 +451,7 @@ func install(target target, tags []string) {
}
os.Setenv("GOBIN", filepath.Join(cwd, "bin"))
os.Setenv("GOOS", goos)
os.Setenv("GOARCH", goarch)
os.Setenv("CC", cc)
setBuildEnvVars()
// On Windows generate a special file which the Go compiler will
// automatically use when generating Windows binaries to set things like
@@ -477,9 +475,7 @@ func build(target target, tags []string) {
rmr(target.BinaryName())
os.Setenv("GOOS", goos)
os.Setenv("GOARCH", goarch)
os.Setenv("CC", cc)
setBuildEnvVars()
// On Windows generate a special file which the Go compiler will
// automatically use when generating Windows binaries to set things like
@@ -501,6 +497,19 @@ func build(target target, tags []string) {
runPrint(goCmd, args...)
}
func setBuildEnvVars() {
os.Setenv("GOOS", goos)
os.Setenv("GOARCH", goarch)
os.Setenv("CC", cc)
if os.Getenv("CGO_ENABLED") == "" {
switch goos {
case "darwin", "solaris":
default:
os.Setenv("CGO_ENABLED", "0")
}
}
}
func appendParameters(args []string, tags []string, pkgs ...string) []string {
if pkgdir != "" {
args = append(args, "-pkgdir", pkgdir)