]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/go/internal/modindex/read.go
cmd/go: don't install most GOROOT .a files in pkg
[gostls13.git] / src / cmd / go / internal / modindex / read.go
index d6a04a015636b67968ead92dbadd95e86298c5c6..e9cfbca8aed4b6bb6be921e569872aa0785a69db 100644 (file)
@@ -12,6 +12,7 @@ import (
        "go/build"
        "go/build/constraint"
        "go/token"
+       "internal/buildinternal"
        "internal/godebug"
        "internal/goroot"
        "path"
@@ -431,8 +432,15 @@ func (rp *IndexPackage) Import(bctxt build.Context, mode build.ImportMode) (p *b
                        p.PkgRoot = ctxt.joinPath(p.Root, "pkg")
                        p.BinDir = ctxt.joinPath(p.Root, "bin")
                        if pkga != "" {
+                               // Always set PkgTargetRoot. It might be used when building in shared
+                               // mode.
                                p.PkgTargetRoot = ctxt.joinPath(p.Root, pkgtargetroot)
-                               p.PkgObj = ctxt.joinPath(p.Root, pkga)
+
+                               // Set the install target if applicable.
+                               if strings.ToLower(godebug.Get("installgoroot")) == "all" ||
+                                       !p.Goroot || buildinternal.NeedsInstalledDotA(p.ImportPath) {
+                                       p.PkgObj = ctxt.joinPath(p.Root, pkga)
+                               }
                        }
                }
        }