golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
119.8k stars 17.2k forks source link

build: darwin/arm port #837

Closed gopherbot closed 9 years ago

gopherbot commented 13 years ago

by frederic.bonfanti:

What steps will reproduce the problem?

 export GOOS="darwin" && export GOARCH="ARM"
 cd $GOROOT/src && ./all.bash

What is the expected output?

 libs, runtine et al shall compile fine even though linking / executing might require further work

What do you see instead?

 [...]
 proc.c:7 5c: No such file or directory: defs.h
 make[1]: *** [runtime.acid.arm] Error 1
 make: *** [runtime.install] Error 2
 make: *** Waiting for unfinished jobs....

What is your $GOOS? 

 darwin

$GOARCH?

 ARM

Which revision are you using?  (hg identify)

 a85ad0a64015 tip

Please provide any additional information below.

Both real life ARM/Darwin and AMD64/Darwin OS conform to the same Core OS APIs and LLVM-
GCC. Sounds like Linux has got an hardcoded place in files when it comes to ARM...
rsc commented 13 years ago

Comment 1:

I am not aware of anyone working on the darwin/arm port.
If you'd like to, feel free.
5g is OS-agnostic.  It is 5l and package runtime that need
work, primarily.

Status changed to LongTerm.

gopherbot commented 13 years ago

Comment 2 by frederic.bonfanti:

Already digging into the 9ish heritage of those old times.
Oops, 5g should have red 5l. Few ASM calls to implement... I have already fixed few
missing bits to ARM target backend.
Will update once any substantial outcome is there.
gopherbot commented 12 years ago

Comment 3 by stephenm@golang.org:

Labels changed: added arch-arm.

rsc commented 12 years ago

Comment 4:

Labels changed: added priority-later.

minux commented 12 years ago

Comment 5:

I'm currently working on it, and just now it can compile and run some trivial Go and C
programs on iOS.
Goroutine and signal handling are broken, though.
After I fixed the signal handling issues, I will report my progress to go-nuts.
minux commented 12 years ago

Comment 6:

My port is here: https://bitbucket.org/minux/goios/ branch ios
NOTE: *FAR* from finished.
golang-nuts thread:
http://groups.google.com/group/golang-nuts/browse_thread/thread/fb4ba8ce9304558
minux commented 12 years ago

Comment 7:

FYI, my port is mostly working now and has passed most pkg tests.
minux commented 12 years ago

Comment 9:

Owner changed to @minux.

minux commented 12 years ago

Comment 10:

The only blocker for merge, IMHO, is iOS doesn't support dynamic code generation, and we
use just that for closure. Do we have any plans to eliminate dynamic code generation for
closures?
ianlancetaylor commented 12 years ago

Comment 11:

We have discussed the possiblity of changing function pointers to be a struct containing
two pointers, but that has some obvious drawbacks and no decision has been made.
eliasnaur commented 10 years ago

Comment 14:

What are the current blockers for this issue to get merged (in 1.3 perhaps)? For
example, does this still depend on 4069 now that issue #5590 has been fixed?
minux commented 10 years ago

Comment 15:

thank you for the work on arm external linking.
the major blocker is that the port needs to test on jailbroken devices.
testing on non-jailbroken device needs proper cgo support which i don't yet have time to
finish.
rsc commented 10 years ago

Comment 16:

Labels changed: added go1.3maybe.

rsc commented 10 years ago

Comment 17:

Labels changed: added release-none, removed go1.3maybe.

rsc commented 10 years ago

Comment 18:

Labels changed: added repo-main.

eliasnaur commented 10 years ago

Comment 19:

#go13
Similar to android/arm, I think with 4096 almost done, 4714 marked as Go1.3 and finally
the out-of-tree darwin/arm port by minux we should consider adding darwin/arm support in
go 1.3. I volunteer to help with the required work, as soon as the feature is accepted.
minux commented 9 years ago

Upstream started. I've sent 10 CLs from golang.org/cl/2118 to golang.org/cl/2127

@crawshaw has figured out how to use https://github.com/phonegap/ios-deploy to build a builder with locked iDevices, so the final obstacle to upstreaming the port is finally overcome. Thank you crawshaw!