aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2018-08-23 10:57:34 +0000
committerRich Felker <dalias@aerifal.cx>2018-08-23 16:41:44 -0400
commitc06c1eb6610b478a06df8116aefc975f376760f8 (patch)
treee552346d0b966783b12e561fb014fc1bd145c9c5
parentf4542fdf7a10632099f0c4e49b4c5923ca29356b (diff)
downloadmusl-c06c1eb6610b478a06df8116aefc975f376760f8.zip
musl-c06c1eb6610b478a06df8116aefc975f376760f8.tar.gz
musl-c06c1eb6610b478a06df8116aefc975f376760f8.tar.bz2
fix tls access on arm targets before armv6k
commit 610c5a8524c3d6cd3ac5a5f1231422e7648a3791 changed the thread pointer setup so tp points at the end of the pthread struct on arm, but failed to update __aeabi_read_tp so it was off by 8. this broke tls access in code that is compiled with -mtp=soft, which is the default when target arch is pre armv6k or thumb1. maintainer's note: no release versions are affected.
-rw-r--r--src/thread/arm/__aeabi_read_tp_c.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/arm/__aeabi_read_tp_c.c b/src/thread/arm/__aeabi_read_tp_c.c
index 654bdc5..0c56d61 100644
--- a/src/thread/arm/__aeabi_read_tp_c.c
+++ b/src/thread/arm/__aeabi_read_tp_c.c
@@ -4,5 +4,5 @@
__attribute__((__visibility__("hidden")))
void *__aeabi_read_tp_c(void)
{
- return (void *)((uintptr_t)__pthread_self()-8+sizeof(struct pthread));
+ return TP_ADJ(__pthread_self());
}