Darwin/ARM (a.k.a. iOS) port of Go 1.1 tarball available!

276 views
Skip to first unread message

minux

unread,
May 19, 2013, 1:05:00 PM5/19/13
to golang-nuts
Hi Gophers,

    I just built Darwin/ARM port [1] of Go 1.1 and uploaded to bitbucket:
It should support all ARMv7 iDevices with at least 256MiB of memory
(for example, all iPads).

    To use it, just follow the normal binary install instructions at

# as root
rm -r /usr/local/go
tar -C /usr/local -xzf go1.1.darwin-arm.tar.gz

    I sincerely hope that iDevices owners will enjoy this and please report
bugs to the issue tracker at https://bitbucket.org/minux/goios/issues/new.
Btw, it still doesn't support cgo, and I'm working on cmd/5l support at the
moment (it's in branch ios-cgo).

[1] http://bitbucket.org/minux/goios, branch ios for development version,
and branch ios-go1.1 for Go 1.1.

Best regards,
minux

Brad Fitzpatrick

unread,
May 19, 2013, 2:11:00 PM5/19/13
to minux, golang-nuts
Can you elaborate on this project's status?

Does it require a jail-broken iDevice? Now that we have the new func representation without a writable executable heap, is cgo the last remaining hurdle before Go can run on unmodified iDevices?

And then, once it can run on an unrooted device (so we can have a builder), I assume you'll start sending patches?




--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Alexei Sholik

unread,
May 19, 2013, 2:28:03 PM5/19/13
to Brad Fitzpatrick, minux, golang-nuts
Simply being able to compile Go on iOS is not enough for production use. You'll need to have some bridging to Objective-C to deal with runloop events, responds to app life cycle events, accept input, etc. Also, building UI is done with the UIKit framework, obviously. You cannot create just a command-line utility on a non-jailbroken iOS device, it has to have UI.
--
Best regards
Alexei Sholik

Mikkel Krautz

unread,
May 19, 2013, 2:43:29 PM5/19/13
to Alexei Sholik, Brad Fitzpatrick, minux, golang-nuts
I hope to be able to use https://github.com/mkrautz/objc on iOS once the cgo hurdle has been solved.

minux

unread,
May 19, 2013, 3:18:07 PM5/19/13
to Brad Fitzpatrick, golang-nuts

On Mon, May 20, 2013 at 2:11 AM, Brad Fitzpatrick <brad...@golang.org> wrote:
Can you elaborate on this project's status?
cgo still isn't supported, but i have finished all runtime/cgo parts so the only remaining part
is write (or port) Mach-O support in cmd/5l.
due to the lack of cgo support, one can only use the port to write command line
programs on iOS.
Does it require a jail-broken iDevice? Now that we have the new func representation without a writable executable heap, is cgo the last remaining hurdle before Go can run on unmodified iDevices?
After we switched to non-executable, running Go binary on non-jailbroken devices is
possible, but because it can't register itself with the monitor, it will killed after a few
seconds.

After cgo is supported, and with a proper objc bridge, we can lift the last restriction.

And then, once it can run on an unrooted device (so we can have a builder), I assume you'll start sending patches?
yeah, i hope so. I still need to figure out how to best run the builder.
because the easiest and most effective way to run the builder is still jailbreak the device
and run it natively,
it's possible (after we're certain the port is usable on non-jailbroken devices) to run the
builder with a jailbroken idevice (or in an emulator)?

of course, if it's not acceptable, we can transparently solve this using linux's binfmt_misc
mechanism, provided we can set up a proper iOS toolchain on Linux (i already have
working ios gcc on linux, but i'm not sure if we can have proper code signing tool on
linux too).
Reply all
Reply to author
Forward
0 new messages