Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
f5925b04
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f5925b04
编写于
8月 07, 2017
作者:
P
Péter Szilágyi
提交者:
GitHub
8月 07, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #14928 from fjl/build-goroot-explain
internal/build: add GoTool and document why it uses GOROOT
上级
67439c1d
f59a49d5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
6 deletion
+15
-6
build/ci.go
build/ci.go
+1
-4
internal/build/util.go
internal/build/util.go
+14
-2
未找到文件。
build/ci.go
浏览文件 @
f5925b04
...
...
@@ -250,10 +250,7 @@ func goTool(subcmd string, args ...string) *exec.Cmd {
}
func
goToolArch
(
arch
string
,
subcmd
string
,
args
...
string
)
*
exec
.
Cmd
{
gocmd
:=
filepath
.
Join
(
runtime
.
GOROOT
(),
"bin"
,
"go"
)
cmd
:=
exec
.
Command
(
gocmd
,
subcmd
)
cmd
.
Args
=
append
(
cmd
.
Args
,
args
...
)
cmd
:=
build
.
GoTool
(
subcmd
,
args
...
)
if
subcmd
==
"build"
||
subcmd
==
"install"
||
subcmd
==
"test"
{
// Go CGO has a Windows linker error prior to 1.8 (https://github.com/golang/go/issues/8756).
// Work around issue by allowing multiple definitions for <1.8 builds.
...
...
internal/build/util.go
浏览文件 @
f5925b04
...
...
@@ -138,6 +138,19 @@ func CopyFile(dst, src string, mode os.FileMode) {
}
}
// GoTool returns the command that runs a go tool. This uses go from GOROOT instead of PATH
// so that go commands executed by build use the same version of Go as the 'host' that runs
// build code. e.g.
//
// /usr/lib/go-1.8/bin/go run build/ci.go ...
//
// runs using go 1.8 and invokes go 1.8 tools from the same GOROOT. This is also important
// because runtime.Version checks on the host should match the tools that are run.
func
GoTool
(
tool
string
,
args
...
string
)
*
exec
.
Cmd
{
args
=
append
([]
string
{
tool
},
args
...
)
return
exec
.
Command
(
filepath
.
Join
(
runtime
.
GOROOT
(),
"bin"
,
"go"
),
args
...
)
}
// ExpandPackagesNoVendor expands a cmd/go import path pattern, skipping
// vendored packages.
func
ExpandPackagesNoVendor
(
patterns
[]
string
)
[]
string
{
...
...
@@ -148,8 +161,7 @@ func ExpandPackagesNoVendor(patterns []string) []string {
}
}
if
expand
{
args
:=
append
([]
string
{
"list"
},
patterns
...
)
cmd
:=
exec
.
Command
(
filepath
.
Join
(
runtime
.
GOROOT
(),
"bin"
,
"go"
),
args
...
)
cmd
:=
GoTool
(
"list"
,
patterns
...
)
out
,
err
:=
cmd
.
CombinedOutput
()
if
err
!=
nil
{
log
.
Fatalf
(
"package listing failed: %v
\n
%s"
,
err
,
string
(
out
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录