]> Cypherpunks repositories - gostls13.git/commitdiff
cmd: enable -buildmode=pie on aix/ppc64
authorClément Chigot <clement.chigot@atos.net>
Fri, 22 Mar 2019 11:54:37 +0000 (12:54 +0100)
committerIan Lance Taylor <iant@golang.org>
Fri, 22 Mar 2019 14:24:53 +0000 (14:24 +0000)
Change-Id: I939518462c931ba9feb125b2f299ef0706b124ce
Reviewed-on: https://go-review.googlesource.com/c/go/+/168879
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/dist/test.go
src/cmd/go/internal/work/init.go
src/cmd/link/internal/ld/config.go
src/cmd/link/internal/ld/lib.go

index eaed9c49464d71c6163ea4b95e2676e760cc5872..ec78890f8c200a9dc7903ac0b5e145405358ffe1 100644 (file)
@@ -963,7 +963,8 @@ func (t *tester) supportedBuildmode(mode string) bool {
                return false
        case "pie":
                switch pair {
-               case "linux-386", "linux-amd64", "linux-arm", "linux-arm64", "linux-ppc64le", "linux-s390x",
+               case "aix/ppc64",
+                       "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":
index 3381ab544c7f4aad84c55db6c83bdcacf06f0da3..d60295ce53c077f581bfa552a19764d8bceda331 100644 (file)
@@ -164,6 +164,7 @@ func buildModeInit() {
                                codegenArg = "-shared"
                        case "darwin/amd64":
                                codegenArg = "-shared"
+                       case "aix/ppc64":
                        default:
                                base.Fatalf("-buildmode=pie not supported on %s\n", platform)
                        }
index 40be3a553c52b59504c6f2ed173801284c6bc779..5d59d4067b91e740ff22d61dd767c4b33e83edbe 100644 (file)
@@ -38,7 +38,7 @@ func (mode *BuildMode) Set(s string) error {
                *mode = BuildModeExe
        case "pie":
                switch objabi.GOOS {
-               case "android", "linux":
+               case "aix", "android", "linux":
                case "darwin", "freebsd":
                        switch objabi.GOARCH {
                        case "amd64":
index 2900268a57cdfc3ba648b96fbd20d6b3c6ab6357..f2a9921c8e1b648e6323a7a13f8f192a67bb167e 100644 (file)
@@ -179,7 +179,7 @@ func (ctxt *Link) CanUsePlugins() bool {
 func (ctxt *Link) UseRelro() bool {
        switch ctxt.BuildMode {
        case BuildModeCArchive, BuildModeCShared, BuildModeShared, BuildModePIE, BuildModePlugin:
-               return ctxt.IsELF
+               return ctxt.IsELF || ctxt.HeadType == objabi.Haix
        default:
                return ctxt.linkShared || (ctxt.HeadType == objabi.Haix && ctxt.LinkMode == LinkExternal)
        }
@@ -1173,7 +1173,7 @@ func (ctxt *Link) hostlink() {
                }
        case BuildModePIE:
                // ELF.
-               if ctxt.HeadType != objabi.Hdarwin {
+               if ctxt.HeadType != objabi.Hdarwin && ctxt.HeadType != objabi.Haix {
                        if ctxt.UseRelro() {
                                argv = append(argv, "-Wl,-z,relro")
                        }