]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: test cgo internal linking PIE
authorCherry Zhang <cherryyz@google.com>
Sun, 9 Feb 2020 22:01:53 +0000 (17:01 -0500)
committerCherry Zhang <cherryyz@google.com>
Fri, 21 Feb 2020 23:11:00 +0000 (23:11 +0000)
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>
src/cmd/dist/test.go

index 56bdfcac19a1425a3ec4e7e8361c79429c4844fb..1869fb5b2d1d847310d6e66f6aea73c8b0f4180d 100644 (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")
                        }