cmd/go: update to match recent changes to gc
In https://golang.org/cl/111097 the gc version of cmd/go was updated to include some gofrontend-specific changes. The gofrontend code already has different versions of those changes; this CL makes the gofrontend match the upstream code. Reviewed-on: https://go-review.googlesource.com/111099 From-SVN: r259918
This commit is contained in:
parent
e7902c2c8f
commit
6522932843
8 changed files with 47 additions and 21 deletions
|
@ -1,4 +1,4 @@
|
|||
85ca682349af2cb1aa6b1eecac794aeb73d24f15
|
||||
bf6f714559bd7b27b7686811aaf0f6e8e7f1c0d5
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -1266,6 +1266,9 @@
|
|||
//
|
||||
// Special-purpose environment variables:
|
||||
//
|
||||
// GCCGOTOOLDIR
|
||||
// If set, where to find gccgo tools, such as cgo.
|
||||
// The default is based on how gccgo was configured.
|
||||
// GOROOT_FINAL
|
||||
// The root of the installed Go tree, when it is
|
||||
// installed in a location other than where it is built.
|
||||
|
@ -1279,9 +1282,6 @@
|
|||
// Defined by Git. A colon-separated list of schemes that are allowed to be used
|
||||
// with git fetch/clone. If set, any scheme not explicitly mentioned will be
|
||||
// considered insecure by 'go get'.
|
||||
// GCCGOTOOLDIR
|
||||
// If set, where to find gccgo tools, such as cgo.
|
||||
// The default is based on how gccgo was configured.
|
||||
//
|
||||
//
|
||||
// Import path syntax
|
||||
|
|
|
@ -92,11 +92,12 @@ var (
|
|||
// Update build context to use our computed GOROOT.
|
||||
func init() {
|
||||
BuildContext.GOROOT = GOROOT
|
||||
// Note that we must use runtime.GOOS and runtime.GOARCH here,
|
||||
// as the tool directory does not move based on environment variables.
|
||||
// This matches the initialization of ToolDir in go/build,
|
||||
// except for using GOROOT rather than runtime.GOROOT().
|
||||
if runtime.Compiler != "gccgo" {
|
||||
// Note that we must use runtime.GOOS and runtime.GOARCH here,
|
||||
// as the tool directory does not move based on environment
|
||||
// variables. This matches the initialization of ToolDir in
|
||||
// go/build, except for using GOROOT rather than
|
||||
// runtime.GOROOT.
|
||||
build.ToolDir = filepath.Join(GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
|
||||
}
|
||||
}
|
||||
|
@ -107,6 +108,8 @@ func findGOROOT() string {
|
|||
}
|
||||
def := filepath.Clean(runtime.GOROOT())
|
||||
if runtime.Compiler == "gccgo" {
|
||||
// gccgo has no real GOROOT, and it certainly doesn't
|
||||
// depend on the executable's location.
|
||||
return def
|
||||
}
|
||||
exe, err := os.Executable()
|
||||
|
|
|
@ -526,6 +526,9 @@ Architecture-specific environment variables:
|
|||
|
||||
Special-purpose environment variables:
|
||||
|
||||
GCCGOTOOLDIR
|
||||
If set, where to find gccgo tools, such as cgo.
|
||||
The default is based on how gccgo was configured.
|
||||
GOROOT_FINAL
|
||||
The root of the installed Go tree, when it is
|
||||
installed in a location other than where it is built.
|
||||
|
@ -539,9 +542,6 @@ Special-purpose environment variables:
|
|||
Defined by Git. A colon-separated list of schemes that are allowed to be used
|
||||
with git fetch/clone. If set, any scheme not explicitly mentioned will be
|
||||
considered insecure by 'go get'.
|
||||
GCCGOTOOLDIR
|
||||
If set, where to find gccgo tools, such as cgo.
|
||||
The default is based on how gccgo was configured.
|
||||
`,
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@ import (
|
|||
"os"
|
||||
pathpkg "path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strings"
|
||||
"unicode"
|
||||
|
@ -976,7 +975,7 @@ func (p *Package) load(stk *ImportStack, bp *build.Package, err error) {
|
|||
// This is for 'go tool'.
|
||||
// Override all the usual logic and force it into the tool directory.
|
||||
if cfg.BuildToolchainName == "gccgo" {
|
||||
p.Target = filepath.Join(runtime.GCCGOTOOLDIR, elem)
|
||||
p.Target = filepath.Join(base.ToolDir, elem)
|
||||
} else {
|
||||
p.Target = filepath.Join(cfg.GOROOTpkg, "tool", full)
|
||||
}
|
||||
|
|
|
@ -1595,14 +1595,7 @@ func init() {
|
|||
}
|
||||
}
|
||||
|
||||
func getToolDir() string {
|
||||
if runtime.Compiler == "gccgo" {
|
||||
return envOr("GCCGOTOOLDIR", runtime.GCCGOTOOLDIR)
|
||||
} else {
|
||||
return filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
|
||||
}
|
||||
}
|
||||
|
||||
// ToolDir is the directory containing build tools.
|
||||
var ToolDir = getToolDir()
|
||||
|
||||
// IsLocalImport reports whether the import path is
|
||||
|
|
17
libgo/go/go/build/gc.go
Normal file
17
libgo/go/go/build/gc.go
Normal file
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build gc
|
||||
|
||||
package build
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
// getToolDir returns the default value of ToolDir.
|
||||
func getToolDir() string {
|
||||
return filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
|
||||
}
|
14
libgo/go/go/build/gccgo.go
Normal file
14
libgo/go/go/build/gccgo.go
Normal file
|
@ -0,0 +1,14 @@
|
|||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build gccgo
|
||||
|
||||
package build
|
||||
|
||||
import "runtime"
|
||||
|
||||
// getToolDir returns the default value of ToolDir.
|
||||
func getToolDir() string {
|
||||
return envOr("GCCGOTOOLDIR", runtime.GCCGOTOOLDIR)
|
||||
}
|
Loading…
Add table
Reference in a new issue