]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: support PIE on macOS/ARM64
authorCherry Zhang <cherryyz@google.com>
Sun, 4 Oct 2020 03:36:58 +0000 (23:36 -0400)
committerCherry Zhang <cherryyz@google.com>
Tue, 6 Oct 2020 22:55:40 +0000 (22:55 +0000)
On macOS/ARM64 everything must be PIE, and we already build PIE
in exe buildmode. Support PIE buildmode as well.

Updates #38485.

Change-Id: I10b68c2f6eb77714e31c26116c61a0e28bf9a358
Reviewed-on: https://go-review.googlesource.com/c/go/+/259442
Trust: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/dist/test.go
src/cmd/internal/sys/supported.go
src/cmd/link/internal/ld/config.go

index 4b07501b6dc6773935a2a79312df394c9848fd18..d37454c6519ced6adc1a1bf7c49b7c32246020e8 100644 (file)
@@ -1023,7 +1023,7 @@ func (t *tester) supportedBuildmode(mode string) bool {
                        "linux-386", "linux-amd64", "linux-arm", "linux-arm64", "linux-ppc64le", "linux-s390x",
                        "android-amd64", "android-arm", "android-arm64", "android-386":
                        return true
-               case "darwin-amd64":
+               case "darwin-amd64", "darwin-arm64":
                        return true
                case "windows-amd64", "windows-386", "windows-arm":
                        return true
index 94fc92146cea34300b9fdf5f0774ced4953a62ba..f97f663f2ac6168c2c65f06f91ac761ed32b48a2 100644 (file)
@@ -86,7 +86,7 @@ func BuildModeSupported(compiler, buildmode, goos, goarch string) bool {
                case "linux/386", "linux/amd64", "linux/arm", "linux/arm64", "linux/ppc64le", "linux/s390x",
                        "android/amd64", "android/arm", "android/arm64", "android/386",
                        "freebsd/amd64",
-                       "darwin/amd64",
+                       "darwin/amd64", "darwin/arm64",
                        "aix/ppc64",
                        "windows/386", "windows/amd64", "windows/arm":
                        return true
index a3ed5f23075a22a28e6e2163957d026a2e4f7ff0..aaf74b58def1b18ff036df43f1bb255c7fa35846 100644 (file)
@@ -39,7 +39,13 @@ func (mode *BuildMode) Set(s string) error {
        case "pie":
                switch objabi.GOOS {
                case "aix", "android", "linux", "windows":
-               case "darwin", "freebsd":
+               case "darwin":
+                       switch objabi.GOARCH {
+                       case "amd64", "arm64":
+                       default:
+                               return badmode()
+                       }
+               case "freebsd":
                        switch objabi.GOARCH {
                        case "amd64":
                        default: