Skip to content

Commit

Permalink
cmd/dist,internal/platform: reenable the c-archive build mode on ios
Browse files Browse the repository at this point in the history
Also fix misc/cgo/testcarchive to provide a missing CoreFoundation
dependency at link time.

Fixes #58221.
Updates #58172.
Updates #58225.

Change-Id: Ib8b6e52ed2914596615da4c427df2fe984722de6
Reviewed-on: https://go-review.googlesource.com/c/go/+/463752
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
  • Loading branch information
Bryan C. Mills authored and gopherbot committed Feb 1, 2023
1 parent 6224db9 commit ab0f045
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
9 changes: 9 additions & 0 deletions misc/cgo/testcarchive/carchive_test.go
Expand Up @@ -132,6 +132,15 @@ func testMain(m *testing.M) int {
// in .text section.
cc = append(cc, "-Wl,-bnoobjreorder")
}
if GOOS == "ios" {
// Linking runtime/cgo on ios requires the CoreFoundation framework because
// x_cgo_init uses CoreFoundation APIs to switch directory to the app root.
//
// TODO(#58225): This special case probably should not be needed.
// runtime/cgo is a very low-level package, and should not provide
// high-level behaviors like changing the current working directory at init.
cc = append(cc, "-framework", "CoreFoundation")
}
libbase := GOOS + "_" + GOARCH
if runtime.Compiler == "gccgo" {
libbase = "gccgo_" + libgodir + "_fPIC"
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/dist/test.go
Expand Up @@ -1143,7 +1143,7 @@ func (t *tester) supportedBuildmode(mode string) bool {
return false
}
switch goos {
case "aix", "darwin", "windows":
case "aix", "darwin", "ios", "windows":
return true
case "linux":
switch goarch {
Expand Down
2 changes: 1 addition & 1 deletion src/internal/platform/supported.go
Expand Up @@ -101,7 +101,7 @@ func BuildModeSupported(compiler, buildmode, goos, goarch string) bool {

case "c-archive":
switch goos {
case "aix", "darwin", "windows":
case "aix", "darwin", "ios", "windows":
return true
case "linux":
switch goarch {
Expand Down

0 comments on commit ab0f045

Please sign in to comment.