-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: add ios/amd64 as a GOOS/GOARCH #42100
Comments
Is it possible to add a builder running the iOS emulator? Per the porting policy, each port must have a builder with a designated maintainer. (We've run into issues in the past with regressions in otherwise-unsupported emulators, particularly QEMU user mode.) |
I suppose a macOS builder could be repurposed to start a simulator and run ios/amd64 tests. I did CL 255257 to support running Go programs and tests on the simulator, but I don't have the inclination to set up and maintain a builder. Even if I did, it would likely not make it in time for the freeze.
As Austin alluded to above, it's technically not a new port. Using GOOS=darwin GOARCH=amd64 -tags=ios happened to work on the iOS simulator and I have never seen bugs in that support for gomobile nor Gio projects. It seems the ios/arm64 and darwin/amd64 builders provided enough coverage. My interest in this is solely to move the already existing simulator support to the new (in Go 1.16) GOOS=ios, and not leave it at the awkward GOOS=darwin -tags=ios configuration. |
Right. Ideally we would have a builder for this, but I don't know that the porting policy really applies here because this is something we already kind of support. This proposal is really about keeping the thing we already kind of support consistent with other changes. |
I guess part of what I'm saying is: if this is a configuration that we “already kind of support”, then we need a builder (regardless of whether it is |
(Note that I am distinguishing here between “a configuration that we support” and “a configuration that happens to work today”.) |
For android, what we do is GOOS=android but "linux" is implied as a build tag. |
@rsc GOOS=ios already implies "darwin", like GOOS=android implies "linux". This issue is about making it so that an iOS binary can be built for the iOS Simulator in AMD64 architecture using the GOOS=ios GOARCH=amd64 configuration, rather than what it was before (GOOS=darwin GOARCH=amd64 -tags=ios). I posted a question in #38485 (comment) which is relevant (and probably would've been better to post in this issue instead). The "GOOS=darwin GOARCH=amd64 -tags=ios" configuration was added in 2015, before there was as much attention paid to the porting policy as there is today. It was done with a single commit (see CL 12301) that resolved issue #11736. I understand this proposal is to offer the same level of support for GOOS=ios GOARCH=amd64 as we did for GOOS=darwin GOARCH=amd64 -tags=ios. Also CC @golang/release. |
Sorry, I missed that amd64 is the important bit here, not ios. This is a clear yes. |
Accepted. |
Change https://golang.org/cl/263798 mentions this issue: |
Change https://golang.org/cl/264738 mentions this issue: |
It's known there is no builder for it yet. Skip it so that TestSlowBotAliases passes. For golang/go#42177. Updates golang/go#42100. Change-Id: I5f1a6b17e6aa4b57cbdea44f2eeb1d4817e5f67f Reviewed-on: https://go-review.googlesource.com/c/build/+/264738 Trust: Dmitri Shuralyov <dmitshur@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Change https://golang.org/cl/265197 mentions this issue: |
Updates #42100. Change-Id: Ib59432bea99a9dd6e25fbd759b31e423dc250f42 Reviewed-on: https://go-review.googlesource.com/c/go/+/265197 Trust: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Change https://golang.org/cl/267718 mentions this issue: |
Updates #38485, #42100. For #40700. Change-Id: I2caaa8482f13f9b79d4c2d2fdd242543981060cf Reviewed-on: https://go-review.googlesource.com/c/go/+/267718 Trust: Cherry Zhang <cherryyz@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Work with either way for now on iOS (darwin/arm64 vs ios/arm64). In February when Go 1.16 comes out we'll have a universal binary for darwin/arm64 (macOS) and will drop support for Go 1.15 and its darwin/amd64 meaning iOS. (it'll mean macOS). Context: * https://tip.golang.org/doc/go1.16#darwin * golang/go#38485 * golang/go#42100
As part of adding the macOS ARM64 port, we've reclaimed darwin/arm64 for macOS and added a new ios/arm64 GOOS/GOARCH for iOS. However, this left the iOS emulator for amd64 in the lurch: it continues to use the darwin/amd64 GOOS/GOARCH, plus an "ios" build tag. This seems quite inconsistent, so we propose adding ios/amd64 as a GOOS/GOARCH for the emulator.
This is in some sense a new port (or at least a renaming of an existing one), so it seemed prudent to run it through the proposal process. Obviously we're coming up on the freeze, but I don't expect this to be controversial, and I think it should land in the same release as ios/arm64. @eliasnaur already has a (quite simple) implementation ready: CL 263798.
/cc @cherrymui @eliasnaur @dmitshur
The text was updated successfully, but these errors were encountered: