From: rust Date: Mon, 23 Oct 2017 19:28:08 +0000 (-0400) Subject: cmd/link/internal/ld: modify -pagezero_size to please iTunes Connect validation for... X-Git-Tag: go1.10beta1~621 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=89a7adf8e47c8e8f7929e68621a66000bb2703e6;p=gostls13.git cmd/link/internal/ld: modify -pagezero_size to please iTunes Connect validation for iOS. This change modifies go to create iOS arm64 binaries that pass iTunes upload validation. Tested with xcode 9.0.1 macOS 10.13. Fixes #22402. Change-Id: I3f14c6ac85065e2da88d06edc8682947f6f1cd47 Reviewed-on: https://go-review.googlesource.com/72730 Reviewed-by: David Crawshaw --- diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index bd3abbba0a..083c56c131 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1105,7 +1105,10 @@ func (ctxt *Link) hostlink() { switch ctxt.BuildMode { case BuildModeExe: if ctxt.HeadType == objabi.Hdarwin { - argv = append(argv, "-Wl,-pagezero_size,4000000") + // __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") } case BuildModePIE: // ELF.