]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: don't use thread local storage before it is set up on iOS
authorElias Naur <elias.naur@gmail.com>
Sat, 17 Nov 2018 09:00:14 +0000 (10:00 +0100)
committerElias Naur <elias.naur@gmail.com>
Sat, 17 Nov 2018 20:33:30 +0000 (20:33 +0000)
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: Cherry Zhang <cherryyz@google.com>
src/runtime/asm_arm64.s

index 28d3077b9dea0b912d7532c128404c7229b31394..bbeb3df0c85f5737b47ead40d519ac6236b9bf7e 100644 (file)
@@ -18,7 +18,6 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0
        // create istack out of the given (operating system) stack.
        // _cgo_init may update stackguard.
        MOVD    $runtime·g0(SB), g
-       BL      runtime·save_g(SB)
        MOVD    RSP, R7
        MOVD    $(-64*1024)(R7), R0
        MOVD    R0, g_stackguard0(g)
@@ -45,6 +44,7 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0
        ADD     $16, RSP
 
 nocgo:
+       BL      runtime·save_g(SB)
        // update stackguard after _cgo_init
        MOVD    (g_stack+stack_lo)(g), R0
        ADD     $const__StackGuard, R0