]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: only adjust pagezero for iOS on darwin/arm64
authorRuss Cox <rsc@golang.org>
Wed, 25 Oct 2017 01:14:39 +0000 (21:14 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 25 Oct 2017 01:57:51 +0000 (01:57 +0000)
The new pagezero_size introduced by CL 72730 breaks
on 32-bit systems, since it is 2³². Restrict the change to
darwin/arm64, since it is intended for iOS only.

We could plausibly allow GOARCH=amd64 as well, but
without a compelling reason, changing the zero page size
doesn't seem worth the risk.

Change-Id: I5d6adcbaff8d0e5b169ff13512f188332cc7ed9a
Reviewed-on: https://go-review.googlesource.com/73250
Run-TryBot: Russ Cox <rsc@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/cmd/link/internal/ld/lib.go

index 26ce209f1c87a30d1322bbfeaaa079e13b038d15..377b4a4df29b52282062e58bd59aaab9dd524734 100644 (file)
@@ -1105,10 +1105,13 @@ func (ctxt *Link) hostlink() {
        switch ctxt.BuildMode {
        case BuildModeExe:
                if ctxt.HeadType == objabi.Hdarwin {
-                       // __PAGEZERO segment size determined empirically.
-                       // XCode 9.0.1 successfully uploads an iOS app with this value.
-                       // Also works for macOS apps.
-                       argv = append(argv, "-Wl,-pagezero_size,100000000")
+                       if ctxt.Arch.Family == sys.ARM64 {
+                               // __PAGEZERO segment size determined empirically.
+                               // XCode 9.0.1 successfully uploads an iOS app with this value.
+                               argv = append(argv, "-Wl,-pagezero_size,100000000")
+                       } else {
+                               argv = append(argv, "-Wl,-pagezero_size,4000000")
+                       }
                }
        case BuildModePIE:
                // ELF.