Commit a889aaf8 authored by Elias Naur's avatar Elias Naur

runtime: don't use thread local storage before it is set up on iOS

CL 138675 added a call to runtime.save_g which uses thread local
storage to store g. On iOS however, that storage was not initialized
 yet. Move the call to below _cgo_init where it is set up.

Change-Id: I14538d3e7d56ff35a6fa02c47bca306d24c38010
Reviewed-on: https://go-review.googlesource.com/c/150157
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
parent 1f388bc8
...@@ -18,7 +18,6 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0 ...@@ -18,7 +18,6 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0
// create istack out of the given (operating system) stack. // create istack out of the given (operating system) stack.
// _cgo_init may update stackguard. // _cgo_init may update stackguard.
MOVD $runtime·g0(SB), g MOVD $runtime·g0(SB), g
BL runtime·save_g(SB)
MOVD RSP, R7 MOVD RSP, R7
MOVD $(-64*1024)(R7), R0 MOVD $(-64*1024)(R7), R0
MOVD R0, g_stackguard0(g) MOVD R0, g_stackguard0(g)
...@@ -45,6 +44,7 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0 ...@@ -45,6 +44,7 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0
ADD $16, RSP ADD $16, RSP
nocgo: nocgo:
BL runtime·save_g(SB)
// update stackguard after _cgo_init // update stackguard after _cgo_init
MOVD (g_stack+stack_lo)(g), R0 MOVD (g_stack+stack_lo)(g), R0
ADD $const__StackGuard, R0 ADD $const__StackGuard, R0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment