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 {
|
||||
t.registerTest("testso", "../misc/cgo/testso", "./test.bash")
|
||||
}
|
||||
if t.extLink() && t.goos == "darwin" && t.goarch == "amd64" {
|
||||
// TODO(crawshaw): add darwin/arm{,64}
|
||||
if t.buildmode("c-archive") {
|
||||
t.registerTest("testcarchive", "../misc/cgo/testcarchive", "./test.bash")
|
||||
}
|
||||
if t.gohostos == "linux" && t.goarch == "amd64" {
|
||||
|
|
@ -370,6 +369,26 @@ func (t *tester) extLink() bool {
|
|||
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 {
|
||||
env := mergeEnvLists([]string{"GOTRACEBACK=2"}, os.Environ())
|
||||
|
||||
|
|
|
|||
|
|
@ -288,7 +288,9 @@ func (mode *BuildMode) Set(s string) error {
|
|||
case "exe":
|
||||
*mode = BuildmodeExe
|
||||
case "c-archive":
|
||||
if goos != "darwin" {
|
||||
switch goos {
|
||||
case "darwin", "linux":
|
||||
default:
|
||||
return badmode()
|
||||
}
|
||||
*mode = BuildmodeCArchive
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue