@@ -131,6 +131,7 @@
var buildGccgoflags []string // -gccgoflags flag
var buildRace bool // -race flag
+var reqPkgSrc bool // req src for Imports
var buildContext = build.Default
var buildToolchain toolchain = noToolchain{}
@@ -183,6 +184,12 @@
cmd.Flag.Var((*stringsFlag)(&buildContext.BuildTags), "tags", "")
cmd.Flag.Var(buildCompiler{}, "compiler", "")
cmd.Flag.BoolVar(&buildRace, "race", false, "")
+ switch build.Default.Compiler {
+ case "gc":
+ reqPkgSrc = true
+ case "gccgo":
+ reqPkgSrc = false
+ }
}
func addBuildFlagsNX(cmd *Command) {
@@ -562,15 +569,18 @@
// using cgo, to make sure we do not overwrite the binary while
// a package is using it. If this is a cross-build, then the cgo we
// are writing is not the cgo we need to use.
+
if goos == runtime.GOOS && goarch == runtime.GOARCH && !buildRace {
- if len(p.CgoFiles) > 0 || p.Standard && p.ImportPath == "runtime/cgo" {
- var stk importStack
- p1 := loadPackage("cmd/cgo", &stk)
- if p1.Error != nil {
- fatalf("load cmd/cgo: %v", p1.Error)
+ if reqPkgSrc {
+ if len(p.CgoFiles) > 0 || p.Standard && p.ImportPath == "runtime/cgo" {
+ var stk importStack
+ p1 := loadPackage("cmd/cgo", &stk)
+ if p1.Error != nil {
+ fatalf("load cmd/cgo: %v", p1.Error)
+ }
+ a.cgo = b.action(depMode, depMode, p1)
+ a.deps = append(a.deps, a.cgo)
}
- a.cgo = b.action(depMode, depMode, p1)
- a.deps = append(a.deps, a.cgo)
}
}
@@ -488,6 +488,9 @@
continue
}
p1 := loadImport(path, p.Dir, stk, p.build.ImportPos[path])
+ if !reqPkgSrc && p1.Root == "" {
+ continue
+ }
if p1.local {
if !p.local && p.Error == nil {
p.Error = &PackageError{
@@ -371,9 +371,11 @@
delete(deps, "unsafe")
all := []string{}
- for path := range deps {
- if !build.IsLocalImport(path) {
- all = append(all, path)
+ if reqPkgSrc {
+ for path := range deps {
+ if !build.IsLocalImport(path) {
+ all = append(all, path)
+ }
}
}
sort.Strings(all)
@@ -541,6 +543,9 @@
stk.push(p.ImportPath + " (test)")
for _, path := range p.TestImports {
p1 := loadImport(path, p.Dir, &stk, p.build.TestImportPos[path])
+ if !reqPkgSrc && p1.Root == "" {
+ continue
+ }
if p1.Error != nil {
return nil, nil, nil, p1.Error
}
@@ -566,6 +571,9 @@
continue
}
p1 := loadImport(path, p.Dir, &stk, p.build.XTestImportPos[path])
+ if !reqPkgSrc && p1.Root == "" {
+ continue
+ }
if p1.Error != nil {
return nil, nil, nil, p1.Error
}
@@ -694,6 +702,9 @@
pmain.imports = append(pmain.imports, ptest)
} else {
p1 := loadImport(dep, "", &stk, nil)
+ if !reqPkgSrc && p1.Root == "" {
+ continue
+ }
if p1.Error != nil {
return nil, nil, nil, p1.Error
}
Only in /home/iant/go1.3/src/cmd/go: zdefaultcc.go
@@ -133,12 +133,18 @@
"386": 4,
"amd64": 8,
"arm": 4,
+ "ppc64": 8,
+ "ppc64le": 8,
+ "s390x": 8,
}
var intSizeMap = map[string]int64{
"386": 4,
"amd64": 8,
"arm": 4,
+ "ppc64": 8,
+ "ppc64le": 8,
+ "s390x": 8,
}
var cPrefix string