]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/x86: still use (fake) local exec TLS mode on android/386
authorMichael Hudson-Doyle <michael.hudson@canonical.com>
Thu, 19 Nov 2015 09:14:13 +0000 (22:14 +1300)
committerMichael Hudson-Doyle <michael.hudson@canonical.com>
Thu, 19 Nov 2015 17:43:37 +0000 (17:43 +0000)
commit0fbf0955d4973cc188c38a8218563577845eccb2
treec9de36b934f9f65aef860344363177e5f55e0dd4
parent9a7893550c506c2fb69711334ace1ae17176ccf4
cmd/internal/obj/x86: still use (fake) local exec TLS mode on android/386

golang.org/cl/16383 broke android/386 because by a sort of confluence of hacks
no TLS relocations were emitted at all when Flag_shared != 0. The hack in
runtime/cgo works as well in a PIE executable as it does with a position
dependent one, so the simplest fix is to still emit a R_TLS_LE reloc when goos
== "android".

A real fix is to use something more like the IE model code but loading the
offset from %gs to the thread local storage from a global variable rather than
from a location chosen by the system linker (this is how android/arm works).

Issue #9327.

Change-Id: I9fbfc890ec7fe191f80a595b6cf8e2a1fcbe3034
Reviewed-on: https://go-review.googlesource.com/17049
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
src/cmd/internal/obj/x86/asm6.go