]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: export main.main for android
authorDavid Crawshaw <crawshaw@golang.org>
Fri, 17 Apr 2015 02:01:20 +0000 (22:01 -0400)
committerDavid Crawshaw <crawshaw@golang.org>
Fri, 17 Apr 2015 12:11:04 +0000 (12:11 +0000)
Previously we started the Go runtime from a JNI function call, which
eventually called the program's main function. Now the runtime is
initialized by an ELF initialization function as a c-shared library,
and the program's main function is not called. So now we export main
so it can be called from JNI.

This is necessary for all-Go apps because unlike a normal shared
library, the program loading the library is not written by or known
to the programmer. As far as they are concerned, the .so is
everything. In fact the same code is compiled for iOS as a normal Go
program.

Change-Id: I61c6a92243240ed229342362231b1bfc7ca526ba
Reviewed-on: https://go-review.googlesource.com/9015
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
src/runtime/os_android_arm.go

index be7c3c000be70affda3b5393511e8c1d0665598e..52c8c86ee85ff27cdd85b91ecb2b1ae4bc3af378 100644 (file)
@@ -6,10 +6,10 @@ package runtime
 
 import _ "unsafe" // for go:cgo_export_static and go:cgo_export_dynamic
 
-// Export the runtime entry point symbol.
+// Export the main function.
 //
-// Used by the app package to start the Go runtime after loading
-// a shared library via JNI. See golang.org/x/mobile/app.
+// Used by the app package to start all-Go Android apps that are
+// loaded via JNI. See golang.org/x/mobile/app.
 
-//go:cgo_export_static _rt0_arm_linux1
-//go:cgo_export_dynamic _rt0_arm_linux1
+//go:cgo_export_static main.main
+//go:cgo_export_dynamic main.main