Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
GitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
build: add ios/amd64 as a GOOS/GOARCH #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.
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.
@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.
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 <firstname.lastname@example.org> Run-TryBot: Dmitri Shuralyov <email@example.com> TryBot-Result: Go Bot <firstname.lastname@example.org> Reviewed-by: Cherry Zhang <email@example.com>
Updates #42100. Change-Id: Ib59432bea99a9dd6e25fbd759b31e423dc250f42 Reviewed-on: https://go-review.googlesource.com/c/go/+/265197 Trust: Cherry Zhang <firstname.lastname@example.org> Run-TryBot: Cherry Zhang <email@example.com> TryBot-Result: Go Bot <firstname.lastname@example.org> Reviewed-by: Ian Lance Taylor <email@example.com>
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