mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/internal/ld, cmd/dist: support -buildmode=c-archive on linux
Change-Id: I8c97751a79b57197428b0f0b66fc9575708a2eb0 Reviewed-on: https://go-review.googlesource.com/8979 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
c1c667542c
commit
449969a4ac
2 changed files with 24 additions and 3 deletions
23
src/cmd/dist/test.go
vendored
23
src/cmd/dist/test.go
vendored
|
|
@ -272,8 +272,7 @@ func (t *tester) registerTests() {
|
||||||
} else if t.hasBash() && t.goos != "android" && !iOS {
|
} else if t.hasBash() && t.goos != "android" && !iOS {
|
||||||
t.registerTest("testso", "../misc/cgo/testso", "./test.bash")
|
t.registerTest("testso", "../misc/cgo/testso", "./test.bash")
|
||||||
}
|
}
|
||||||
if t.extLink() && t.goos == "darwin" && t.goarch == "amd64" {
|
if t.buildmode("c-archive") {
|
||||||
// TODO(crawshaw): add darwin/arm{,64}
|
|
||||||
t.registerTest("testcarchive", "../misc/cgo/testcarchive", "./test.bash")
|
t.registerTest("testcarchive", "../misc/cgo/testcarchive", "./test.bash")
|
||||||
}
|
}
|
||||||
if t.gohostos == "linux" && t.goarch == "amd64" {
|
if t.gohostos == "linux" && t.goarch == "amd64" {
|
||||||
|
|
@ -370,6 +369,26 @@ func (t *tester) extLink() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *tester) buildmode(mode string) bool {
|
||||||
|
switch mode {
|
||||||
|
case "c-archive":
|
||||||
|
switch {
|
||||||
|
case !t.extLink():
|
||||||
|
return false
|
||||||
|
case t.goos == "darwin" && t.goarch == "amd64":
|
||||||
|
// TODO(crawshaw): add darwin/arm{,64}
|
||||||
|
return true
|
||||||
|
case t.goos == "linux" && t.goarch == "amd64":
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
log.Fatal("internal error: unknown buildmode %s", mode)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (t *tester) cgoTest() error {
|
func (t *tester) cgoTest() error {
|
||||||
env := mergeEnvLists([]string{"GOTRACEBACK=2"}, os.Environ())
|
env := mergeEnvLists([]string{"GOTRACEBACK=2"}, os.Environ())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -288,7 +288,9 @@ func (mode *BuildMode) Set(s string) error {
|
||||||
case "exe":
|
case "exe":
|
||||||
*mode = BuildmodeExe
|
*mode = BuildmodeExe
|
||||||
case "c-archive":
|
case "c-archive":
|
||||||
if goos != "darwin" {
|
switch goos {
|
||||||
|
case "darwin", "linux":
|
||||||
|
default:
|
||||||
return badmode()
|
return badmode()
|
||||||
}
|
}
|
||||||
*mode = BuildmodeCArchive
|
*mode = BuildmodeCArchive
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue