Run both forms of cgo inside the environment (#930)

diff --git a/go/tools/builders/cgo.go b/go/tools/builders/cgo.go
index dd35303..a24c2aa 100644
--- a/go/tools/builders/cgo.go
+++ b/go/tools/builders/cgo.go
@@ -78,6 +78,8 @@
 	if err := flags.Parse(args); err != nil {
 		return err
 	}
+	env := os.Environ()
+	env = append(env, goenv.Env()...)
 
 	if len(dynout) > 0 {
 		dynpackage, err := extractPackage(sources[0])
@@ -93,6 +95,7 @@
 		cmd := exec.Command(goenv.Go, goargs...)
 		cmd.Stdout = os.Stdout
 		cmd.Stderr = os.Stderr
+		cmd.Env = env
 		if err := cmd.Run(); err != nil {
 			return fmt.Errorf("error running cgo: %v", err)
 		}
@@ -205,8 +208,6 @@
 	if abs, err := filepath.Abs(cc); err == nil {
 		cc = abs
 	}
-	env := os.Environ()
-	env = append(env, goenv.Env()...)
 	env = append(env, fmt.Sprintf("CC=%s", cc))
 	env = append(env, fmt.Sprintf("CXX=%s", cc))