mirror of git://gcc.gnu.org/git/gcc.git
cmd: Use correct install tool dir with gccgo
When using the go command built from gccgo to build and
install a go tool, use the value from runtime GCCGOTOOLDIR as
the install directory.
This also fixes the output from 'go tool' when used with the
gccgo-built go command, to only include the go tools and not
other binaries found in the same directory.
Reviewed-on: https://go-review.googlesource.com/16516
From-SVN: r230677
This commit is contained in:
parent
1fb19247a9
commit
dcfa3345eb
|
|
@ -1,4 +1,4 @@
|
||||||
dfa74d975884f363c74d6a66a37b1703093fdba6
|
d52835c9376985f92f35c32af5f1808239981536
|
||||||
|
|
||||||
The first line of this file holds the git revision number of the last
|
The first line of this file holds the git revision number of the last
|
||||||
merge done from the gofrontend repository.
|
merge done from the gofrontend repository.
|
||||||
|
|
|
||||||
|
|
@ -785,7 +785,11 @@ func (p *Package) load(stk *importStack, bp *build.Package, err error) *Package
|
||||||
if goTools[p.ImportPath] == toTool {
|
if goTools[p.ImportPath] == toTool {
|
||||||
// This is for 'go tool'.
|
// This is for 'go tool'.
|
||||||
// Override all the usual logic and force it into the tool directory.
|
// Override all the usual logic and force it into the tool directory.
|
||||||
p.target = filepath.Join(gorootPkg, "tool", full)
|
if buildContext.Compiler == "gccgo" {
|
||||||
|
p.target = filepath.Join(runtime.GCCGOTOOLDIR, elem)
|
||||||
|
} else {
|
||||||
|
p.target = filepath.Join(gorootPkg, "tool", full)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if p.target != "" && buildContext.GOOS == "windows" {
|
if p.target != "" && buildContext.GOOS == "windows" {
|
||||||
p.target += ".exe"
|
p.target += ".exe"
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,12 @@ var (
|
||||||
toolN bool
|
toolN bool
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// List of go tools found in the gccgo tool directory.
|
||||||
|
// Other binaries could be in the same directory so don't
|
||||||
|
// show those with the 'go tool' command.
|
||||||
|
|
||||||
|
var gccgoTools = []string{"cgo", "fix", "cover", "godoc", "vet"}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
cmdTool.Flag.BoolVar(&toolN, "n", false, "")
|
cmdTool.Flag.BoolVar(&toolN, "n", false, "")
|
||||||
}
|
}
|
||||||
|
|
@ -146,6 +152,21 @@ func listTools() {
|
||||||
if toolIsWindows && strings.HasSuffix(name, toolWindowsExtension) {
|
if toolIsWindows && strings.HasSuffix(name, toolWindowsExtension) {
|
||||||
name = name[:len(name)-len(toolWindowsExtension)]
|
name = name[:len(name)-len(toolWindowsExtension)]
|
||||||
}
|
}
|
||||||
fmt.Println(name)
|
|
||||||
|
// The tool directory used by gccgo will have other binaries
|
||||||
|
// in additions to go tools. Only display go tools for this list.
|
||||||
|
|
||||||
|
if buildContext.Compiler == "gccgo" {
|
||||||
|
for _, tool := range gccgoTools {
|
||||||
|
if tool == name {
|
||||||
|
fmt.Println(name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Not gccgo, list all the tools found in this dir
|
||||||
|
|
||||||
|
fmt.Println(name)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue