You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With Termux it's now within reach to run all.bash directly an Android device without a host. Termux is an Android app that includes a complete Linux environment, including the NDK C toolchain.
However, I'm stopped by an unfortunate chain of constraints:
External linking requires that the g register is allocated to TLS storage.
Android doesn't support native ELF TLS storage (yet), so runtime/cgo is needed for setting up the g register storage at initialization using the pthread API.
cmd/dist doesn't know how to build runtime/cgo.
Of the above conditions, 1, 3 and 4 are outside our control and I don't think we want to fix 5.
This issue is about relaxing 2, so buildmode=pie no longer requires external linking.
The text was updated successfully, but these errors were encountered:
I'm not sure about Android, but on Linux, on AMD64 internal linking PIE should work. It is not the default, but -buildmode=pie -ldflags=-linkmode=internal would do. On ARM64, it is ongoing work on https://golang.org/cl/163579. (I'm not sure about 386 and ARM32.)
Android Q frees a static TLS slot for us to use. Use the offset of
that slot as the default for our TLS offset.
As a result, runtime/cgo is no more a requirement for Android Q and
newer.
Updates #31343
Updates #29674
Change-Id: I759049b2e2865bd3d4fdc05a8cfc6db8b0da1f5d
Reviewed-on: https://go-review.googlesource.com/c/go/+/170955
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Cherry Zhang <[email protected]>
ALTree
added
the
NeedsFix
The path to resolution is known, but the work has not been done.
label
Apr 9, 2019
With Termux it's now within reach to run all.bash directly an Android device without a host. Termux is an Android app that includes a complete Linux environment, including the NDK C toolchain.
However, I'm stopped by an unfortunate chain of constraints:
Of the above conditions, 1, 3 and 4 are outside our control and I don't think we want to fix 5.
This issue is about relaxing 2, so buildmode=pie no longer requires external linking.
The text was updated successfully, but these errors were encountered: