]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: fix handling of gccgo standard library.
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 31 Jan 2012 18:41:38 +0000 (19:41 +0100)
committerRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 31 Jan 2012 18:41:38 +0000 (19:41 +0100)
The previous logic was mainly non-working. It only needs to
ensure that the go tool doesn't try to build the standard
library with gccgo.

R=golang-dev, rsc
CC=golang-dev, remy
https://golang.org/cl/5580051

src/cmd/go/build.go
src/cmd/go/pkg.go

index 1e27b3da0d6cbd60fae04888e334cb17caf341a9..b0e05b2c167cca55b29dc9ead4401d3663de322d 100644 (file)
@@ -349,6 +349,12 @@ func (b *builder) action(mode buildMode, depMode buildMode, p *Package) *action
                        // Fake packages - nothing to build.
                        return a
                }
+               // gccgo standard library is "fake" too.
+               if _, ok := buildToolchain.(gccgoToolchain); ok {
+                       // the target name is needed for cgo.
+                       a.target = p.target
+                       return a
+               }
        }
 
        if !p.Stale && !buildA && p.target != "" {
index 2a32e2aea4fec72c12ef6dde6599558f4eca7f81..ad7d7c95ab1988d6aa0cb1401621f22ead52663c 100644 (file)
@@ -295,14 +295,6 @@ func scanPackage(ctxt *build.Context, t *build.Tree, arg, importPath, dir string
                        dir = filepath.Join(filepath.Dir(dir), "gccgo", filepath.Base(dir))
                }
                p.target = buildToolchain.pkgpath(dir, p)
-
-               // NB. Currently we have gccgo install the standard libraries
-               // in the "usual" location, where the Go toolchain puts them.
-               if p.Standard {
-                       if _, ok := buildToolchain.(gccgoToolchain); ok {
-                               p.target = goToolchain{}.pkgpath(dir, p)
-                       }
-               }
        }
 
        var built time.Time