cmd/dist: test cgo internal linking PIE

On platforms where internal linking PIE is supported, run
misc/cgo/test with that configuration.

Change-Id: Ia09631b07cc469c85818e1494093d802ea9d69a1
Reviewed-on: https://go-review.googlesource.com/c/go/+/218838
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Cherry Zhang 2020-02-09 17:01:53 -05:00
parent ffc0573b85
commit 3e4e644433
1 changed files with 8 additions and 1 deletions

View File

@ -581,7 +581,7 @@ func (t *tester) registerTests() {
}
// Test internal linking of PIE binaries where it is supported.
if goos == "linux" && (goarch == "amd64" || goarch == "arm64") {
if t.internalLinkPIE() {
t.tests = append(t.tests, distTest{
name: "pie_internal",
heading: "internal linking of -buildmode=pie",
@ -936,6 +936,10 @@ func (t *tester) internalLink() bool {
return true
}
func (t *tester) internalLinkPIE() bool {
return goos == "linux" && (goarch == "amd64" || goarch == "arm64")
}
func (t *tester) supportedBuildmode(mode string) bool {
pair := goos + "-" + goarch
switch mode {
@ -1110,6 +1114,9 @@ func (t *tester) cgoTest(dt *distTest) error {
if t.supportedBuildmode("pie") {
t.addCmd(dt, "misc/cgo/test", t.goTest(), "-buildmode=pie")
if t.internalLinkPIE() {
t.addCmd(dt, "misc/cgo/test", t.goTest(), "-buildmode=pie", "-ldflags=-linkmode=internal")
}
t.addCmd(dt, "misc/cgo/testtls", t.goTest(), "-buildmode=pie")
t.addCmd(dt, "misc/cgo/nocgo", t.goTest(), "-buildmode=pie")
}