aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_linux_arm.s
diff options
context:
space:
mode:
authorSrdjan Petrovic <spetrovic@google.com>2015-03-25 17:50:35 -0700
committerIan Lance Taylor <iant@golang.org>2015-04-03 01:24:51 +0000
commite8694c8196e39328d6d61b1f32228d21112008d7 (patch)
tree3942b490997e3f0800484c4666fdd787e925bf43 /src/runtime/sys_linux_arm.s
parent167562f65200bc01c9ecdcf393dfa2f16de3d9c2 (diff)
downloadgo-e8694c8196e39328d6d61b1f32228d21112008d7.tar.gz
go-e8694c8196e39328d6d61b1f32228d21112008d7.zip
runtime: initialize shared library at library-load time
This is Part 2 of the change, see Part 1 here: in https://go-review.googlesource.com/#/c/7692/ Suggested by iant@, we use the library initialization entry point to: - create a new OS thread and run the "regular" runtime init stack on that thread - return immediately from the main (i.e., loader) thread - at the first CGO invocation, we wait for the runtime initialization to complete. The above mechanism is implemented only on linux_amd64. Next step is to support it on linux_arm. Other platforms don't yet support shared library compiling/linking, but we intend to use the same strategy there as well. Change-Id: Ib2c81b1b83bee837134084b75a3beecfb8de6bf4 Reviewed-on: https://go-review.googlesource.com/8094 Run-TryBot: Srdjan Petrovic <spetrovic@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/sys_linux_arm.s')
-rw-r--r--src/runtime/sys_linux_arm.s6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/runtime/sys_linux_arm.s b/src/runtime/sys_linux_arm.s
index fa07ef88d6..242da45d92 100644
--- a/src/runtime/sys_linux_arm.s
+++ b/src/runtime/sys_linux_arm.s
@@ -309,6 +309,12 @@ TEXT runtime·clone(SB),NOSPLIT,$0
MOVW $1005, R1
MOVW R0, (R1)
+// int32 clone0(int32 flags, void *stack, void* fn, void* fnarg);
+TEXT runtime·clone0(SB),NOSPLIT,$0
+ // TODO(spetrovic): Implement this method.
+ MOVW $-1, ret+16(FP)
+ RET
+
TEXT runtime·sigaltstack(SB),NOSPLIT,$0
MOVW new+0(FP), R0
MOVW old+4(FP), R1