]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: init argc/argv for android/arm64 c-shared
authorPéter Szilágyi <peterke@gmail.com>
Sun, 13 Dec 2015 19:04:06 +0000 (21:04 +0200)
committerDavid Crawshaw <crawshaw@golang.org>
Tue, 15 Dec 2015 13:49:47 +0000 (13:49 +0000)
Analogous to https://go-review.googlesource.com/#/c/8457/ this
code synthesizes an set of program arguments for Android on the
arm64 architecture.

Change-Id: I851958b4b0944ec79d7a1426a3bb2cfc31746797
Reviewed-on: https://go-review.googlesource.com/17782
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/runtime/rt0_android_arm64.s

index 729147673e872ecd555d084909a82452eaf6d8a9..582fc5a28c4725e9dc8b13414f188a021da7ca98 100644 (file)
@@ -8,6 +8,18 @@ TEXT _rt0_arm64_android(SB),NOSPLIT,$-8
        MOVD    $_rt0_arm64_linux(SB), R4
        B       (R4)
 
+// When building with -buildmode=c-shared, this symbol is called when the shared
+// library is loaded.
 TEXT _rt0_arm64_android_lib(SB),NOSPLIT,$-8
+       MOVW    $1, R0                            // argc
+       MOVD    $_rt0_arm64_android_argv(SB), R1  // **argv
        MOVD    $_rt0_arm64_linux_lib(SB), R4
        B       (R4)
+
+DATA _rt0_arm64_android_argv+0x00(SB)/8,$_rt0_arm64_android_argv0(SB)
+DATA _rt0_arm64_android_argv+0x08(SB)/8,$0
+DATA _rt0_arm64_android_argv+0x10(SB)/8,$0
+GLOBL _rt0_arm64_android_argv(SB),NOPTR,$0x18
+
+DATA _rt0_arm64_android_argv0(SB)/8, $"gojni"
+GLOBL _rt0_arm64_android_argv0(SB),RODATA,$8