From 3d75819cdbc61e97b7a6e919ff7f751cc6bb03b5 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Sun, 21 Jun 2020 17:32:55 +0200 Subject: [PATCH] build: Set CGO_ENABLED=0 by default, except on specific platforms (#6768) --- build.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/build.go b/build.go index 2f89ac689..621526e5a 100644 --- a/build.go +++ b/build.go @@ -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)