File tools-packaging.patch of Package go1.4.2966

Index: go/src/cmd/go/pkg.go
===================================================================
--- go.orig/src/cmd/go/pkg.go
+++ go/src/cmd/go/pkg.go
@@ -492,7 +492,13 @@ func (p *Package) load(stk *importStack,
 		if goTools[p.ImportPath] == toTool {
 			// This is for 'go tool'.
 			// Override all the usual logic and force it into the tool directory.
-			p.target = filepath.Join(gorootPkg, "tool", full)
+            // If GOROOT_TARGET is set, then write to it for packaging purpose
+            gorootTarget := os.Getenv("GOROOT_TARGET")
+            if gorootTarget == "" {
+    			p.target = filepath.Join(gorootPkg, "tool", full)
+            } else {
+    			p.target = filepath.Join(gorootTarget, "pkg/tool", full)
+            }
 		}
 		if p.target != "" && buildContext.GOOS == "windows" {
 			p.target += ".exe"